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