Public feed #531486

Unnamed

public text v1 · immutable
Raw Edit
·published 2007-06-02 15:55 UTC
rendered paste body
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 {