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
This commit is contained in:
Bjørn Lie 2023-05-07 10:44:03 +00:00 committed by Git OBS Bridge
parent 5fd79c518f
commit ad6fe6598a
3 changed files with 128 additions and 0 deletions

118
966a2350.patch Normal file
View File

@ -0,0 +1,118 @@
From 966a23503a2e8bbb948270e06f3eb13ca4c06632 Mon Sep 17 00:00:00 2001
From: Benjamin Otte <otte@redhat.com>
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

View File

@ -1,3 +1,11 @@
-------------------------------------------------------------------
Thu May 4 14:48:30 UTC 2023 - Bjørn Lie <bjorn.lie@gmail.com>
- 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 <badshah400@gmail.com>

View File

@ -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