diff --git a/debian/changelog b/debian/changelog index 556ee88dff..bcff5219d3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,10 +1,9 @@ -gtk+3.0 (3.18.1-2) UNRELEASED; urgency=medium +gtk+3.0 (3.18.1-2) unstable; urgency=medium - * Add d/p/0001-Revert-stylecontext-Clear-style-property-more-freque.patch - - temporarily revert commit causing regression while waiting for - upstream to comment on proper solution. (Closes: #800911) + * Add debian/patches/git_stylecontext-make-sure-valid.patch + - patch from upstream git to fix crash with some themes (Closes: #800911) - -- Andreas Henriksson Sat, 10 Oct 2015 18:10:30 +0200 + -- Andreas Henriksson Sun, 11 Oct 2015 01:21:46 +0200 gtk+3.0 (3.18.1-1) unstable; urgency=medium diff --git a/debian/patches/0001-Revert-stylecontext-Clear-style-property-more-freque.patch b/debian/patches/0001-Revert-stylecontext-Clear-style-property-more-freque.patch deleted file mode 100644 index 7759371324..0000000000 --- a/debian/patches/0001-Revert-stylecontext-Clear-style-property-more-freque.patch +++ /dev/null @@ -1,90 +0,0 @@ -From fb803ef386d1fe0da96eb57b5ce19ca90a3d360d Mon Sep 17 00:00:00 2001 -From: Andreas Henriksson -Date: Sat, 10 Oct 2015 17:29:44 +0200 -Subject: [PATCH] Revert "stylecontext: Clear style property more frequently" - -This reverts commit 3e5280ae4dfd1950dbd56a781dcdcf34a26d4294. - -https://bugzilla.gnome.org/show_bug.cgi?id=756338 -https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=800911 - ---- - gtk/gtkcsswidgetnode.c | 19 ------------------- - gtk/gtkstylecontext.c | 4 +++- - gtk/gtkstylecontextprivate.h | 1 - - 3 files changed, 3 insertions(+), 21 deletions(-) - -diff --git a/gtk/gtkcsswidgetnode.c b/gtk/gtkcsswidgetnode.c -index 5e93101..fbd9fbb 100644 ---- a/gtk/gtkcsswidgetnode.c -+++ b/gtk/gtkcsswidgetnode.c -@@ -74,24 +74,6 @@ gtk_css_widget_node_queue_callback (GtkWidget *widget, - return G_SOURCE_CONTINUE; - } - --static GtkCssStyle * --gtk_css_widget_node_update_style (GtkCssNode *cssnode, -- GtkCssChange change, -- gint64 timestamp, -- GtkCssStyle *style) --{ -- GtkCssWidgetNode *widget_node = GTK_CSS_WIDGET_NODE (cssnode); -- -- if (widget_node->widget != NULL) -- { -- GtkStyleContext *context = _gtk_widget_peek_style_context (widget_node->widget); -- if (context) -- gtk_style_context_clear_property_cache (context); -- } -- -- return GTK_CSS_NODE_CLASS (gtk_css_widget_node_parent_class)->update_style (cssnode, change, timestamp, style); --} -- - static void - gtk_css_widget_node_queue_validate (GtkCssNode *node) - { -@@ -271,7 +253,6 @@ gtk_css_widget_node_class_init (GtkCssWidgetNodeClass *klass) - GObjectClass *object_class = G_OBJECT_CLASS (klass); - - object_class->finalize = gtk_css_widget_node_finalize; -- node_class->update_style = gtk_css_widget_node_update_style; - node_class->validate = gtk_css_widget_node_validate; - node_class->queue_validate = gtk_css_widget_node_queue_validate; - node_class->dequeue_validate = gtk_css_widget_node_dequeue_validate; -diff --git a/gtk/gtkstylecontext.c b/gtk/gtkstylecontext.c -index 9a5587d..c658cff 100644 ---- a/gtk/gtkstylecontext.c -+++ b/gtk/gtkstylecontext.c -@@ -257,7 +257,7 @@ gtk_style_context_class_init (GtkStyleContextClass *klass) - g_object_class_install_properties (object_class, LAST_PROP, properties); - } - --void -+static void - gtk_style_context_clear_property_cache (GtkStyleContext *context) - { - GtkStyleContextPrivate *priv = context->priv; -@@ -2422,6 +2422,8 @@ gtk_style_context_validate (GtkStyleContext *context, - { - if (!_gtk_bitmask_is_empty (changes)) - gtk_style_context_do_invalidate (context, changes); -+ -+ gtk_style_context_clear_property_cache (context); - } - - /** -diff --git a/gtk/gtkstylecontextprivate.h b/gtk/gtkstylecontextprivate.h -index 4ba27fe..c1faaba 100644 ---- a/gtk/gtkstylecontextprivate.h -+++ b/gtk/gtkstylecontextprivate.h -@@ -47,7 +47,6 @@ const GValue * _gtk_style_context_peek_style_property (GtkStyleContext *c - GParamSpec *pspec); - void gtk_style_context_validate (GtkStyleContext *context, - const GtkBitmask*changes); --void gtk_style_context_clear_property_cache (GtkStyleContext *context); - gboolean _gtk_style_context_check_region_name (const gchar *str); - - gboolean _gtk_style_context_resolve_color (GtkStyleContext *context, --- -2.6.1 - diff --git a/debian/patches/git_stylecontext-make-sure-valid.patch b/debian/patches/git_stylecontext-make-sure-valid.patch new file mode 100644 index 0000000000..b9b8de6977 --- /dev/null +++ b/debian/patches/git_stylecontext-make-sure-valid.patch @@ -0,0 +1,31 @@ +From bddc524cd84b76d1c25c7700eca9d3a25db30cf6 Mon Sep 17 00:00:00 2001 +From: Benjamin Otte +Date: Sat, 10 Oct 2015 23:21:45 +0200 +Subject: stylecontext: Make sure style is valid when looking up style + properties + +Otherwise, the validation may happen vey automatically some time during +the style property and that will most likely cause a crash. + +https://bugzilla.gnome.org/show_bug.cgi?id=756338 +--- + gtk/gtkstylecontext.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/gtk/gtkstylecontext.c b/gtk/gtkstylecontext.c +index 0217d55..5d059a0 100644 +--- a/gtk/gtkstylecontext.c ++++ b/gtk/gtkstylecontext.c +@@ -1557,6 +1557,9 @@ _gtk_style_context_peek_style_property (GtkStyleContext *context, + + priv = context->priv; + ++ /* ensure the style cache is valid by forcing a validation */ ++ gtk_style_context_lookup_style (context); ++ + key.widget_type = widget_type; + key.pspec = pspec; + +-- +cgit v0.11.2 + diff --git a/debian/patches/series b/debian/patches/series index 09376ce4fb..48f46cc60c 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -7,4 +7,4 @@ 060_ignore-random-icons.patch 071_fix-installation-of-HTML-images.patch reftest-known-fail.patch -0001-Revert-stylecontext-Clear-style-property-more-freque.patch +git_stylecontext-make-sure-valid.patch