gnome-main-menu r514 - trunk/libslab
- From: federico svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-main-menu r514 - trunk/libslab
- Date: Tue, 28 Oct 2008 01:26:12 +0000 (UTC)
Author: federico
Date: Tue Oct 28 01:26:11 2008
New Revision: 514
URL: http://svn.gnome.org/viewvc/gnome-main-menu?rev=514&view=rev
Log:
Don't leak menus attached to tiles
Signed-off-by: Federico Mena Quintero <federico novell com>
Modified:
trunk/libslab/ChangeLog
trunk/libslab/tile.c
Modified: trunk/libslab/tile.c
==============================================================================
--- trunk/libslab/tile.c (original)
+++ trunk/libslab/tile.c Tue Oct 28 01:26:11 2008
@@ -209,7 +209,7 @@
if (tile->uri)
g_free (tile->uri);
if (tile->context_menu)
- gtk_object_sink (GTK_OBJECT (tile->context_menu));
+ gtk_widget_destroy (GTK_WIDGET (tile->context_menu));
g_object_unref (priv->double_click_detector);
@@ -240,17 +240,34 @@
static void
tile_set_property (GObject * g_obj, guint prop_id, const GValue * value, GParamSpec * param_spec)
{
+ Tile *tile;
+ GtkMenu *menu;
+
if (!IS_TILE (g_obj))
return;
+ tile = TILE (g_obj);
+
switch (prop_id)
{
case PROP_TILE_URI:
- TILE (g_obj)->uri = g_strdup (g_value_get_string (value));
+ tile->uri = g_strdup (g_value_get_string (value));
break;
case PROP_TILE_CONTEXT_MENU:
- TILE (g_obj)->context_menu = g_value_get_object (value);
+ menu = g_value_get_object (value);
+
+ if (menu == tile->context_menu)
+ break;
+
+ if (tile->context_menu)
+ gtk_menu_detach (tile->context_menu);
+
+ tile->context_menu = menu;
+
+ if (tile->context_menu)
+ gtk_menu_attach_to_widget (tile->context_menu, GTK_WIDGET (tile), NULL);
+
break;
default:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]