From e1415310b3f2e63e30c7ab78ba5af6fd840863a6 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Sun, 26 Nov 2006 04:19:25 +0000 Subject: [PATCH] fix up pager button config SVN revision: 27210 --- TODO | 1 - src/modules/pager/e_mod_config.c | 62 +++++++++++++++----------------- 2 files changed, 28 insertions(+), 35 deletions(-) diff --git a/TODO b/TODO index ef8e83e86..8fd5fc9b6 100644 --- a/TODO +++ b/TODO @@ -8,7 +8,6 @@ Some of the things (in very short form) that need to be done to E17... BUGS / FIXES ------------------------------------------------------------------------------- -* conifguring buttons for pager drag is broken * apparently with locales other than english/c the about box textblock breaks newlines on every word (maybe the utf8 decode patch? for evas?) * IBar will resize itself down to single icon size on start/restart under some diff --git a/src/modules/pager/e_mod_config.c b/src/modules/pager/e_mod_config.c index b39d67821..1a5c2f7a5 100644 --- a/src/modules/pager/e_mod_config.c +++ b/src/modules/pager/e_mod_config.c @@ -17,21 +17,17 @@ struct _E_Config_Dialog_Data unsigned char btn_noplace; int flip_desk; - struct - { - Ecore_X_Window bind_win; - E_Dialog *dia; - Evas_List *handlers; - - unsigned char *button1; - unsigned char *button2; - } grab; - - struct - { - Evas_Object *o_btn1; - Evas_Object *o_btn2; - } gui; + struct { + Ecore_X_Window bind_win; + E_Dialog *dia; + Evas_List *handlers; + int btn; + } grab; + + struct { + Evas_Object *o_btn1; + Evas_Object *o_btn2; + } gui; }; /* Protos */ @@ -209,15 +205,9 @@ _grab_wnd_show(void *data1, void *data2) cfdata = data2; if ((Pager_Grab_Button)data1 == GRAB_BUTTON_DRAG) - { - cfdata->grab.button1 = &(cfdata->btn_drag); - cfdata->grab.button2 = &(cfdata->btn_noplace); - } + cfdata->grab.btn = 1; else - { - cfdata->grab.button1 = &(cfdata->btn_noplace); - cfdata->grab.button2 = &(cfdata->btn_drag); - } + cfdata->grab.btn = 0; cfdata->grab.dia = e_dialog_new(e_container_current_get(man), "Pager", "_pager_button_grab_dialog"); if (!cfdata->grab.dia) return; @@ -229,7 +219,7 @@ _grab_wnd_show(void *data1, void *data2) e_win_centered_set(cfdata->grab.dia->win, 1); e_win_borderless_set(cfdata->grab.dia->win, 1); - cfdata->grab.bind_win = ecore_x_window_input_new(man->root, 0, 0, 1, 1); + cfdata->grab.bind_win = ecore_x_window_input_new(man->root, 0, 0, man->w, man->h); ecore_x_window_show(cfdata->grab.bind_win); e_grabinput_get(cfdata->grab.bind_win, 0, cfdata->grab.bind_win); @@ -273,15 +263,17 @@ _grab_mouse_down_cb(void *data, int type, void *event) if (ev->button != 3) { - if (ev->button == *(cfdata->grab.button2)) - { - *(cfdata->grab.button2) = *(cfdata->grab.button1); - *(cfdata->grab.button1) = ev->button; - } + if (cfdata->grab.btn == 1) + cfdata->btn_drag = ev->button; else - { - *(cfdata->grab.button1) = ev->button; - } + cfdata->btn_noplace = ev->button; + } + else + { + e_util_dialog_show(_("Error - Invalid Button"), + _("You cannot use the right mouse button
" + "for this as it is already taken by internal
" + "code for context menus.")); } _grab_wnd_hide(cfdata); @@ -301,8 +293,10 @@ _grab_key_down_cb(void *data, int type, void *event) if (!strcmp(ev->keyname, "Escape")) _grab_wnd_hide(cfdata); if (!strcmp(ev->keyname, "Delete")) { - *(cfdata->grab.button1) = 0; - _grab_wnd_hide(cfdata); + if (cfdata->grab.btn == 1) + cfdata->btn_drag = 0; + else + cfdata->btn_noplace = 0; } return 1; }