From 5ed2b85c847995da3f4dc01c4d2790358adeb03d Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Wed, 5 Mar 2008 06:54:30 +0000 Subject: Make clicks on leftmost panel in the Setup screen change setup pages, like the keyboard navigation does. Fixes bug reported by Tero Keinanen. https://sourceforge.net/tracker/index.php?func=detail&aid=1754735&group_id=108839&atid=651633 --- CategoriesPanel.c | 52 +++++++++++++++++++++++++++++----------------------- 1 file changed, 29 insertions(+), 23 deletions(-) (limited to 'CategoriesPanel.c') diff --git a/CategoriesPanel.c b/CategoriesPanel.c index 89e93385..9d471217 100644 --- a/CategoriesPanel.c +++ b/CategoriesPanel.c @@ -64,37 +64,43 @@ HandlerResult CategoriesPanel_eventHandler(Panel* super, int ch) { HandlerResult result = IGNORED; - int previous = Panel_getSelectedIndex(super); - + int selected = Panel_getSelectedIndex(super); switch (ch) { + case EVENT_SETSELECTED: + result = HANDLED; + break; case KEY_UP: case KEY_DOWN: case KEY_NPAGE: case KEY_PPAGE: case KEY_HOME: case KEY_END: { + int previous = selected; Panel_onKey(super, ch); - int selected = Panel_getSelectedIndex(super); - if (previous != selected) { - int size = ScreenManager_size(this->scr); - for (int i = 1; i < size; i++) - ScreenManager_remove(this->scr, 1); - switch (selected) { - case 0: - CategoriesPanel_makeMetersPage(this); - break; - case 1: - CategoriesPanel_makeDisplayOptionsPage(this); - break; - case 2: - CategoriesPanel_makeColorsPage(this); - break; - case 3: - CategoriesPanel_makeColumnsPage(this); - break; - } - } - result = HANDLED; + selected = Panel_getSelectedIndex(super); + if (previous != selected) + result = HANDLED; + break; + } + } + + if (result == HANDLED) { + int size = ScreenManager_size(this->scr); + for (int i = 1; i < size; i++) + ScreenManager_remove(this->scr, 1); + switch (selected) { + case 0: + CategoriesPanel_makeMetersPage(this); + break; + case 1: + CategoriesPanel_makeDisplayOptionsPage(this); + break; + case 2: + CategoriesPanel_makeColorsPage(this); + break; + case 3: + CategoriesPanel_makeColumnsPage(this); + break; } } -- cgit v1.2.3