forked from enlightenment/enlightenment
don't show layouts in xkb gadget menu if option to disable xkb layout changing is enabled
SVN revision: 83675
This commit is contained in:
parent
893b867070
commit
d13c7cc1e4
|
@ -204,7 +204,7 @@ _gc_init(E_Gadcon *gc, const char *gcname, const char *id, const char *style)
|
||||||
"base/theme/modules/xkbswitch",
|
"base/theme/modules/xkbswitch",
|
||||||
"e/modules/xkbswitch/main");
|
"e/modules/xkbswitch/main");
|
||||||
edje_object_part_text_set(inst->o_xkbswitch, "e.text.label",
|
edje_object_part_text_set(inst->o_xkbswitch, "e.text.label",
|
||||||
inst->layout ? e_xkb_layout_name_reduce(inst->layout->name) : "?");
|
inst->layout ? e_xkb_layout_name_reduce(inst->layout->name) : _("NONE"));
|
||||||
/* The gadcon client */
|
/* The gadcon client */
|
||||||
inst->gcc = e_gadcon_client_new(gc, gcname, id, style, inst->o_xkbswitch);
|
inst->gcc = e_gadcon_client_new(gc, gcname, id, style, inst->o_xkbswitch);
|
||||||
inst->gcc->data = inst;
|
inst->gcc->data = inst;
|
||||||
|
@ -352,7 +352,8 @@ _e_xkb_cb_mouse_down(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSE
|
||||||
else if ((ev->button == 1) && (!inst->lmenu)) /* Left-click layout menu */
|
else if ((ev->button == 1) && (!inst->lmenu)) /* Left-click layout menu */
|
||||||
{
|
{
|
||||||
Evas_Coord x, y, w, h;
|
Evas_Coord x, y, w, h;
|
||||||
int cx, cy;
|
int cx, cy, dir;
|
||||||
|
E_Menu_Item *mi;
|
||||||
|
|
||||||
/* Coordinates and sizing */
|
/* Coordinates and sizing */
|
||||||
evas_object_geometry_get(inst->o_xkbswitch, &x, &y, &w, &h);
|
evas_object_geometry_get(inst->o_xkbswitch, &x, &y, &w, &h);
|
||||||
|
@ -363,20 +364,18 @@ _e_xkb_cb_mouse_down(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSE
|
||||||
|
|
||||||
if (!inst->lmenu) inst->lmenu = e_menu_new();
|
if (!inst->lmenu) inst->lmenu = e_menu_new();
|
||||||
|
|
||||||
if (inst->lmenu)
|
mi = e_menu_item_new(inst->lmenu);
|
||||||
|
|
||||||
|
e_menu_item_label_set(mi, _("Settings"));
|
||||||
|
e_util_menu_item_theme_icon_set(mi, "preferences-system");
|
||||||
|
e_menu_item_callback_set(mi, _e_xkb_cb_menu_configure, NULL);
|
||||||
|
|
||||||
|
if (!e_config->xkb.dont_touch_my_damn_keyboard)
|
||||||
{
|
{
|
||||||
E_Config_XKB_Layout *cl, *cur;
|
E_Config_XKB_Layout *cl, *cur;
|
||||||
E_Menu_Item *mi;
|
|
||||||
Eina_List *l;
|
Eina_List *l;
|
||||||
int dir;
|
|
||||||
char buf[4096];
|
char buf[4096];
|
||||||
|
|
||||||
mi = e_menu_item_new(inst->lmenu);
|
|
||||||
|
|
||||||
e_menu_item_label_set(mi, _("Settings"));
|
|
||||||
e_util_menu_item_theme_icon_set(mi, "preferences-system");
|
|
||||||
e_menu_item_callback_set(mi, _e_xkb_cb_menu_configure, NULL);
|
|
||||||
|
|
||||||
mi = e_menu_item_new(inst->lmenu);
|
mi = e_menu_item_new(inst->lmenu);
|
||||||
e_menu_item_separator_set(mi, 1);
|
e_menu_item_separator_set(mi, 1);
|
||||||
cur = e_xkb_layout_get();
|
cur = e_xkb_layout_get();
|
||||||
|
@ -401,79 +400,79 @@ _e_xkb_cb_mouse_down(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSE
|
||||||
e_menu_item_label_set(mi, buf);
|
e_menu_item_label_set(mi, buf);
|
||||||
e_menu_item_callback_set(mi, _e_xkb_cb_lmenu_set, cl);
|
e_menu_item_callback_set(mi, _e_xkb_cb_lmenu_set, cl);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Deactivate callback */
|
|
||||||
e_menu_post_deactivate_callback_set(inst->lmenu,
|
|
||||||
_e_xkb_cb_lmenu_post, inst);
|
|
||||||
/* Proper menu orientation */
|
|
||||||
switch (inst->gcc->gadcon->orient)
|
|
||||||
{
|
|
||||||
case E_GADCON_ORIENT_TOP:
|
|
||||||
dir = E_MENU_POP_DIRECTION_DOWN;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case E_GADCON_ORIENT_BOTTOM:
|
|
||||||
dir = E_MENU_POP_DIRECTION_UP;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case E_GADCON_ORIENT_LEFT:
|
|
||||||
dir = E_MENU_POP_DIRECTION_RIGHT;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case E_GADCON_ORIENT_RIGHT:
|
|
||||||
dir = E_MENU_POP_DIRECTION_LEFT;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case E_GADCON_ORIENT_CORNER_TL:
|
|
||||||
dir = E_MENU_POP_DIRECTION_DOWN;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case E_GADCON_ORIENT_CORNER_TR:
|
|
||||||
dir = E_MENU_POP_DIRECTION_DOWN;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case E_GADCON_ORIENT_CORNER_BL:
|
|
||||||
dir = E_MENU_POP_DIRECTION_UP;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case E_GADCON_ORIENT_CORNER_BR:
|
|
||||||
dir = E_MENU_POP_DIRECTION_UP;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case E_GADCON_ORIENT_CORNER_LT:
|
|
||||||
dir = E_MENU_POP_DIRECTION_RIGHT;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case E_GADCON_ORIENT_CORNER_RT:
|
|
||||||
dir = E_MENU_POP_DIRECTION_LEFT;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case E_GADCON_ORIENT_CORNER_LB:
|
|
||||||
dir = E_MENU_POP_DIRECTION_RIGHT;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case E_GADCON_ORIENT_CORNER_RB:
|
|
||||||
dir = E_MENU_POP_DIRECTION_LEFT;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case E_GADCON_ORIENT_FLOAT:
|
|
||||||
case E_GADCON_ORIENT_HORIZ:
|
|
||||||
case E_GADCON_ORIENT_VERT:
|
|
||||||
default:
|
|
||||||
dir = E_MENU_POP_DIRECTION_AUTO;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
e_gadcon_locked_set(inst->gcc->gadcon, 1);
|
|
||||||
|
|
||||||
/* We display not relatively to the gadget, but similarly to
|
|
||||||
* the start menu - thus the need for direction etc.
|
|
||||||
*/
|
|
||||||
e_menu_activate_mouse(inst->lmenu,
|
|
||||||
e_util_zone_current_get
|
|
||||||
(e_manager_current_get()),
|
|
||||||
x, y, w, h, dir, ev->timestamp);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Deactivate callback */
|
||||||
|
e_menu_post_deactivate_callback_set(inst->lmenu,
|
||||||
|
_e_xkb_cb_lmenu_post, inst);
|
||||||
|
/* Proper menu orientation */
|
||||||
|
switch (inst->gcc->gadcon->orient)
|
||||||
|
{
|
||||||
|
case E_GADCON_ORIENT_TOP:
|
||||||
|
dir = E_MENU_POP_DIRECTION_DOWN;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case E_GADCON_ORIENT_BOTTOM:
|
||||||
|
dir = E_MENU_POP_DIRECTION_UP;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case E_GADCON_ORIENT_LEFT:
|
||||||
|
dir = E_MENU_POP_DIRECTION_RIGHT;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case E_GADCON_ORIENT_RIGHT:
|
||||||
|
dir = E_MENU_POP_DIRECTION_LEFT;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case E_GADCON_ORIENT_CORNER_TL:
|
||||||
|
dir = E_MENU_POP_DIRECTION_DOWN;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case E_GADCON_ORIENT_CORNER_TR:
|
||||||
|
dir = E_MENU_POP_DIRECTION_DOWN;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case E_GADCON_ORIENT_CORNER_BL:
|
||||||
|
dir = E_MENU_POP_DIRECTION_UP;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case E_GADCON_ORIENT_CORNER_BR:
|
||||||
|
dir = E_MENU_POP_DIRECTION_UP;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case E_GADCON_ORIENT_CORNER_LT:
|
||||||
|
dir = E_MENU_POP_DIRECTION_RIGHT;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case E_GADCON_ORIENT_CORNER_RT:
|
||||||
|
dir = E_MENU_POP_DIRECTION_LEFT;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case E_GADCON_ORIENT_CORNER_LB:
|
||||||
|
dir = E_MENU_POP_DIRECTION_RIGHT;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case E_GADCON_ORIENT_CORNER_RB:
|
||||||
|
dir = E_MENU_POP_DIRECTION_LEFT;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case E_GADCON_ORIENT_FLOAT:
|
||||||
|
case E_GADCON_ORIENT_HORIZ:
|
||||||
|
case E_GADCON_ORIENT_VERT:
|
||||||
|
default:
|
||||||
|
dir = E_MENU_POP_DIRECTION_AUTO;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
e_gadcon_locked_set(inst->gcc->gadcon, 1);
|
||||||
|
|
||||||
|
/* We display not relatively to the gadget, but similarly to
|
||||||
|
* the start menu - thus the need for direction etc.
|
||||||
|
*/
|
||||||
|
e_menu_activate_mouse(inst->lmenu,
|
||||||
|
e_util_zone_current_get
|
||||||
|
(e_manager_current_get()),
|
||||||
|
x, y, w, h, dir, ev->timestamp);
|
||||||
}
|
}
|
||||||
else if (ev->button == 2) /* Middle click */
|
else if (ev->button == 2) /* Middle click */
|
||||||
e_xkb_layout_next();
|
e_xkb_layout_next();
|
||||||
|
|
Loading…
Reference in New Issue