[Xfce4-commits] <xfce4-panel:master> Keep reference on window to avoid crash (bug #7193).

Nick Schermer noreply at xfce.org
Sat Feb 19 17:42:01 CET 2011


Updating branch refs/heads/master
         to aa928ba50e9e7a7387b7bf14a4bfda3ce1735d58 (commit)
       from a0c69aa93bcaa82790a8aa3c1b6c7b9285a4fe08 (commit)

commit aa928ba50e9e7a7387b7bf14a4bfda3ce1735d58
Author: Nick Schermer <nick at xfce.org>
Date:   Sat Feb 19 17:39:57 2011 +0100

    Keep reference on window to avoid crash (bug #7193).

 plugins/tasklist/tasklist-widget.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/plugins/tasklist/tasklist-widget.c b/plugins/tasklist/tasklist-widget.c
index 13a47e4..3d8ac28 100644
--- a/plugins/tasklist/tasklist-widget.c
+++ b/plugins/tasklist/tasklist-widget.c
@@ -2614,6 +2614,8 @@ xfce_tasklist_button_enter_notify_event_disconnected (gpointer  data,
    * proxy dies */
   g_signal_handlers_disconnect_by_func (child->window,
       xfce_tasklist_button_geometry_changed, child);
+
+  g_object_unref (G_OBJECT (child->window));
 }
 
 
@@ -2631,6 +2633,7 @@ xfce_tasklist_button_proxy_menu_item (XfceTasklistChild *child,
   panel_return_val_if_fail (child->type == CHILD_TYPE_OVERFLOW_MENU
                             || child->type == CHILD_TYPE_GROUP_MENU, NULL);
   panel_return_val_if_fail (GTK_IS_LABEL (child->label), NULL);
+  panel_return_val_if_fail (WNCK_IS_WINDOW (child->window), NULL);
 
   mi = gtk_image_menu_item_new ();
   exo_binding_new (G_OBJECT (child->label), "label", G_OBJECT (mi), "label");
@@ -2652,6 +2655,7 @@ xfce_tasklist_button_proxy_menu_item (XfceTasklistChild *child,
 
   if (allow_wireframe)
     {
+      g_object_ref (G_OBJECT (child->window));
       g_signal_connect_data (G_OBJECT (mi), "enter-notify-event",
           G_CALLBACK (xfce_tasklist_button_enter_notify_event), child,
           xfce_tasklist_button_enter_notify_event_disconnected, 0);



More information about the Xfce4-commits mailing list