From 6980eb0bc702571122542e9771bdafc88c3fae1e Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Fri, 9 Nov 2012 13:53:08 +0000 Subject: [PATCH] e: improve usability of WBOD. SVN revision: 79023 --- configure.ac | 1 + src/bin/e_alert_main.c | 24 +++++++++++++++++------- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/configure.ac b/configure.ac index 1d8a54df0..ff2f08aaf 100644 --- a/configure.ac +++ b/configure.ac @@ -523,6 +523,7 @@ PKG_CHECK_MODULES(E_INIT, [ PKG_CHECK_MODULES(E_ALERT, [ xcb xcb-shape + xcb-keysyms eina >= ${efl_version} ecore >= ${efl_version} ecore-ipc >= ${efl_version} diff --git a/src/bin/e_alert_main.c b/src/bin/e_alert_main.c index 1333f24b4..71344bd26 100644 --- a/src/bin/e_alert_main.c +++ b/src/bin/e_alert_main.c @@ -12,7 +12,9 @@ #include #include #include +#include #include +#include #define WINDOW_WIDTH 320 #define WINDOW_HEIGHT 240 @@ -93,7 +95,7 @@ main(int argc, char **argv) title = "Enlightenment Error"; str1 = "(F1) Recover"; - str2 = "(F2) Exit"; + str2 = "(F12) Logout"; _e_alert_create(); _e_alert_display(); @@ -422,15 +424,23 @@ _e_alert_draw(void) static int _e_alert_handle_key_press(xcb_generic_event_t *event) { + xcb_key_symbols_t *symbols; xcb_key_press_event_t *ev; + xcb_keysym_t key; + int r = 0; ev = (xcb_key_press_event_t *)event; - if (ev->detail == 67) // F1 - return 1; - else if (ev->detail == 68) // F2 - return 2; - else - return 0; + symbols = xcb_key_symbols_alloc(conn); + key = xcb_key_symbols_get_keysym(symbols, ev->detail, 0); + + if (key == XK_F1) + r = 1; + else if (key == XK_F12) + r = 2; + + xcb_key_symbols_free(symbols); + + return r; } static int