Public feed
#531486
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<space>" || param == "\\C<space>" || param == "^<space>") {
@@ -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 {