diff --git a/config/default/e.src b/config/default/e.src index e1a30748b..b6c122af2 100644 --- a/config/default/e.src +++ b/config/default/e.src @@ -423,6 +423,7 @@ group "E_Config" struct { value "menu_eap_name_show" int: 1; value "menu_eap_generic_show" int: 1; value "menu_eap_comment_show" int: 0; + value "menu_gadcon_client_toplevel" int: 0; value "fullscreen_policy" int: 0; value "exebuf_term_cmd" string: "xterm -hold -e"; value "use_app_icon" int: 0; diff --git a/config/illume-home/e.src b/config/illume-home/e.src index 62836ae47..22935f4e5 100644 --- a/config/illume-home/e.src +++ b/config/illume-home/e.src @@ -1350,6 +1350,7 @@ group "E_Config" struct { value "menu_eap_name_show" int: 1; value "menu_eap_generic_show" int: 0; value "menu_eap_comment_show" int: 0; + value "menu_gadcon_client_toplevel" int: 0; value "fullscreen_policy" int: 0; value "exebuf_term_cmd" string: "xterm -hold -e"; value "use_app_icon" int: 0; diff --git a/config/illume/e.src b/config/illume/e.src index 89e320f00..06c476d8c 100644 --- a/config/illume/e.src +++ b/config/illume/e.src @@ -484,6 +484,7 @@ group "E_Config" struct { value "menu_eap_name_show" int: 1; value "menu_eap_generic_show" int: 1; value "menu_eap_comment_show" int: 0; + value "menu_gadcon_client_toplevel" int: 0; value "fullscreen_policy" int: 0; value "exebuf_max_exe_list" int: 20; value "exebuf_max_eap_list" int: 20; diff --git a/config/minimalist/e.src b/config/minimalist/e.src index b0b576269..0de88ef88 100644 --- a/config/minimalist/e.src +++ b/config/minimalist/e.src @@ -1429,6 +1429,7 @@ group "E_Config" struct { value "menu_eap_name_show" int: 1; value "menu_eap_generic_show" int: 1; value "menu_eap_comment_show" int: 0; + value "menu_gadcon_client_toplevel" int: 0; value "fullscreen_policy" int: 0; value "exebuf_term_cmd" string: "xterm -hold -e"; value "use_app_icon" int: 0; diff --git a/config/netbook/e.src b/config/netbook/e.src index f0c74a163..51e2e7cc2 100644 --- a/config/netbook/e.src +++ b/config/netbook/e.src @@ -1493,6 +1493,7 @@ group "E_Config" struct { value "menu_eap_name_show" int: 1; value "menu_eap_generic_show" int: 1; value "menu_eap_comment_show" int: 0; + value "menu_gadcon_client_toplevel" int: 0; value "fullscreen_policy" int: 0; value "exebuf_term_cmd" string: "xterm -hold -e"; value "use_app_icon" int: 0; diff --git a/config/scaleable/e.src b/config/scaleable/e.src index bd1ad84b2..9441ff7c7 100644 --- a/config/scaleable/e.src +++ b/config/scaleable/e.src @@ -1516,6 +1516,7 @@ group "E_Config" struct { value "menu_eap_name_show" int: 1; value "menu_eap_generic_show" int: 1; value "menu_eap_comment_show" int: 0; + value "menu_gadcon_client_toplevel" int: 0; value "fullscreen_policy" int: 0; value "exebuf_max_exe_list" int: 20; value "exebuf_max_eap_list" int: 20; diff --git a/config/standard/e.src b/config/standard/e.src index 02c09b5ef..d9f5c2978 100644 --- a/config/standard/e.src +++ b/config/standard/e.src @@ -1651,6 +1651,7 @@ group "E_Config" struct { value "menu_eap_name_show" int: 1; value "menu_eap_generic_show" int: 1; value "menu_eap_comment_show" int: 0; + value "menu_gadcon_client_toplevel" int: 0; value "fullscreen_policy" int: 0; value "exebuf_term_cmd" string: "xterm -hold -e"; value "use_app_icon" int: 0; diff --git a/src/bin/e_config.c b/src/bin/e_config.c index aac4062a0..6341f92bf 100644 --- a/src/bin/e_config.c +++ b/src/bin/e_config.c @@ -843,7 +843,8 @@ e_config_init(void) E_CONFIG_VAL(D, T, menu_favorites_show, INT); E_CONFIG_VAL(D, T, menu_apps_show, INT); - + E_CONFIG_VAL(D, T, menu_gadcon_client_toplevel, INT); + E_CONFIG_VAL(D, T, ping_clients_interval, INT); E_CONFIG_VAL(D, T, cache_flush_poll_interval, INT); @@ -1286,6 +1287,7 @@ e_config_load(void) E_CONFIG_LIMIT(e_config->menu_favorites_show, 0, 1); E_CONFIG_LIMIT(e_config->menu_apps_show, 0, 1); + E_CONFIG_LIMIT(e_config->menu_gadcon_client_toplevel, 0, 1); E_CONFIG_LIMIT(e_config->ping_clients_interval, 16, 1024); diff --git a/src/bin/e_config.h b/src/bin/e_config.h index cb73441e2..45819e6ae 100644 --- a/src/bin/e_config.h +++ b/src/bin/e_config.h @@ -188,6 +188,7 @@ struct _E_Config int menu_eap_comment_show; // GUI int menu_favorites_show; // GUI int menu_apps_show; // GUI + int menu_gadcon_client_toplevel; // GUI int fullscreen_policy; // GUI const char *exebuf_term_cmd; // GUI Eina_List *color_classes; // GUI diff --git a/src/bin/e_gadcon.c b/src/bin/e_gadcon.c index 786098d69..c7623273b 100644 --- a/src/bin/e_gadcon.c +++ b/src/bin/e_gadcon.c @@ -1370,16 +1370,21 @@ e_gadcon_client_add_location_menu(E_Gadcon_Client *gcc, E_Menu *menu) } } -EAPI void -e_gadcon_client_util_menu_items_append(E_Gadcon_Client *gcc, E_Menu *menu_main, E_Menu *menu_gadget, int flags __UNUSED__) +EAPI E_Menu * +e_gadcon_client_util_menu_items_append(E_Gadcon_Client *gcc, E_Menu *menu_gadget, int flags __UNUSED__) { - E_Menu *mo; + E_Menu *mo, *menu_main = NULL; E_Menu_Item *mi; char buf[256]; E_OBJECT_CHECK(gcc); E_OBJECT_TYPE_CHECK(gcc, E_GADCON_CLIENT_TYPE); + if (e_config->menu_gadcon_client_toplevel) + menu_main = menu_gadget; + else + menu_main = e_menu_new(); + if ((gcc->gadcon->shelf) || (gcc->gadcon->toolbar)) { if (e_menu_item_nth(menu_gadget, 0)) @@ -1387,7 +1392,7 @@ e_gadcon_client_util_menu_items_append(E_Gadcon_Client *gcc, E_Menu *menu_main, mi = e_menu_item_new(menu_gadget); e_menu_item_separator_set(mi, 1); } - if (!gcc->o_control) + if (!gcc->o_control) { mi = e_menu_item_new(menu_gadget); e_menu_item_label_set(mi, _("Begin move/resize")); @@ -1448,24 +1453,36 @@ e_gadcon_client_util_menu_items_append(E_Gadcon_Client *gcc, E_Menu *menu_main, e_menu_item_callback_set(mi, _e_gadcon_client_cb_menu_remove, gcc); } - mi = e_menu_item_new(menu_main); - if (gcc->client_class->func.label) - snprintf(buf, sizeof(buf), "Gadget %s", - gcc->client_class->func.label((E_Gadcon_Client_Class *)gcc->client_class)); - else - snprintf(buf, sizeof(buf), "Gadget %s", gcc->name); - - e_menu_item_label_set(mi, _(buf)); - e_menu_item_realize_callback_set(mi, _e_gadcon_client_cb_menu_pre, gcc); - e_menu_item_submenu_set(mi, menu_gadget); + if (!e_config->menu_gadcon_client_toplevel) + { + mi = e_menu_item_new(menu_main); + if (gcc->client_class->func.label) + snprintf(buf, sizeof(buf), "Gadget %s", + gcc->client_class->func.label((E_Gadcon_Client_Class *)gcc->client_class)); + else + snprintf(buf, sizeof(buf), "Gadget %s", gcc->name); + e_menu_item_label_set(mi, _(buf)); + e_menu_item_realize_callback_set(mi, _e_gadcon_client_cb_menu_pre, gcc); + e_menu_item_submenu_set(mi, menu_gadget); + } + if (gcc->gadcon->menu_attach.func) { if ((gcc->gadcon->shelf) || (gcc->gadcon->toolbar)) - gcc->gadcon->menu_attach.func(gcc->gadcon->menu_attach.data, gcc, menu_main); + { + if (e_config->menu_gadcon_client_toplevel) + { + mi = e_menu_item_new(menu_main); + e_menu_item_separator_set(mi, 1); + } + gcc->gadcon->menu_attach.func(gcc->gadcon->menu_attach.data, gcc, menu_main); + } else gcc->gadcon->menu_attach.func(gcc->gadcon->menu_attach.data, gcc, menu_gadget); } + + return menu_main; } EAPI void @@ -2593,22 +2610,22 @@ _e_gadcon_client_cb_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj if (gcc->menu) return; if (ev->button == 3) { - E_Menu *ma, *mg; + E_Menu *m; E_Zone *zone; int cx, cy, cw, ch; e_gadcon_locked_set(gcc->gadcon, 1); - ma = e_menu_new(); - mg = e_menu_new(); - e_menu_post_deactivate_callback_set(ma, _e_gadcon_client_cb_menu_post, - gcc); - gcc->menu = ma; + m = e_menu_new(); + + m = e_gadcon_client_util_menu_items_append(gcc, m, 0); + e_menu_post_deactivate_callback_set(m, _e_gadcon_client_cb_menu_post, + gcc); + gcc->menu = m; - e_gadcon_client_util_menu_items_append(gcc, ma, mg, 0); e_gadcon_canvas_zone_geometry_get(gcc->gadcon, &cx, &cy, &cw, &ch); zone = gcc->gadcon->zone; if (!zone) zone = e_util_zone_current_get(e_manager_current_get()); - e_menu_activate_mouse(ma, zone, + e_menu_activate_mouse(m, zone, cx + ev->output.x, cy + ev->output.y, 1, 1, E_MENU_POP_DIRECTION_AUTO, ev->timestamp); diff --git a/src/bin/e_gadcon.h b/src/bin/e_gadcon.h index 19caae676..bbc4f4217 100644 --- a/src/bin/e_gadcon.h +++ b/src/bin/e_gadcon.h @@ -287,7 +287,7 @@ EAPI void e_gadcon_client_resizable_set(E_Gadcon_Client *gcc, int re EAPI int e_gadcon_client_geometry_get(E_Gadcon_Client *gcc, int *x, int *y, int *w, int *h); EAPI int e_gadcon_client_viewport_geometry_get(E_Gadcon_Client *gcc, int *x, int *y, int *w, int *h); EAPI E_Zone *e_gadcon_client_zone_get(E_Gadcon_Client *gcc); -EAPI void e_gadcon_client_util_menu_items_append(E_Gadcon_Client *gcc, E_Menu *menu_main, E_Menu *menu_gadget, int flags); +EAPI E_Menu *e_gadcon_client_util_menu_items_append(E_Gadcon_Client *gcc, E_Menu *menu_gadget, int flags); EAPI void e_gadcon_client_util_menu_attach(E_Gadcon_Client *gcc); EAPI void e_gadcon_locked_set(E_Gadcon *gc, int lock); EAPI void e_gadcon_urgent_show(E_Gadcon *gc); diff --git a/src/bin/e_int_shelf_config.c b/src/bin/e_int_shelf_config.c index 60484225f..2ac06fee0 100644 --- a/src/bin/e_int_shelf_config.c +++ b/src/bin/e_int_shelf_config.c @@ -176,7 +176,7 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data /* size */ ol = e_widget_list_add(evas, 0, 0); - ow = e_widget_slider_add(evas, 1, 0, _("Height (%3.0f pixels)"), 4, 120, 4, 0, + ow = e_widget_slider_add(evas, 1, 0, _("Height (%3.0f pixels)"), 4, 256, 4, 0, NULL, &(cfdata->size), 100); e_widget_list_object_append(ol, ow, 1, 1, 0.5); ow = e_widget_check_add(evas, _("Shrink to Content Width"), @@ -224,7 +224,7 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data cfdata->autohide_list = eina_list_append(cfdata->autohide_list, ow); e_widget_disabled_set(ow, !cfdata->autohide); e_widget_list_object_append(ol, ow, 1, 1, 0.5); - ow = e_widget_slider_add(evas, 1, 0, _("%.1f seconds"), 0.2, 6.0, 0.2, 0, + ow = e_widget_slider_add(evas, 1, 0, _("%.2f seconds"), 0.05, 6.0, 0.05, 0, &(cfdata->hide_duration), NULL, 100); cfdata->autohide_list = eina_list_append(cfdata->autohide_list, ow); e_widget_disabled_set(ow, !cfdata->autohide); diff --git a/src/bin/e_menu.c b/src/bin/e_menu.c index 00083b8dd..7e0c1b141 100644 --- a/src/bin/e_menu.c +++ b/src/bin/e_menu.c @@ -583,6 +583,39 @@ e_menu_item_new(E_Menu *m) return mi; } +EAPI E_Menu_Item * +e_menu_item_new_relative(E_Menu *m, E_Menu_Item *rel) +{ + E_Menu_Item *mi; + E_OBJECT_CHECK_RETURN(m, NULL); + E_OBJECT_TYPE_CHECK_RETURN(m, E_MENU_TYPE, NULL); + if (rel) + { + E_OBJECT_CHECK_RETURN(rel, NULL); + E_OBJECT_TYPE_CHECK_RETURN(rel, E_MENU_ITEM_TYPE, NULL); + if (rel->menu != m) return NULL; + } + + mi = E_OBJECT_ALLOC(E_Menu_Item, E_MENU_ITEM_TYPE, _e_menu_item_free); + mi->menu = m; + + if (rel) + { + Eina_List *l; + + l = eina_list_data_find_list(m->items, rel); + m->items = eina_list_append_relative_list(m->items, mi, l); + mi->list_position = eina_list_data_find_list(m->items, mi); + } + else + { + m->items = eina_list_prepend(m->items, mi); + mi->list_position = m->items; + } + + return mi; +} + EAPI E_Menu_Item * e_menu_item_nth(E_Menu *m, int n) { diff --git a/src/bin/e_menu.h b/src/bin/e_menu.h index 6cd9e707f..13e16ea30 100644 --- a/src/bin/e_menu.h +++ b/src/bin/e_menu.h @@ -181,6 +181,7 @@ EAPI void e_menu_post_deactivate_callback_set(E_Menu *m, void (*func) ( EAPI E_Menu *e_menu_root_get(E_Menu *m); EAPI E_Menu_Item *e_menu_item_new(E_Menu *m); +EAPI E_Menu_Item *e_menu_item_new_relative(E_Menu *m, E_Menu_Item *rel); EAPI E_Menu_Item *e_menu_item_nth(E_Menu *m, int n); EAPI int e_menu_item_num_get(const E_Menu_Item *mi); EAPI void e_menu_item_icon_file_set(E_Menu_Item *mi, const char *icon); diff --git a/src/bin/e_shelf.c b/src/bin/e_shelf.c index a02aea4c7..35652471e 100644 --- a/src/bin/e_shelf.c +++ b/src/bin/e_shelf.c @@ -1164,17 +1164,12 @@ _e_shelf_menu_append(E_Shelf *es, E_Menu *mn) { E_Menu_Item *mi; E_Menu *subm; - const char *name; - char buf[256]; - - name = e_shelf_orient_string_get (es); - snprintf(buf, sizeof(buf), "Shelf %s", name); e_shelf_locked_set(es, 1); subm = e_menu_new(); mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, buf); + e_menu_item_label_set(mi, _("Shelf Settings")); e_util_menu_item_theme_icon_set(mi, "preferences-desktop-shelf"); e_menu_pre_activate_callback_set(subm, _e_shelf_menu_pre_cb, es); e_object_free_attach_func_set(E_OBJECT(mi), _e_shelf_menu_item_free); diff --git a/src/modules/battery/e_mod_main.c b/src/modules/battery/e_mod_main.c index 7fa31e987..37f120275 100644 --- a/src/modules/battery/e_mod_main.c +++ b/src/modules/battery/e_mod_main.c @@ -174,26 +174,23 @@ _button_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info) ev = event_info; if ((ev->button == 3) && (!battery_config->menu)) { - E_Menu *ma, *mg; + E_Menu *m; E_Menu_Item *mi; int cx, cy; - ma = e_menu_new(); - e_menu_post_deactivate_callback_set(ma, _menu_cb_post, inst); - battery_config->menu = ma; - - mg = e_menu_new(); - - mi = e_menu_item_new(mg); + m = e_menu_new(); + mi = e_menu_item_new(m); e_menu_item_label_set(mi, _("Settings")); e_util_menu_item_theme_icon_set(mi, "configure"); e_menu_item_callback_set(mi, _battery_face_cb_menu_configure, NULL); - e_gadcon_client_util_menu_items_append(inst->gcc, ma, mg, 0); + m = e_gadcon_client_util_menu_items_append(inst->gcc, m, 0); + e_menu_post_deactivate_callback_set(m, _menu_cb_post, inst); + battery_config->menu = m; e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon, &cx, &cy, NULL, NULL); - e_menu_activate_mouse(ma, + e_menu_activate_mouse(m, e_util_zone_current_get(e_manager_current_get()), cx + ev->output.x, cy + ev->output.y, 1, 1, E_MENU_POP_DIRECTION_DOWN, ev->timestamp); diff --git a/src/modules/bluez/e_mod_main.c b/src/modules/bluez/e_mod_main.c index f9390d707..298c234a0 100644 --- a/src/modules/bluez/e_mod_main.c +++ b/src/modules/bluez/e_mod_main.c @@ -754,26 +754,24 @@ static void _bluez_menu_new(E_Bluez_Instance *inst, Evas_Event_Mouse_Down *ev) { E_Zone *zone; - E_Menu *ma, *mg; + E_Menu *m; E_Menu_Item *mi; int x, y; zone = e_util_zone_current_get(e_manager_current_get()); - ma = e_menu_new(); - e_menu_post_deactivate_callback_set(ma, _bluez_menu_cb_post, inst); - inst->menu = ma; - - mg = e_menu_new(); - - mi = e_menu_item_new(mg); + m = e_menu_new(); + mi = e_menu_item_new(m); e_menu_item_label_set(mi, _("Settings")); e_util_menu_item_theme_icon_set(mi, "configure"); e_menu_item_callback_set(mi, _bluez_menu_cb_cfg, inst); - e_gadcon_client_util_menu_items_append(inst->gcc, ma, mg, 0); + m = e_gadcon_client_util_menu_items_append(inst->gcc, m, 0); + e_menu_post_deactivate_callback_set(m, _bluez_menu_cb_post, inst); + inst->menu = m; + e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon, &x, &y, NULL, NULL); - e_menu_activate_mouse(ma, zone, x + ev->output.x, y + ev->output.y, + e_menu_activate_mouse(m, zone, x + ev->output.x, y + ev->output.y, 1, 1, E_MENU_POP_DIRECTION_AUTO, ev->timestamp); evas_event_feed_mouse_up(inst->gcc->gadcon->evas, ev->button, EVAS_BUTTON_NONE, ev->timestamp, NULL); diff --git a/src/modules/comp/shadow.edj b/src/modules/comp/shadow.edj index 8720a3644..31bfc910c 100644 Binary files a/src/modules/comp/shadow.edj and b/src/modules/comp/shadow.edj differ diff --git a/src/modules/conf_menus/e_int_config_menus.c b/src/modules/conf_menus/e_int_config_menus.c index 432aad795..2084663e8 100644 --- a/src/modules/conf_menus/e_int_config_menus.c +++ b/src/modules/conf_menus/e_int_config_menus.c @@ -5,6 +5,7 @@ struct _E_Config_Dialog_Data { int show_favs, show_apps; int show_name, show_generic, show_comment; + int menu_gadcon_client_toplevel; double scroll_speed, fast_mouse_move_threshhold; double click_drag_timeout; int autoscroll_margin, autoscroll_cursor_margin; @@ -69,6 +70,7 @@ _fill_data(E_Config_Dialog_Data *cfdata __UNUSED__) cfdata->show_name = e_config->menu_eap_name_show; cfdata->show_generic = e_config->menu_eap_generic_show; cfdata->show_comment = e_config->menu_eap_comment_show; + cfdata->menu_gadcon_client_toplevel = e_config->menu_gadcon_client_toplevel; cfdata->scroll_speed = e_config->menus_scroll_speed; cfdata->fast_mouse_move_threshhold = e_config->menus_fast_mouse_move_threshhold; @@ -108,6 +110,11 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data e_widget_framelist_object_append(of, ow); e_widget_list_object_append(o, of, 1, 0, 0.5); + of = e_widget_framelist_add(evas, _("Gadgets"), 0); + ow = e_widget_check_add(evas, _("Show gadget settings in top-level"), &(cfdata->menu_gadcon_client_toplevel)); + e_widget_framelist_object_append(of, ow); + e_widget_list_object_append(o, of, 1, 0, 0.5); + return o; } @@ -119,6 +126,7 @@ _basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) e_config->menu_eap_name_show = cfdata->show_name; e_config->menu_eap_generic_show = cfdata->show_generic; e_config->menu_eap_comment_show = cfdata->show_comment; + e_config->menu_gadcon_client_toplevel = cfdata->menu_gadcon_client_toplevel; e_config_save_queue(); return 1; } @@ -130,7 +138,8 @@ _basic_check_changed(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfda (e_config->menu_apps_show != cfdata->show_apps) || (e_config->menu_eap_name_show != cfdata->show_name) || (e_config->menu_eap_generic_show != cfdata->show_generic) || - (e_config->menu_eap_comment_show != cfdata->show_comment)); + (e_config->menu_eap_comment_show != cfdata->show_comment) || + (e_config->menu_gadcon_client_toplevel != cfdata->menu_gadcon_client_toplevel)); } static void diff --git a/src/modules/connman/e_mod_main.c b/src/modules/connman/e_mod_main.c index 2eaf9c757..30ce781db 100644 --- a/src/modules/connman/e_mod_main.c +++ b/src/modules/connman/e_mod_main.c @@ -1211,26 +1211,23 @@ static void _connman_menu_new(E_Connman_Instance *inst, Evas_Event_Mouse_Down *ev) { E_Zone *zone; - E_Menu *ma, *mg; + E_Menu *m; E_Menu_Item *mi; int x, y; zone = e_util_zone_current_get(e_manager_current_get()); - ma = e_menu_new(); - e_menu_post_deactivate_callback_set(ma, _connman_menu_cb_post, inst); - inst->menu = ma; - - mg = e_menu_new(); - - mi = e_menu_item_new(mg); + m = e_menu_new(); + mi = e_menu_item_new(m); e_menu_item_label_set(mi, _("Settings")); e_util_menu_item_theme_icon_set(mi, "configure"); e_menu_item_callback_set(mi, _connman_menu_cb_cfg, inst); - e_gadcon_client_util_menu_items_append(inst->gcc, ma, mg, 0); + m = e_gadcon_client_util_menu_items_append(inst->gcc, m, 0); + e_menu_post_deactivate_callback_set(m, _connman_menu_cb_post, inst); + inst->menu = m; e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon, &x, &y, NULL, NULL); - e_menu_activate_mouse(ma, zone, x + ev->output.x, y + ev->output.y, + e_menu_activate_mouse(m, zone, x + ev->output.x, y + ev->output.y, 1, 1, E_MENU_POP_DIRECTION_AUTO, ev->timestamp); evas_event_feed_mouse_up(inst->gcc->gadcon->evas, ev->button, EVAS_BUTTON_NONE, ev->timestamp, NULL); diff --git a/src/modules/cpufreq/e_mod_main.c b/src/modules/cpufreq/e_mod_main.c index 1b15875d2..10a2b33f4 100644 --- a/src/modules/cpufreq/e_mod_main.c +++ b/src/modules/cpufreq/e_mod_main.c @@ -347,20 +347,18 @@ _button_cb_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED_ } else if (ev->button == 3) { - E_Menu *ma, *mg; + E_Menu *m; int cx, cy; - ma = e_menu_new(); - mg = e_menu_new(); - cpufreq_config->menu = ma; - e_menu_post_deactivate_callback_set(ma, _menu_cb_post, NULL); - - e_gadcon_client_util_menu_items_append(inst->gcc, ma, mg, 0); + m = e_menu_new(); + m = e_gadcon_client_util_menu_items_append(inst->gcc, m, 0); + cpufreq_config->menu = m; + e_menu_post_deactivate_callback_set(m, _menu_cb_post, NULL); e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon, &cx, &cy, NULL, NULL); - e_menu_activate_mouse(ma, + e_menu_activate_mouse(m, e_util_zone_current_get(e_manager_current_get()), cx + ev->output.x, cy + ev->output.y, 1, 1, E_MENU_POP_DIRECTION_AUTO, ev->timestamp); diff --git a/src/modules/gadman/e_mod_gadman.c b/src/modules/gadman/e_mod_gadman.c index 89c5c8917..3f06f12d0 100644 --- a/src/modules/gadman/e_mod_gadman.c +++ b/src/modules/gadman/e_mod_gadman.c @@ -1062,15 +1062,14 @@ on_frame_click(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void if (ev->button == 5) { - E_Menu *ma, *mg; + E_Menu *m; int cx, cy, cw, ch; - ma = e_menu_new(); - gcc->menu = ma; - mg = e_menu_new(); - e_gadcon_client_util_menu_items_append(gcc, ma, mg, 0); + m = e_menu_new(); + m = e_gadcon_client_util_menu_items_append(gcc, m, 0); + gcc->menu = m; e_gadcon_canvas_zone_geometry_get(gcc->gadcon, &cx, &cy, &cw, &ch); - e_menu_activate_mouse(ma, + e_menu_activate_mouse(m, e_util_zone_current_get(e_manager_current_get()), cx + ev->output.x, cy + ev->output.y, 1, 1, E_MENU_POP_DIRECTION_DOWN, ev->timestamp); diff --git a/src/modules/ibar/e_mod_main.c b/src/modules/ibar/e_mod_main.c index 7fed625bd..e93ccf29f 100644 --- a/src/modules/ibar/e_mod_main.c +++ b/src/modules/ibar/e_mod_main.c @@ -300,25 +300,23 @@ _ibar_cb_empty_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNU b = data; if (!ibar_config->menu) { - E_Menu *ma, *mg; + E_Menu *m; E_Menu_Item *mi; int cx, cy, cw, ch; - ma = e_menu_new(); - mg = e_menu_new(); - e_menu_post_deactivate_callback_set(ma, _ibar_cb_menu_post, NULL); - ibar_config->menu = ma; - - mi = e_menu_item_new(mg); + m = e_menu_new(); + mi = e_menu_item_new(m); e_menu_item_label_set(mi, _("Settings")); e_util_menu_item_theme_icon_set(mi, "configure"); e_menu_item_callback_set(mi, _ibar_cb_menu_configuration, b); - e_gadcon_client_util_menu_items_append(b->inst->gcc, ma, mg, 0); + m = e_gadcon_client_util_menu_items_append(b->inst->gcc, m, 0); + e_menu_post_deactivate_callback_set(m, _ibar_cb_menu_post, NULL); + ibar_config->menu = m; e_gadcon_canvas_zone_geometry_get(b->inst->gcc->gadcon, &cx, &cy, &cw, &ch); - e_menu_activate_mouse(ma, + e_menu_activate_mouse(m, e_util_zone_current_get(e_manager_current_get()), cx + ev->output.x, cy + ev->output.y, 1, 1, E_MENU_POP_DIRECTION_DOWN, ev->timestamp); @@ -776,18 +774,44 @@ _ibar_cb_icon_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUS } else if ((ev->button == 3) && (!ibar_config->menu)) { - E_Menu *ma, *mg, *mo; + E_Menu *m, *mo; E_Menu_Item *mi; char buf[256]; int cx, cy; - ma = e_menu_new(); - e_menu_post_deactivate_callback_set(ma, _ibar_cb_menu_post, NULL); - ibar_config->menu = ma; + m = e_menu_new(); /* FIXME: other icon options go here too */ mo = e_menu_new(); + if (e_configure_registry_exists("applications/new_application")) + { + mi = e_menu_item_new(m); + e_menu_item_label_set(mi, _("Create new Icon")); + e_util_menu_item_theme_icon_set(mi, "document-new"); + e_menu_item_callback_set(mi, _ibar_cb_menu_icon_new, NULL); + + mi = e_menu_item_new(m); + e_menu_item_separator_set(mi, 1); + } + + if (e_configure_registry_exists("applications/ibar_applications")) + { + mi = e_menu_item_new(m); + e_menu_item_label_set(mi, _("Contents")); + e_util_menu_item_theme_icon_set(mi, "list-add"); + e_menu_item_callback_set(mi, _ibar_cb_menu_icon_add, NULL); + } + + mi = e_menu_item_new(m); + e_menu_item_label_set(mi, _("Settings")); + e_util_menu_item_theme_icon_set(mi, "configure"); + e_menu_item_callback_set(mi, _ibar_cb_menu_configuration, ic->ibar); + + m = e_gadcon_client_util_menu_items_append(ic->ibar->inst->gcc, m, 0); + e_menu_post_deactivate_callback_set(m, _ibar_cb_menu_post, NULL); + ibar_config->menu = m; + mi = e_menu_item_new(mo); e_menu_item_label_set(mi, _("Properties")); e_util_menu_item_theme_icon_set(mi, "configure"); @@ -798,7 +822,7 @@ _ibar_cb_icon_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUS e_util_menu_item_theme_icon_set(mi, "list-remove"); e_menu_item_callback_set(mi, _ibar_cb_menu_icon_remove, ic); - mi = e_menu_item_new(ma); + mi = e_menu_item_new_relative(m, NULL); snprintf(buf, sizeof(buf), "Icon %s", ic->app->name); e_menu_item_label_set(mi, _(buf)); e_util_desktop_menu_item_icon_add(ic->app, @@ -806,35 +830,9 @@ _ibar_cb_icon_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUS mi); e_menu_item_submenu_set(mi, mo); - mg = e_menu_new(); - if (e_configure_registry_exists("applications/new_application")) - { - mi = e_menu_item_new(mg); - e_menu_item_label_set(mi, _("Create new Icon")); - e_util_menu_item_theme_icon_set(mi, "document-new"); - e_menu_item_callback_set(mi, _ibar_cb_menu_icon_new, NULL); - - mi = e_menu_item_new(mg); - e_menu_item_separator_set(mi, 1); - } - - if (e_configure_registry_exists("applications/ibar_applications")) - { - mi = e_menu_item_new(mg); - e_menu_item_label_set(mi, _("Contents")); - e_util_menu_item_theme_icon_set(mi, "list-add"); - e_menu_item_callback_set(mi, _ibar_cb_menu_icon_add, NULL); - } - - mi = e_menu_item_new(mg); - e_menu_item_label_set(mi, _("Settings")); - e_util_menu_item_theme_icon_set(mi, "configure"); - e_menu_item_callback_set(mi, _ibar_cb_menu_configuration, ic->ibar); - - e_gadcon_client_util_menu_items_append(ic->ibar->inst->gcc, ma, mg, 0); e_gadcon_canvas_zone_geometry_get(ic->ibar->inst->gcc->gadcon, &cx, &cy, NULL, NULL); - e_menu_activate_mouse(ma, + e_menu_activate_mouse(m, e_util_zone_current_get(e_manager_current_get()), cx + ev->output.x, cy + ev->output.y, 1, 1, E_MENU_POP_DIRECTION_DOWN, ev->timestamp); diff --git a/src/modules/ibox/e_mod_main.c b/src/modules/ibox/e_mod_main.c index e54974d59..b44ac507f 100644 --- a/src/modules/ibox/e_mod_main.c +++ b/src/modules/ibox/e_mod_main.c @@ -292,26 +292,24 @@ _ibox_cb_empty_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNU b = data; if (!ibox_config->menu) { - E_Menu *ma, *mg; + E_Menu *m; E_Menu_Item *mi; int cx, cy; - ma = e_menu_new(); - e_menu_post_deactivate_callback_set(ma, _ibox_cb_menu_post, NULL); - ibox_config->menu = ma; - - mg = e_menu_new(); - - mi = e_menu_item_new(mg); + m = e_menu_new(); + mi = e_menu_item_new(m); e_menu_item_label_set(mi, _("Settings")); e_util_menu_item_theme_icon_set(mi, "configure"); e_menu_item_callback_set(mi, _ibox_cb_menu_configuration, b); - e_gadcon_client_util_menu_items_append(b->inst->gcc, ma, mg, 0); + m = e_gadcon_client_util_menu_items_append(b->inst->gcc, m, 0); + e_menu_post_deactivate_callback_set(m, _ibox_cb_menu_post, NULL); + ibox_config->menu = m; + e_gadcon_canvas_zone_geometry_get(b->inst->gcc->gadcon, &cx, &cy, NULL, NULL); - e_menu_activate_mouse(ma, + e_menu_activate_mouse(m, e_util_zone_current_get(e_manager_current_get()), cx + ev->output.x, cy + ev->output.y, 1, 1, E_MENU_POP_DIRECTION_DOWN, ev->timestamp); @@ -685,27 +683,25 @@ _ibox_cb_icon_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUS } else if ((ev->button == 3) && (!ibox_config->menu)) { - E_Menu *ma, *mg; + E_Menu *m; E_Menu_Item *mi; int cx, cy; - ma = e_menu_new(); - e_menu_post_deactivate_callback_set(ma, _ibox_cb_menu_post, NULL); - ibox_config->menu = ma; - - mg = e_menu_new(); + m = e_menu_new(); /* FIXME: other icon options go here too */ - mi = e_menu_item_new(mg); + mi = e_menu_item_new(m); e_menu_item_label_set(mi, _("Settings")); e_util_menu_item_theme_icon_set(mi, "configure"); e_menu_item_callback_set(mi, _ibox_cb_menu_configuration, ic->ibox); - e_gadcon_client_util_menu_items_append(ic->ibox->inst->gcc, ma, mg, 0); + m = e_gadcon_client_util_menu_items_append(ic->ibox->inst->gcc, m, 0); + e_menu_post_deactivate_callback_set(m, _ibox_cb_menu_post, NULL); + ibox_config->menu = m; e_gadcon_canvas_zone_geometry_get(ic->ibox->inst->gcc->gadcon, &cx, &cy, NULL, NULL); - e_menu_activate_mouse(ma, + e_menu_activate_mouse(m, e_util_zone_current_get(e_manager_current_get()), cx + ev->output.x, cy + ev->output.y, 1, 1, E_MENU_POP_DIRECTION_DOWN, ev->timestamp); diff --git a/src/modules/mixer/e_mod_main.c b/src/modules/mixer/e_mod_main.c index 534677ee6..9d52dda19 100644 --- a/src/modules/mixer/e_mod_main.c +++ b/src/modules/mixer/e_mod_main.c @@ -665,26 +665,25 @@ static void _mixer_menu_new(E_Mixer_Instance *inst, Evas_Event_Mouse_Down *ev) { E_Zone *zone; - E_Menu *ma, *mg; + E_Menu *m; E_Menu_Item *mi; int x, y; zone = e_util_zone_current_get(e_manager_current_get()); - ma = e_menu_new(); - e_menu_post_deactivate_callback_set(ma, _mixer_menu_cb_post, inst); - inst->menu = ma; + m = e_menu_new(); - mg = e_menu_new(); - - mi = e_menu_item_new(mg); + mi = e_menu_item_new(m); e_menu_item_label_set(mi, _("Settings")); e_util_menu_item_theme_icon_set(mi, "configure"); e_menu_item_callback_set(mi, _mixer_menu_cb_cfg, inst); - e_gadcon_client_util_menu_items_append(inst->gcc, ma, mg, 0); + m = e_gadcon_client_util_menu_items_append(inst->gcc, m, 0); + e_menu_post_deactivate_callback_set(m, _mixer_menu_cb_post, inst); + inst->menu = m; + e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon, &x, &y, NULL, NULL); - e_menu_activate_mouse(ma, zone, x + ev->output.x, y + ev->output.y, + e_menu_activate_mouse(m, zone, x + ev->output.x, y + ev->output.y, 1, 1, E_MENU_POP_DIRECTION_AUTO, ev->timestamp); evas_event_feed_mouse_up(inst->gcc->gadcon->evas, ev->button, EVAS_BUTTON_NONE, ev->timestamp, NULL); diff --git a/src/modules/ofono/e_mod_main.c b/src/modules/ofono/e_mod_main.c index ef5daad88..ad46bcfd2 100644 --- a/src/modules/ofono/e_mod_main.c +++ b/src/modules/ofono/e_mod_main.c @@ -225,20 +225,17 @@ static void _ofono_menu_new(E_Ofono_Instance *inst, Evas_Event_Mouse_Down *ev) { E_Zone *zone; - E_Menu *ma, *mg; + E_Menu *m; int x, y; zone = e_util_zone_current_get(e_manager_current_get()); - ma = e_menu_new(); - e_menu_post_deactivate_callback_set(ma, _ofono_menu_cb_post, inst); - inst->menu = ma; - - mg = e_menu_new(); - - e_gadcon_client_util_menu_items_append(inst->gcc, ma, mg, 0); + m = e_menu_new(); + m = e_gadcon_client_util_menu_items_append(inst->gcc, m, 0); + e_menu_post_deactivate_callback_set(m, _ofono_menu_cb_post, inst); + inst->menu = m; e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon, &x, &y, NULL, NULL); - e_menu_activate_mouse(ma, zone, x + ev->output.x, y + ev->output.y, + e_menu_activate_mouse(m, zone, x + ev->output.x, y + ev->output.y, 1, 1, E_MENU_POP_DIRECTION_AUTO, ev->timestamp); evas_event_feed_mouse_up(inst->gcc->gadcon->evas, ev->button, EVAS_BUTTON_NONE, ev->timestamp, NULL); diff --git a/src/modules/pager/e_mod_main.c b/src/modules/pager/e_mod_main.c index d81fda578..335f6ffce 100644 --- a/src/modules/pager/e_mod_main.c +++ b/src/modules/pager/e_mod_main.c @@ -781,34 +781,32 @@ _button_cb_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED_ ev = event_info; if ((ev->button == 3) && (!pager_config->menu)) { - E_Menu *ma, *mg; + E_Menu *m; E_Menu_Item *mi; int cx, cy; - ma = e_menu_new(); - e_menu_post_deactivate_callback_set(ma, _menu_cb_post, inst); - pager_config->menu = ma; - + m = e_menu_new(); + if (e_configure_registry_exists("screen/virtual_desktops")) { - mi = e_menu_item_new(ma); + mi = e_menu_item_new(m); e_menu_item_label_set(mi, _("Virtual Desktops Settings")); e_util_menu_item_theme_icon_set(mi, "preferences-desktop"); e_menu_item_callback_set(mi, _pager_inst_cb_menu_virtual_desktops_dialog, inst); } - mg = e_menu_new(); - - mi = e_menu_item_new(mg); + mi = e_menu_item_new(m); e_menu_item_label_set(mi, _("Settings")); e_util_menu_item_theme_icon_set(mi, "configure"); e_menu_item_callback_set(mi, _pager_inst_cb_menu_configure, NULL); - e_gadcon_client_util_menu_items_append(inst->gcc, ma, mg, 0); + m = e_gadcon_client_util_menu_items_append(inst->gcc, m, 0); + e_menu_post_deactivate_callback_set(m, _menu_cb_post, inst); + pager_config->menu = m; e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon, &cx, &cy, NULL, NULL); - e_menu_activate_mouse(ma, + e_menu_activate_mouse(m, e_util_zone_current_get(e_manager_current_get()), cx + ev->output.x, cy + ev->output.y, 1, 1, E_MENU_POP_DIRECTION_DOWN, ev->timestamp); diff --git a/src/modules/systray/e_mod_main.c b/src/modules/systray/e_mod_main.c index c2fae9520..cc164a8cb 100644 --- a/src/modules/systray/e_mod_main.c +++ b/src/modules/systray/e_mod_main.c @@ -143,20 +143,17 @@ static void _systray_menu_new(Instance *inst, Evas_Event_Mouse_Down *ev) { E_Zone *zone; - E_Menu *ma, *mg; + E_Menu *m; int x, y; zone = e_util_zone_current_get(e_manager_current_get()); - ma = e_menu_new(); - e_menu_post_deactivate_callback_set(ma, _systray_menu_cb_post, inst); - inst->menu = ma; - - mg = e_menu_new(); - - e_gadcon_client_util_menu_items_append(inst->gcc, ma, mg, 0); + m = e_menu_new(); + m = e_gadcon_client_util_menu_items_append(inst->gcc, m, 0); + e_menu_post_deactivate_callback_set(m, _systray_menu_cb_post, inst); + inst->menu = m; e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon, &x, &y, NULL, NULL); - e_menu_activate_mouse(ma, zone, x + ev->output.x, y + ev->output.y, + e_menu_activate_mouse(m, zone, x + ev->output.x, y + ev->output.y, 1, 1, E_MENU_POP_DIRECTION_AUTO, ev->timestamp); } diff --git a/src/modules/temperature/e_mod_main.c b/src/modules/temperature/e_mod_main.c index e55dce635..e46f73d81 100644 --- a/src/modules/temperature/e_mod_main.c +++ b/src/modules/temperature/e_mod_main.c @@ -217,26 +217,23 @@ _temperature_face_cb_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj ev = event_info; if ((ev->button == 3) && (!inst->menu)) { - E_Menu *ma, *mg; + E_Menu *m; E_Menu_Item *mi; int cx, cy; - ma = e_menu_new(); - e_menu_post_deactivate_callback_set(ma, _temperature_face_cb_post_menu, inst); - inst->menu = ma; - - mg = e_menu_new(); - - mi = e_menu_item_new(mg); + m = e_menu_new(); + mi = e_menu_item_new(m); e_menu_item_label_set(mi, _("Settings")); e_util_menu_item_theme_icon_set(mi, "configure"); e_menu_item_callback_set(mi, _temperature_face_cb_menu_configure, inst); - e_gadcon_client_util_menu_items_append(inst->gcc, ma, mg, 0); + m = e_gadcon_client_util_menu_items_append(inst->gcc, m, 0); + e_menu_post_deactivate_callback_set(m, _temperature_face_cb_post_menu, inst); + inst->menu = m; e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon, &cx, &cy, NULL, NULL); - e_menu_activate_mouse(ma, + e_menu_activate_mouse(m, e_util_zone_current_get(e_manager_current_get()), cx + ev->output.x, cy + ev->output.y, 1, 1, E_MENU_POP_DIRECTION_AUTO, ev->timestamp);