# HG changeset patch # User Sadrul Habib Chowdhury # Date 1186808973 0 # Node ID 5dd1cfc536661b5a30796d1246e20d584d597af0 # Parent 7066896f66285ff2eba4e8287467f4c18dead04e Make the menus a little more usable. diff -r 7066896f6628 -r 5dd1cfc53666 finch/libgnt/gntmenu.c --- a/finch/libgnt/gntmenu.c Sat Aug 11 04:19:32 2007 +0000 +++ b/finch/libgnt/gntmenu.c Sat Aug 11 05:09:33 2007 +0000 @@ -251,7 +251,8 @@ return (gnt_widget_key_pressed(GNT_WIDGET(menu), text)); } - if (text[0] == 27 && text[1] == 0) { + if ((text[0] == 27 && text[1] == 0) || + (menu->type != GNT_MENU_TOPLEVEL && strcmp(text, GNT_KEY_LEFT) == 0)) { /* Escape closes menu */ GntMenu *par = menu->parentmenu; if (par != NULL) { @@ -271,7 +272,8 @@ menu->selected++; if (menu->selected >= g_list_length(menu->list)) menu->selected = 0; - } else if (strcmp(text, GNT_KEY_ENTER) == 0) { + } else if (strcmp(text, GNT_KEY_ENTER) == 0 || + strcmp(text, GNT_KEY_DOWN) == 0) { gnt_widget_activate(widget); } @@ -283,6 +285,12 @@ if (text[1] == '\0') { if (check_for_trigger(menu, text[0])) return TRUE; + } else if (strcmp(text, GNT_KEY_RIGHT) == 0) { + GntMenuItem *item = gnt_tree_get_selection_data(GNT_TREE(menu)); + if (item && item->submenu) { + menuitem_activate(menu, item); + return TRUE; + } } return org_key_pressed(widget, text); }