From ad6fe6598ac2a7f07cc85cd2e16fa616d63c2c3efda43c0d3fe3bca1a45105c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Lie?= Date: Sun, 7 May 2023 10:44:03 +0000 Subject: [PATCH] Accepting request 1085252 from GNOME:Next OBS-URL: https://build.opensuse.org/request/show/1085252 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gtk4?expand=0&rev=134 --- 966a2350.patch | 118 +++++++++++++++++++++++++++++++++++++++++++++++++ gtk4.changes | 8 ++++ gtk4.spec | 2 + 3 files changed, 128 insertions(+) create mode 100644 966a2350.patch diff --git a/966a2350.patch b/966a2350.patch new file mode 100644 index 0000000..df1c3ea --- /dev/null +++ b/966a2350.patch @@ -0,0 +1,118 @@ +From 966a23503a2e8bbb948270e06f3eb13ca4c06632 Mon Sep 17 00:00:00 2001 +From: Benjamin Otte +Date: Tue, 2 May 2023 19:48:54 +0200 +Subject: [PATCH] css: Don't transition to currentColor + +Transition to the color that is in use instead. + +Fixes crashes because currentColor is not an RGBA color and +therefor could not be queried later. + +Fixes #5798 +--- + gtk/gtkcssfiltervalue.c | 16 ++++++++-------- + gtk/gtkcssshadowvalue.c | 4 ++-- + gtk/gtkcssshadowvalueprivate.h | 2 +- + 3 files changed, 11 insertions(+), 11 deletions(-) + +diff --git a/gtk/gtkcssfiltervalue.c b/gtk/gtkcssfiltervalue.c +index ed334979cb6..84f581121c5 100644 +--- a/gtk/gtkcssfiltervalue.c ++++ b/gtk/gtkcssfiltervalue.c +@@ -102,10 +102,10 @@ gtk_css_filter_clear (GtkCssFilter *filter) + } + + static void +-gtk_css_filter_init_identity (GtkCssFilter *filter, +- GtkCssFilterType type) ++gtk_css_filter_init_identity (GtkCssFilter *filter, ++ const GtkCssFilter *other) + { +- switch (type) ++ switch (other->type) + { + case GTK_CSS_FILTER_BRIGHTNESS: + filter->brightness.value = _gtk_css_number_value_new (1, GTK_CSS_NUMBER); +@@ -135,7 +135,7 @@ gtk_css_filter_init_identity (GtkCssFilter *filter, + filter->blur.value = _gtk_css_number_value_new (0, GTK_CSS_PX); + break; + case GTK_CSS_FILTER_DROP_SHADOW: +- filter->drop_shadow.value = gtk_css_shadow_value_new_filter (); ++ filter->drop_shadow.value = gtk_css_shadow_value_new_filter (other->drop_shadow.value); + break; + case GTK_CSS_FILTER_NONE: + default: +@@ -143,7 +143,7 @@ gtk_css_filter_init_identity (GtkCssFilter *filter, + break; + } + +- filter->type = type; ++ filter->type = other->type; + } + + #define R 0.2126 +@@ -466,7 +466,7 @@ gtk_css_value_filter_equal (const GtkCssValue *value1, + { + GtkCssFilter filter; + +- gtk_css_filter_init_identity (&filter, larger->filters[i].type); ++ gtk_css_filter_init_identity (&filter, &larger->filters[i]); + + if (!gtk_css_filter_equal (&larger->filters[i], &filter)) + { +@@ -590,7 +590,7 @@ gtk_css_value_filter_transition (GtkCssValue *start, + { + GtkCssFilter filter; + +- gtk_css_filter_init_identity (&filter, start->filters[i].type); ++ gtk_css_filter_init_identity (&filter, &start->filters[i]); + gtk_css_filter_transition (&result->filters[i], + &start->filters[i], + &filter, +@@ -602,7 +602,7 @@ gtk_css_value_filter_transition (GtkCssValue *start, + { + GtkCssFilter filter; + +- gtk_css_filter_init_identity (&filter, end->filters[i].type); ++ gtk_css_filter_init_identity (&filter, &end->filters[i]); + gtk_css_filter_transition (&result->filters[i], + &filter, + &end->filters[i], +diff --git a/gtk/gtkcssshadowvalue.c b/gtk/gtkcssshadowvalue.c +index 66029dbff44..fead476c00a 100644 +--- a/gtk/gtkcssshadowvalue.c ++++ b/gtk/gtkcssshadowvalue.c +@@ -331,7 +331,7 @@ gtk_css_shadow_value_new (ShadowValue *shadows, + } + + GtkCssValue * +-gtk_css_shadow_value_new_filter (void) ++gtk_css_shadow_value_new_filter (const GtkCssValue *other) + { + ShadowValue value; + +@@ -340,7 +340,7 @@ gtk_css_shadow_value_new_filter (void) + value.voffset = _gtk_css_number_value_new (0, GTK_CSS_NUMBER); + value.radius = _gtk_css_number_value_new (0, GTK_CSS_NUMBER); + value.spread = _gtk_css_number_value_new (0, GTK_CSS_NUMBER); +- value.color = _gtk_css_color_value_new_current_color (); ++ value.color = gtk_css_value_ref (other->shadows[0].color); + + return gtk_css_shadow_value_new (&value, 1, TRUE); + } +diff --git a/gtk/gtkcssshadowvalueprivate.h b/gtk/gtkcssshadowvalueprivate.h +index 21efac19080..a2cf97688b0 100644 +--- a/gtk/gtkcssshadowvalueprivate.h ++++ b/gtk/gtkcssshadowvalueprivate.h +@@ -35,7 +35,7 @@ + G_BEGIN_DECLS + + GtkCssValue * gtk_css_shadow_value_new_none (void); +-GtkCssValue * gtk_css_shadow_value_new_filter (void); ++GtkCssValue * gtk_css_shadow_value_new_filter (const GtkCssValue *other); + + GtkCssValue * gtk_css_shadow_value_parse (GtkCssParser *parser, + gboolean box_shadow_mode); +-- +GitLab + diff --git a/gtk4.changes b/gtk4.changes index 48ba525..7e2e49d 100644 --- a/gtk4.changes +++ b/gtk4.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Thu May 4 14:48:30 UTC 2023 - Bjørn Lie + +- Add 966a2350.patch: css: Don't transition to currentColor. + Transition to the color that is in use instead. Fixes crashes + because currentColor is not an RGBA color and therefor could not + be queried later (glgo#GNOME/gtk#5798). + ------------------------------------------------------------------- Wed May 3 05:58:06 UTC 2023 - Atri Bhattacharya diff --git a/gtk4.spec b/gtk4.spec index 00fa9fd..42ad138 100644 --- a/gtk4.spec +++ b/gtk4.spec @@ -48,6 +48,8 @@ Source99: gtk4-rpmlintrc Patch0: 0001-Revert-Meson-Simplify-pkgconfig-file-generator.patch # PATCH-FIX-UPSTREAM gtk4-correctly-refresh-after-delete.patch glgo#GNOME/nautilus#2941 badshah400@gmail.com -- Deleting files causes folders in the directory to disappear and reappear after a refresh Patch1: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/5873.patch#/gtk4-correctly-refresh-after-delete.patch +# PATCH-FIX-UPSTREAM 966a2350.patch glgo#GNOME/gtk#5798 -- css: Don't transition to currentColor +Patch2: https://gitlab.gnome.org/GNOME/gtk/-/commit/966a2350.patch BuildRequires: cups-devel >= 2.0 # We do not support building against cups 2.3 betas