diff --git a/kkconsui/src/cmenus.cc b/kkconsui/src/cmenus.cc index c336261..edad936 100644 --- a/kkconsui/src/cmenus.cc +++ b/kkconsui/src/cmenus.cc @@ -241,6 +241,27 @@ int verticalmenu::open() { if(emacs) k = emacsbind(k); lastkey = k; + switch(icqface::face.key2action(k,section_menu)){ + case key_menu_up: + k = KEY_UP; + break; + case key_menu_down: + k = KEY_DOWN; + break; + case key_menu_pdown: + k = KEY_NPAGE; + break; + case key_menu_pup: + k = KEY_PPAGE; + break; + case key_menu_home: + k = KEY_HOME; + break; + case key_menu_end: + k = KEY_END; + break; + } + switch(k) { case '\r': finished = true; diff --git a/src/icqconf.cc b/src/icqconf.cc index a0ce022..ceb8842 100644 --- a/src/icqconf.cc +++ b/src/icqconf.cc @@ -305,7 +305,9 @@ void icqconf::loadkeys() { if (param == "editor") k.section = section_editor; else if (param == "info") - k.section = section_info; + k.section = section_info; else + if (param == "menu") + k.section = section_menu; param = getword(buf); /* key */ if(param == "\\c" || param == "\\C" || param == "^") { @@ -399,6 +401,12 @@ void icqconf::loadkeys() { if(param == "log_panel_move_down") k.action = key_log_panel_move_down; else if(param == "chat_panel_move_up") k.action = key_chat_panel_move_up; else if(param == "chat_panel_move_down") k.action = key_chat_panel_move_down; else + if(param == "up") k.action = key_menu_up; else + if(param == "down") k.action = key_menu_down; else + if(param == "page_up") k.action = key_menu_pup; else + if(param == "page_down") k.action = key_menu_pdown; else + if(param == "home") k.action = key_menu_home; else + if(param == "end") k.action = key_menu_end; else continue; keys.push_back(k); diff --git a/src/icqconf.h b/src/icqconf.h index d1be25d..3c8117a 100644 --- a/src/icqconf.h +++ b/src/icqconf.h @@ -59,6 +59,7 @@ enum cicq_keybindings { section_history, section_editor, section_info, + section_menu, key_info, key_quit, key_change_status, @@ -93,7 +94,13 @@ enum cicq_keybindings { key_log_panel_move_up, key_log_panel_move_down, key_chat_panel_move_up, - key_chat_panel_move_down + key_chat_panel_move_down, + key_move_up, + key_move_down, + key_move_pup, + key_move_pdown, + key_move_home, + key_move_end }; class icqconf {