diff --git a/src/modules/xkbswitch/e_mod_main.c b/src/modules/xkbswitch/e_mod_main.c index 5129c31f9..730605c3f 100644 --- a/src/modules/xkbswitch/e_mod_main.c +++ b/src/modules/xkbswitch/e_mod_main.c @@ -204,7 +204,7 @@ _gc_init(E_Gadcon *gc, const char *gcname, const char *id, const char *style) "base/theme/modules/xkbswitch", "e/modules/xkbswitch/main"); 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 */ inst->gcc = e_gadcon_client_new(gc, gcname, id, style, inst->o_xkbswitch); 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 */ { Evas_Coord x, y, w, h; - int cx, cy; + int cx, cy, dir; + E_Menu_Item *mi; /* Coordinates and sizing */ 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) + 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_Menu_Item *mi; Eina_List *l; - int dir; 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); e_menu_item_separator_set(mi, 1); 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_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 */ e_xkb_layout_next();