diff options
Diffstat (limited to 'src/ui/menu.c')
-rw-r--r-- | src/ui/menu.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/ui/menu.c b/src/ui/menu.c index aeba64fa..90db5f1e 100644 --- a/src/ui/menu.c +++ b/src/ui/menu.c @@ -100,6 +100,21 @@ static MenuItem menuitems[] = { {META_MENU_OP_DELETE, MENU_ITEM_IMAGE, MARCO_STOCK_DELETE, FALSE, N_("_Close")} }; +static void +sn_menu_data_free (MenuData *menu_data, + GClosure *closure) +{ + g_free (menu_data->menu); + g_free (menu_data); +} + +static void +sn_menu_item_free (MenuItem *menu_item, + GClosure *closure) +{ + g_free (menu_item); +} + static void popup_position_func(GtkMenu* menu, gint* x, gint* y, gboolean* push_in, gpointer user_data) { GtkRequisition req; @@ -442,7 +457,7 @@ meta_window_menu_new (MetaFrames *frames, "activate", G_CALLBACK (activate_cb), md, - (GClosureNotify) g_free, 0); + (GClosureNotify) sn_menu_data_free, 0); gtk_menu_shell_append (GTK_MENU_SHELL (submenu), submi); @@ -469,7 +484,7 @@ meta_window_menu_new (MetaFrames *frames, "activate", G_CALLBACK (activate_cb), md, - (GClosureNotify) g_free, 0); + (GClosureNotify) sn_menu_item_free, 0); } if (mi) |