r42142 - in /desktop/unstable/libwnck3/debian: changelog patches/git_window_action_menu_dispose_events.patch patches/series

mpitt at users.alioth.debian.org mpitt at users.alioth.debian.org
Tue Aug 5 13:47:55 UTC 2014


Author: mpitt
Date: Tue Aug  5 13:47:55 2014
New Revision: 42142

URL: http://svn.debian.org/wsvn/pkg-gnome/?sc=1&rev=42142
Log:
Add debian/patches/git_window_action_menu_dispose_events.patch: Fix
objects to get finalized correctly, making sure the internal idle into
WnckActionMenu gets stopped. Patch taken from upstream git.
(LP: #1191853)

Added:
    desktop/unstable/libwnck3/debian/patches/git_window_action_menu_dispose_events.patch
Modified:
    desktop/unstable/libwnck3/debian/changelog
    desktop/unstable/libwnck3/debian/patches/series

Modified: desktop/unstable/libwnck3/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/libwnck3/debian/changelog?rev=42142&op=diff
==============================================================================
--- desktop/unstable/libwnck3/debian/changelog	[utf-8] (original)
+++ desktop/unstable/libwnck3/debian/changelog	[utf-8] Tue Aug  5 13:47:55 2014
@@ -2,6 +2,10 @@
 
   * Build using dh-autoreconf, for supporting newer architectures.
   * Enable Multi-Arch.
+  * Add debian/patches/git_window_action_menu_dispose_events.patch: Fix
+    objects to get finalized correctly, making sure the internal idle into
+    WnckActionMenu gets stopped. Patch taken from upstream git.
+    (LP: #1191853)
 
  -- Martin Pitt <mpitt at debian.org>  Tue, 05 Aug 2014 15:35:02 +0200
 

Added: desktop/unstable/libwnck3/debian/patches/git_window_action_menu_dispose_events.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/libwnck3/debian/patches/git_window_action_menu_dispose_events.patch?rev=42142&op=file
==============================================================================
--- desktop/unstable/libwnck3/debian/patches/git_window_action_menu_dispose_events.patch	(added)
+++ desktop/unstable/libwnck3/debian/patches/git_window_action_menu_dispose_events.patch	[utf-8] Tue Aug  5 13:47:55 2014
@@ -0,0 +1,106 @@
+From 53eef7f95bd2ac81b44cc1ce9f92f6dcc0f2b9f9 Mon Sep 17 00:00:00 2001
+From: Marco Trevisan (Treviño) <mail at 3v1n0.net>
+Date: Fri, 27 Sep 2013 17:34:26 +0000
+Subject: WindowActionMenu: unset window and stop async events on dispose
+
+Finalize function can be never called here, so it's better to do this
+when the widget gets destroyed.
+
+Bug-Ubuntu: https://launchpad.net/bugs/1191853
+
+---
+diff --git a/libwnck/window-action-menu.c b/libwnck/window-action-menu.c
+index 5ebf094..738effc 100644
+--- a/libwnck/window-action-menu.c
++++ b/libwnck/window-action-menu.c
+@@ -102,10 +102,8 @@ enum {
+ G_DEFINE_TYPE (WnckActionMenu, wnck_action_menu, GTK_TYPE_MENU);
+ #define WNCK_ACTION_MENU_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WNCK_TYPE_ACTION_MENU, WnckActionMenuPrivate))
+ 
+-static void wnck_action_menu_finalize (GObject *object);
++static void wnck_action_menu_dispose (GObject *object);
+ 
+-static void object_weak_notify (gpointer data,
+-                                GObject *obj);
+ static void window_weak_notify (gpointer data,
+                                 GObject *window);
+ 
+@@ -116,23 +114,10 @@ static void
+ window_weak_notify (gpointer data,
+                     GObject *window)
+ {
+-  g_object_weak_unref (G_OBJECT (data),
+-                       object_weak_notify,
+-                       window);
+-
++  WNCK_ACTION_MENU(data)->priv->window = NULL;
+   gtk_widget_destroy (GTK_WIDGET (data));
+ }
+ 
+-
+-static void
+-object_weak_notify (gpointer data,
+-                    GObject *obj)
+-{
+-  g_object_weak_unref (G_OBJECT (data),
+-                       window_weak_notify,
+-                       obj);
+-}
+-
+ static WnckActionMenu*
+ get_action_menu (GtkWidget *widget)
+ {
+@@ -1024,7 +1009,6 @@ wnck_action_menu_constructor (GType                  type,
+     }
+ 
+   g_object_weak_ref (G_OBJECT (priv->window), window_weak_notify, menu);
+-  g_object_weak_ref (G_OBJECT (menu), object_weak_notify, priv->window);
+ 
+   priv->minimize_item = make_menu_item (MINIMIZE);
+ 
+@@ -1175,7 +1159,7 @@ wnck_action_menu_class_init (WnckActionMenuClass *klass)
+   object_class->constructor = wnck_action_menu_constructor;
+   object_class->get_property = wnck_action_menu_get_property;
+   object_class->set_property = wnck_action_menu_set_property;
+-  object_class->finalize = wnck_action_menu_finalize;
++  object_class->dispose = wnck_action_menu_dispose;
+ 
+   g_object_class_install_property (object_class,
+                                    PROP_WINDOW,
+@@ -1186,17 +1170,30 @@ wnck_action_menu_class_init (WnckActionMenuClass *klass)
+ }
+ 
+ static void
+-wnck_action_menu_finalize (GObject *object)
++wnck_action_menu_dispose (GObject *object)
+ {
+   WnckActionMenu *menu;
+ 
+   menu = WNCK_ACTION_MENU (object);
+ 
+   if (menu->priv->idle_handler)
+-    g_source_remove (menu->priv->idle_handler);
+-  menu->priv->idle_handler = 0;
++    {
++      g_source_remove (menu->priv->idle_handler);
++      menu->priv->idle_handler = 0;
++    }
++
++  if (WNCK_IS_WINDOW (menu->priv->window))
++    {
++      g_object_weak_unref (G_OBJECT (menu->priv->window), window_weak_notify, menu);
++      g_signal_handlers_disconnect_by_data (menu->priv->window, menu);
++
++      WnckScreen *screen = wnck_window_get_screen (menu->priv->window);
++      g_signal_handlers_disconnect_by_data (screen, menu);
++
++      menu->priv->window = NULL;
++    }
+ 
+-  G_OBJECT_CLASS (wnck_action_menu_parent_class)->finalize (object);
++  G_OBJECT_CLASS (wnck_action_menu_parent_class)->dispose (object);
+ }
+ 
+ /**
+--
+cgit v0.9.2

Modified: desktop/unstable/libwnck3/debian/patches/series
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/libwnck3/debian/patches/series?rev=42142&op=diff
==============================================================================
--- desktop/unstable/libwnck3/debian/patches/series	[utf-8] (original)
+++ desktop/unstable/libwnck3/debian/patches/series	[utf-8] Tue Aug  5 13:47:55 2014
@@ -1,2 +1,3 @@
+git_window_action_menu_dispose_events.patch
 02_moveresize_static_gravity.patch
 99_ltmain_as-needed.patch




More information about the pkg-gnome-commits mailing list