diff --git a/gnome-shell-leak.patch b/gnome-shell-leak.patch deleted file mode 100644 index 33dfa8a..0000000 --- a/gnome-shell-leak.patch +++ /dev/null @@ -1,173 +0,0 @@ -commit ab0460ad5926aef2cb802f201069109ce9fc2dd8 -Author: Colin Walters -Date: Thu Oct 8 14:53:46 2009 -0400 - - Use clutter_actor_destroy in dispose, add _dispose where needed - - ClutterGroup calls _destroy, but most of St was just calling _unparent. - This caused problems because the DESTROY signal was not emitted - for child elements after destroying a toplevel. Also, in a GC'd - binding it would cause unpredictable lifetime of children. - - Some St widgets simply didn't have _dispose at all; implement it. - - Note because of the usage of the background_image in StButton, - we can't cleanly destroy it inside the StWidget. - - https://bugzilla.gnome.org/show_bug.cgi?id=597845 - -diff --git a/src/st/st-bin.c b/src/st/st-bin.c -index ed00e63..4c862b6 100644 ---- a/src/st/st-bin.c -+++ b/src/st/st-bin.c -@@ -352,10 +352,8 @@ st_bin_dispose (GObject *gobject) - StBinPrivate *priv = ST_BIN (gobject)->priv; - - if (priv->child) -- { -- clutter_actor_unparent (priv->child); -- priv->child = NULL; -- } -+ clutter_actor_destroy (priv->child); -+ g_assert (priv->child == NULL); - - G_OBJECT_CLASS (st_bin_parent_class)->dispose (gobject); - } -diff --git a/src/st/st-box-layout.c b/src/st/st-box-layout.c -index b87b072..e81f64c 100644 ---- a/src/st/st-box-layout.c -+++ b/src/st/st-box-layout.c -@@ -403,11 +403,7 @@ st_box_layout_dispose (GObject *object) - StBoxLayoutPrivate *priv = ST_BOX_LAYOUT (object)->priv; - - while (priv->children) -- { -- clutter_actor_unparent (CLUTTER_ACTOR (priv->children->data)); -- -- priv->children = g_list_delete_link (priv->children, priv->children); -- } -+ clutter_actor_destroy (priv->children->data); - - if (priv->hadjustment) - { -diff --git a/src/st/st-entry.c b/src/st/st-entry.c -index 450f4cc..ac79f4e 100644 ---- a/src/st/st-entry.c -+++ b/src/st/st-entry.c -@@ -162,7 +162,7 @@ st_entry_dispose (GObject *object) - - if (priv->entry) - { -- clutter_actor_unparent (priv->entry); -+ clutter_actor_destroy (priv->entry); - priv->entry = NULL; - } - } -diff --git a/src/st/st-label.c b/src/st/st-label.c -index 88fa868..db9b0c1 100644 ---- a/src/st/st-label.c -+++ b/src/st/st-label.c -@@ -184,6 +184,20 @@ st_label_allocate (ClutterActor *actor, - } - - static void -+st_label_dispose (GObject *actor) -+{ -+ StLabelPrivate *priv = ST_LABEL (actor)->priv; -+ -+ if (priv->label) -+ { -+ clutter_actor_destroy (priv->label); -+ priv->label = NULL; -+ } -+ -+ G_OBJECT_CLASS (st_label_parent_class)->dispose (G_OBJECT (actor)); -+} -+ -+static void - st_label_paint (ClutterActor *actor) - { - StLabelPrivate *priv = ST_LABEL (actor)->priv; -@@ -227,6 +241,7 @@ st_label_class_init (StLabelClass *klass) - - gobject_class->set_property = st_label_set_property; - gobject_class->get_property = st_label_get_property; -+ gobject_class->dispose = st_label_dispose; - - actor_class->paint = st_label_paint; - actor_class->allocate = st_label_allocate; -diff --git a/src/st/st-scroll-view.c b/src/st/st-scroll-view.c -index 2dd6f6e..cb555eb 100644 ---- a/src/st/st-scroll-view.c -+++ b/src/st/st-scroll-view.c -@@ -129,13 +129,13 @@ st_scroll_view_dispose (GObject *object) - - if (priv->vscroll) - { -- clutter_actor_unparent (priv->vscroll); -+ clutter_actor_destroy (priv->vscroll); - priv->vscroll = NULL; - } - - if (priv->hscroll) - { -- clutter_actor_unparent (priv->hscroll); -+ clutter_actor_destroy (priv->hscroll); - priv->hscroll = NULL; - } - -diff --git a/src/st/st-table.c b/src/st/st-table.c -index 9ef2cf1..e844ff6 100644 ---- a/src/st/st-table.c -+++ b/src/st/st-table.c -@@ -271,15 +271,9 @@ static void - st_table_dispose (GObject *gobject) - { - StTablePrivate *priv = ST_TABLE (gobject)->priv; -- GSList *l, *next; - -- for (l = priv->children; l;) -- { -- next = l->next; -- clutter_container_remove_actor ((ClutterContainer *) gobject, -- CLUTTER_ACTOR (l->data)); -- l = next; -- } -+ while (priv->children) -+ clutter_actor_destroy (priv->children->data); - - G_OBJECT_CLASS (st_table_parent_class)->dispose (gobject); - } -diff --git a/src/st/st-tooltip.c b/src/st/st-tooltip.c -index 9ed299e..5232dbc 100644 ---- a/src/st/st-tooltip.c -+++ b/src/st/st-tooltip.c -@@ -356,6 +356,20 @@ st_tooltip_unmap (ClutterActor *self) - } - - static void -+st_tooltip_dispose (GObject *self) -+{ -+ StTooltipPrivate *priv = ST_TOOLTIP (self)->priv; -+ -+ if (priv->label) -+ { -+ clutter_actor_destroy (priv->label); -+ priv->label = NULL; -+ } -+ -+ G_OBJECT_CLASS (st_tooltip_parent_class)->dispose (self); -+} -+ -+static void - st_tooltip_class_init (StTooltipClass *klass) - { - GObjectClass *gobject_class = G_OBJECT_CLASS (klass); -@@ -367,6 +381,7 @@ st_tooltip_class_init (StTooltipClass *klass) - - gobject_class->set_property = st_tooltip_set_property; - gobject_class->get_property = st_tooltip_get_property; -+ gobject_class->dispose = st_tooltip_dispose; - - actor_class->get_preferred_width = st_tooltip_get_preferred_width; - actor_class->get_preferred_height = st_tooltip_get_preferred_height; diff --git a/gnome-shell.changes b/gnome-shell.changes index 1974a17..8771147 100644 --- a/gnome-shell.changes +++ b/gnome-shell.changes @@ -1,9 +1,3 @@ -------------------------------------------------------------------- -Sun Oct 11 15:52:05 EDT 2009 - vuntz@opensuse.org - -- Add gnome-shell-leak.patch from git to fix some slow down after - using alt-tab a lot. - ------------------------------------------------------------------- Thu Oct 8 18:47:29 CEST 2009 - vuntz@opensuse.org diff --git a/gnome-shell.spec b/gnome-shell.spec index 3b8a1a8..0b345ff 100644 --- a/gnome-shell.spec +++ b/gnome-shell.spec @@ -44,8 +44,6 @@ Source: %{name}-%{version}.tar.bz2 # Note: this also explains the Requires on gnome-session below. Source1: gnome-shell-session Source2: gnome3.desktop -# PATCH-FIX-UPSTREAM gnome-shell-leak.patch vuntz@opensuse.org -- Fix from upstream -Patch0: gnome-shell-leak.patch # PATCH-FIX-OPENSUSE gnome-shell-libmozjs.patch vuntz@novell.com -- LD_LIBRARY_PATH neeeds to be set on 11.1 Patch99: gnome-shell-libmozjs.patch Requires: %{name}-lang = %{version} @@ -63,7 +61,6 @@ documents, and organizing open windows in GNOME. %lang_package %prep %setup -q -%patch0 -p1 %if %suse_version <= 1110 %patch99 -p1 %endif