[maemo-commits] [maemo-commits] r14666 - in projects/haf/trunk/hildon-desktop: . src

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Mon Oct 29 14:08:19 EET 2007
Author: lucasr
Date: 2007-10-29 14:08:15 +0200 (Mon, 29 Oct 2007)
New Revision: 14666

Modified:
   projects/haf/trunk/hildon-desktop/ChangeLog
   projects/haf/trunk/hildon-desktop/src/hd-switcher-menu.c
Log:
2007-10-29  Lucas Rocha  <lucas.rocha at nokia.com>

	* src/hd-switcher-menu.c (hd_switcher_menu_displat_state_cb,
	hd_switcher_menu_finalize): copy animation pixbuf when restoring
	blinking icon on switcher button to avoid it to be destroyed just
	before using it. Fixes: NB#72544.


Modified: projects/haf/trunk/hildon-desktop/ChangeLog
===================================================================
--- projects/haf/trunk/hildon-desktop/ChangeLog	2007-10-29 11:28:06 UTC (rev 14665)
+++ projects/haf/trunk/hildon-desktop/ChangeLog	2007-10-29 12:08:15 UTC (rev 14666)
@@ -1,5 +1,12 @@
 2007-10-29  Lucas Rocha  <lucas.rocha at nokia.com>
 
+	* src/hd-switcher-menu.c (hd_switcher_menu_displat_state_cb,
+	hd_switcher_menu_finalize): copy animation pixbuf when restoring
+	blinking icon on switcher button to avoid it to be destroyed just
+	before using it. Fixes: NB#72544.
+
+2007-10-29  Lucas Rocha  <lucas.rocha at nokia.com>
+
 	* src/hd-plugin-loader-factory.c
 	(hd_plugin_loader_factory_load_modules): g_strdup() the plugin loader
 	key to fix a crasher. Do not use G_MODULE_BIND_LOCAL flag when loading

Modified: projects/haf/trunk/hildon-desktop/src/hd-switcher-menu.c
===================================================================
--- projects/haf/trunk/hildon-desktop/src/hd-switcher-menu.c	2007-10-29 11:28:06 UTC (rev 14665)
+++ projects/haf/trunk/hildon-desktop/src/hd-switcher-menu.c	2007-10-29 12:08:15 UTC (rev 14666)
@@ -264,6 +264,8 @@
   switcher->priv->blinking_notification = -1;
   
   switcher->priv->system_inactivity = FALSE;
+
+  switcher->priv->animation_icon = NULL;
   
   switcher->hdwm = hd_wm_get_singleton ();
 
@@ -922,8 +924,9 @@
     hd_switcher_menu_refresh_application_items (switcher);
     hd_switcher_menu_refresh_notification_items (switcher);
   
-    if (!priv->system_inactivity && priv->animation_icon)
-      hd_switcher_menu_replace_blinking_icon (switcher, priv->animation_icon);
+    if (!priv->system_inactivity && GDK_IS_PIXBUF (priv->animation_icon))
+      hd_switcher_menu_replace_blinking_icon (switcher, 
+		                              gdk_pixbuf_copy (priv->animation_icon));
     else
       hd_switcher_menu_reset_main_icon (switcher, FALSE);
   }
@@ -1322,7 +1325,13 @@
     g_hash_table_destroy (switcher->priv->notification_groups);
     switcher->priv->notification_groups = NULL;
   }
-	  
+
+  if (switcher->priv->animation_icon != NULL)
+  {
+    g_object_unref (switcher->priv->animation_icon);
+    switcher->priv->animation_icon = NULL;
+  }
+  
   G_OBJECT_CLASS (hd_switcher_menu_parent_class)->finalize (object);
 }
 
@@ -1451,7 +1460,7 @@
 {
   g_return_if_fail (icon != NULL);
 	
-  if (switcher->priv->animation_icon)
+  if (switcher->priv->animation_icon != NULL)
     g_object_unref (switcher->priv->animation_icon);
   
   switcher->priv->animation_icon = g_object_ref (icon);


More information about the maemo-commits mailing list