big roundup commit fixing leaky submenus

SVN revision: 75973
This commit is contained in:
Mike Blumenkrantz 2012-09-03 08:30:39 +00:00
parent 292c3dc5d6
commit 4c0fa2d381
11 changed files with 24 additions and 2 deletions

View File

@ -1560,6 +1560,7 @@ e_gadcon_client_add_location_menu(E_Gadcon_Client *gcc, E_Menu *menu)
e_menu_item_label_set(mi, _("Move to"));
e_util_menu_item_theme_icon_set(mi, "preferences-look");
e_menu_item_submenu_set(mi, mn);
e_object_unref(E_OBJECT(mn));
e_menu_pre_activate_callback_set(mn, _e_gadcon_gadget_move_to_pre_cb, gcc);
}
}
@ -1658,6 +1659,7 @@ e_gadcon_client_util_menu_items_append(E_Gadcon_Client *gcc, E_Menu *menu_gadget
e_menu_item_label_set(mi, _("Look"));
e_util_menu_item_theme_icon_set(mi, "preferences-look");
e_menu_item_submenu_set(mi, mo);
e_object_unref(E_OBJECT(mo));
}
mi = e_menu_item_new(menu_gadget);
@ -1683,6 +1685,7 @@ e_gadcon_client_util_menu_items_append(E_Gadcon_Client *gcc, E_Menu *menu_gadget
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);
e_object_unref(E_OBJECT(menu_gadget));
}
if (gcc->gadcon->menu_attach.func)

View File

@ -361,6 +361,7 @@ _e_border_menu_cb_maximize_pre(void *data, E_Menu *m __UNUSED__, E_Menu_Item *mi
subm = e_menu_new();
e_object_data_set(E_OBJECT(subm), bd);
e_menu_item_submenu_set(mi, subm);
e_object_unref(E_OBJECT(subm));
if ((!bd->lock_user_fullscreen) && (!bd->shaded))
{
@ -518,6 +519,7 @@ _e_border_menu_cb_application_pre(void *data, E_Menu *m __UNUSED__, E_Menu_Item
subm = e_menu_new();
e_object_data_set(E_OBJECT(subm), bd);
e_menu_item_submenu_set(mi, subm);
e_object_unref(E_OBJECT(subm));
if (bd->desktop)
{
@ -569,6 +571,7 @@ _e_border_menu_cb_window_pre(void *data, E_Menu *m __UNUSED__, E_Menu_Item *mi)
subm = e_menu_new();
e_object_data_set(E_OBJECT(subm), bd);
e_menu_item_submenu_set(mi, subm);
e_object_unref(E_OBJECT(subm));
if ((bd->client.netwm.type == ECORE_X_WINDOW_TYPE_NORMAL) ||
(bd->client.netwm.type == ECORE_X_WINDOW_TYPE_UNKNOWN))
@ -870,6 +873,7 @@ _e_border_menu_cb_sendto_pre(void *data, E_Menu *m __UNUSED__, E_Menu_Item *mi)
subm = e_menu_new();
e_object_data_set(E_OBJECT(subm), bd);
e_menu_item_submenu_set(mi, subm);
e_object_unref(E_OBJECT(subm));
EINA_LIST_FOREACH(bd->zone->container->zones, l, zone)
{
@ -948,6 +952,7 @@ _e_border_menu_cb_stacking_pre(void *data, E_Menu *m __UNUSED__, E_Menu_Item *mi
subm = e_menu_new();
e_object_data_set(E_OBJECT(subm), bd);
e_menu_item_submenu_set(mi, subm);
e_object_unref(E_OBJECT(subm));
/* Only allow to change layer for windows in "normal" layers */
e_menu_category_set(subm, "border/stacking");
@ -1116,6 +1121,7 @@ _e_border_menu_cb_border_pre(void *data, E_Menu *m __UNUSED__, E_Menu_Item *mi)
subm = e_menu_new();
e_object_data_set(E_OBJECT(subm), bd);
e_menu_item_submenu_set(mi, subm);
e_object_unref(E_OBJECT(subm));
if (e_configure_registry_exists("internal/borders_border"))
{
@ -1215,6 +1221,7 @@ _e_border_menu_cb_skip_pre(void *data, E_Menu *m __UNUSED__, E_Menu_Item *mi)
subm = e_menu_new();
e_object_data_set(E_OBJECT(subm), bd);
e_menu_item_submenu_set(mi, subm);
e_object_unref(E_OBJECT(subm));
submi = e_menu_item_new(subm);
e_menu_item_label_set(submi, _("Window List"));
@ -1314,6 +1321,7 @@ _e_border_menu_cb_ibar_add_pre(void *data, E_Menu *m __UNUSED__, E_Menu_Item *mi
}
e_object_data_set(E_OBJECT(sm), bd);
e_menu_item_submenu_set(mi, sm);
e_object_unref(E_OBJECT(sm));
}
static void

View File

@ -1425,6 +1425,7 @@ _e_shelf_menu_append(E_Shelf *es, E_Menu *mn)
e_object_free_attach_func_set(E_OBJECT(mi), _e_shelf_menu_item_free);
e_object_data_set(E_OBJECT(mi), es);
e_menu_item_submenu_set(mi, subm);
e_object_unref(E_OBJECT(subm));
mi = e_menu_item_new(mn);
e_menu_item_separator_set(mi, 1);

View File

@ -367,6 +367,7 @@ _e_toolbar_menu_append(E_Toolbar *tbar, E_Menu *mn)
e_util_menu_item_theme_icon_set(mi, "preferences-toolbar");
e_menu_pre_activate_callback_set(subm, _e_toolbar_menu_cb_pre, tbar);
e_menu_item_submenu_set(mi, subm);
e_object_unref(E_OBJECT(subm));
}
static void

View File

@ -231,6 +231,7 @@ _config_all_pre_activate_cb(void *data __UNUSED__, E_Menu *m)
e_menu_item_callback_set(mi, _config_item_activate_cb, ecat);
sub = e_menu_new();
e_menu_item_submenu_set(mi, sub);
e_object_unref(E_OBJECT(sub));
e_menu_pre_activate_callback_set(sub, _config_pre_activate_cb, ecat);
}
}
@ -250,6 +251,7 @@ e_mod_config_menu_add(void *data __UNUSED__, E_Menu *m)
mi = e_menu_item_new(m);
e_menu_item_label_set(mi, _("All"));
e_menu_item_submenu_set(mi, sub);
e_object_unref(E_OBJECT(sub));
}
/* module setup */
@ -455,6 +457,7 @@ _e_mod_menu_add(void *data __UNUSED__, E_Menu *m)
e_menu_item_label_set(mi, _("Modes"));
e_util_menu_item_theme_icon_set(mi, "preferences-modes");
e_menu_item_submenu_set(mi, _e_mod_submenu_modes_get());
e_object_unref(E_OBJECT(mi->submenu));
}
static void

View File

@ -512,6 +512,7 @@ _e_mod_menu_populate(void *d, E_Menu *m __UNUSED__, E_Menu_Item *mi)
e_object_data_set(E_OBJECT(subm), d);
e_object_free_attach_func_set(E_OBJECT(subm), _e_mod_menu_cleanup_cb);
e_menu_item_submenu_set(mi, subm);
e_object_unref(E_OBJECT(subm));
e_menu_freeze(subm);
}
dev = d;

View File

@ -894,7 +894,7 @@ _attach_menu(void *data __UNUSED__, E_Gadcon_Client *gcc, E_Menu *menu)
e_menu_item_label_set(mi, _("Appearance"));
e_util_menu_item_theme_icon_set(mi, "preferences-look");
e_menu_item_submenu_set(mi, mn);
e_object_del(E_OBJECT(mn));
e_object_unref(E_OBJECT(mn));
/* bg / ontop */
mn = e_menu_new();
@ -922,7 +922,7 @@ _attach_menu(void *data __UNUSED__, E_Gadcon_Client *gcc, E_Menu *menu)
e_menu_item_label_set(mi, _("Behavior"));
e_util_menu_item_theme_icon_set(mi, "preferences-look");
e_menu_item_submenu_set(mi, mn);
e_object_del(E_OBJECT(mn));
e_object_unref(E_OBJECT(mn));
mi = e_menu_item_new(menu);
e_menu_item_separator_set(mi, 1);

View File

@ -879,6 +879,8 @@ _ibar_cb_icon_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUS
e_util_icon_size_normalize(24 * e_scale),
mi);
e_menu_item_submenu_set(mi, mo);
e_object_unref(E_OBJECT(mo));
e_gadcon_client_menu_set(ic->ibar->inst->gcc, m);
e_gadcon_canvas_zone_geometry_get(ic->ibar->inst->gcc->gadcon,
&cx, &cy, NULL, NULL);

View File

@ -476,6 +476,7 @@ _e_mod_ind_win_cb_menu_append(Ind_Win *iwin, E_Menu *mn)
e_menu_item_icon_edje_set(mi, buff, "icon");
e_menu_pre_activate_callback_set(subm, _e_mod_ind_win_cb_menu_pre, iwin);
e_menu_item_submenu_set(mi, subm);
e_object_unref(E_OBJECT(subm));
}
static void

View File

@ -131,6 +131,7 @@ _e_mod_menu_add(void *data __UNUSED__, E_Menu *m)
e_menu_item_callback_set(mi, _e_mod_syscon_cb, NULL);
sub = e_menu_new();
e_menu_item_submenu_set(mi, sub);
e_object_unref(E_OBJECT(sub));
e_menu_pre_activate_callback_set(sub, _e_mod_menu_generate, NULL);
}

View File

@ -708,6 +708,7 @@ _tasks_cb_item_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNU
mi = e_menu_item_new(item->border->border_menu);
e_menu_item_label_set(mi, _("Tasks"));
e_menu_item_submenu_set(mi, m);
e_object_unref(E_OBJECT(m));
e_util_menu_item_theme_icon_set(mi, "preferences-system");
e_gadcon_client_menu_set(item->tasks->gcc, item->border->border_menu);