fix up pager button config

SVN revision: 27210
This commit is contained in:
Carsten Haitzler 2006-11-26 04:19:25 +00:00
parent 6e8e41cef1
commit e1415310b3
2 changed files with 28 additions and 35 deletions

1
TODO
View File

@ -8,7 +8,6 @@ Some of the things (in very short form) that need to be done to E17...
BUGS / FIXES BUGS / FIXES
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
* conifguring buttons for pager drag is broken
* apparently with locales other than english/c the about box textblock breaks * apparently with locales other than english/c the about box textblock breaks
newlines on every word (maybe the utf8 decode patch? for evas?) 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 * IBar will resize itself down to single icon size on start/restart under some

View File

@ -17,21 +17,17 @@ struct _E_Config_Dialog_Data
unsigned char btn_noplace; unsigned char btn_noplace;
int flip_desk; int flip_desk;
struct struct {
{ Ecore_X_Window bind_win;
Ecore_X_Window bind_win; E_Dialog *dia;
E_Dialog *dia; Evas_List *handlers;
Evas_List *handlers; int btn;
} grab;
unsigned char *button1;
unsigned char *button2; struct {
} grab; Evas_Object *o_btn1;
Evas_Object *o_btn2;
struct } gui;
{
Evas_Object *o_btn1;
Evas_Object *o_btn2;
} gui;
}; };
/* Protos */ /* Protos */
@ -209,15 +205,9 @@ _grab_wnd_show(void *data1, void *data2)
cfdata = data2; cfdata = data2;
if ((Pager_Grab_Button)data1 == GRAB_BUTTON_DRAG) if ((Pager_Grab_Button)data1 == GRAB_BUTTON_DRAG)
{ cfdata->grab.btn = 1;
cfdata->grab.button1 = &(cfdata->btn_drag);
cfdata->grab.button2 = &(cfdata->btn_noplace);
}
else else
{ cfdata->grab.btn = 0;
cfdata->grab.button1 = &(cfdata->btn_noplace);
cfdata->grab.button2 = &(cfdata->btn_drag);
}
cfdata->grab.dia = e_dialog_new(e_container_current_get(man), "Pager", "_pager_button_grab_dialog"); cfdata->grab.dia = e_dialog_new(e_container_current_get(man), "Pager", "_pager_button_grab_dialog");
if (!cfdata->grab.dia) return; 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_centered_set(cfdata->grab.dia->win, 1);
e_win_borderless_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); ecore_x_window_show(cfdata->grab.bind_win);
e_grabinput_get(cfdata->grab.bind_win, 0, 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 != 3)
{ {
if (ev->button == *(cfdata->grab.button2)) if (cfdata->grab.btn == 1)
{ cfdata->btn_drag = ev->button;
*(cfdata->grab.button2) = *(cfdata->grab.button1);
*(cfdata->grab.button1) = ev->button;
}
else else
{ cfdata->btn_noplace = ev->button;
*(cfdata->grab.button1) = ev->button; }
} else
{
e_util_dialog_show(_("Error - Invalid Button"),
_("You cannot use the right mouse button<br>"
"for this as it is already taken by internal<br>"
"code for context menus."));
} }
_grab_wnd_hide(cfdata); _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, "Escape")) _grab_wnd_hide(cfdata);
if (!strcmp(ev->keyname, "Delete")) if (!strcmp(ev->keyname, "Delete"))
{ {
*(cfdata->grab.button1) = 0; if (cfdata->grab.btn == 1)
_grab_wnd_hide(cfdata); cfdata->btn_drag = 0;
else
cfdata->btn_noplace = 0;
} }
return 1; return 1;
} }