From 2c115a1b5d93dcc3bcf4930ac76dae2833b1e56b Mon Sep 17 00:00:00 2001
From: Victor Kareh <vkareh@redhat.com>
Date: Tue, 21 May 2019 15:09:36 -0400
Subject: theme: Make meta_frame_draw_theme take a GtkStyleContext instead of a
 widget

The style context of the widget is rarely what we want. We won't
fix this to be a MetaFrames style context yet; this just changes
the internal API.

https://bugzilla.gnome.org/show_bug.cgi?id=690317

upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/76aa0704
---
 src/ui/frames.c         |  8 +++++---
 src/ui/preview-widget.c |  2 +-
 src/ui/theme-viewer.c   |  2 +-
 src/ui/theme.c          | 50 +++++++++++++------------------------------------
 src/ui/theme.h          | 15 +--------------
 5 files changed, 21 insertions(+), 56 deletions(-)

(limited to 'src')

diff --git a/src/ui/frames.c b/src/ui/frames.c
index 6ce7e5c5..bab2f6d0 100644
--- a/src/ui/frames.c
+++ b/src/ui/frames.c
@@ -2544,17 +2544,19 @@ meta_frames_paint_to_drawable (MetaFrames   *frames,
   meta_prefs_get_button_layout (&button_layout);
 
   scale = gdk_window_get_scale_factor (frame->window);
-  meta_theme_draw_frame_with_style (meta_theme_get_current (),
+  meta_theme_draw_frame (meta_theme_get_current (),
                                     frame->style,
                                     cr,
                                     type,
                                     flags,
-                                    w / scale, h / scale,
+                                    w / scale,
+                                    h / scale,
                                     frame->layout,
                                     frame->text_height,
                                     &button_layout,
                                     button_states,
-                                    mini_icon, icon);
+                                    mini_icon,
+                                    icon);
 }
 
 static gboolean
diff --git a/src/ui/preview-widget.c b/src/ui/preview-widget.c
index e5573c6e..d8b8c4bd 100644
--- a/src/ui/preview-widget.c
+++ b/src/ui/preview-widget.c
@@ -224,7 +224,7 @@ meta_preview_draw (GtkWidget *widget,
       border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
 
       meta_theme_draw_frame (preview->theme,
-                             widget,
+                             gtk_widget_get_style_context (widget),
                              cr,
                              preview->type,
                              preview->flags,
diff --git a/src/ui/theme-viewer.c b/src/ui/theme-viewer.c
index f88df0b0..53273c8d 100644
--- a/src/ui/theme-viewer.c
+++ b/src/ui/theme-viewer.c
@@ -1066,7 +1066,7 @@ run_theme_benchmark (void)
       cr = cairo_create (pixmap);
 
       meta_theme_draw_frame (global_theme,
-                             widget,
+                             gtk_widget_get_style_context (widget),
                              cr,
                              META_FRAME_TYPE_NORMAL,
                              get_flags (widget),
diff --git a/src/ui/theme.c b/src/ui/theme.c
index d673134c..2a3dd038 100644
--- a/src/ui/theme.c
+++ b/src/ui/theme.c
@@ -5527,19 +5527,19 @@ meta_theme_get_title_scale (MetaTheme     *theme,
 }
 
 void
-meta_theme_draw_frame_with_style (MetaTheme              *theme,
-                                  GtkStyleContext        *style_gtk,
-                                  cairo_t                *cr,
-                                  MetaFrameType           type,
-                                  MetaFrameFlags          flags,
-                                  int                     client_width,
-                                  int                     client_height,
-                                  PangoLayout            *title_layout,
-                                  int                     text_height,
-                                  const MetaButtonLayout *button_layout,
-                                  MetaButtonState         button_states[META_BUTTON_TYPE_LAST],
-                                  GdkPixbuf              *mini_icon,
-                                  GdkPixbuf              *icon)
+meta_theme_draw_frame (MetaTheme              *theme,
+                       GtkStyleContext        *style_gtk,
+                       cairo_t                *cr,
+                       MetaFrameType           type,
+                       MetaFrameFlags          flags,
+                       int                     client_width,
+                       int                     client_height,
+                       PangoLayout            *title_layout,
+                       int                     text_height,
+                       const MetaButtonLayout *button_layout,
+                       MetaButtonState         button_states[META_BUTTON_TYPE_LAST],
+                       GdkPixbuf              *mini_icon,
+                       GdkPixbuf              *icon)
 {
   MetaFrameGeometry fgeom;
   MetaFrameStyle *style;
@@ -5571,30 +5571,6 @@ meta_theme_draw_frame_with_style (MetaTheme              *theme,
                                     mini_icon, icon);
 }
 
-void
-meta_theme_draw_frame (MetaTheme              *theme,
-                       GtkWidget              *widget,
-                       cairo_t                *cr,
-                       MetaFrameType           type,
-                       MetaFrameFlags          flags,
-                       int                     client_width,
-                       int                     client_height,
-                       PangoLayout            *title_layout,
-                       int                     text_height,
-                       const MetaButtonLayout *button_layout,
-                       MetaButtonState         button_states[META_BUTTON_TYPE_LAST],
-                       GdkPixbuf              *mini_icon,
-                       GdkPixbuf              *icon)
-{
-  meta_theme_draw_frame_with_style (theme,
-                                    gtk_widget_get_style_context (widget),
-                                    cr,
-                                    type, flags, client_width, client_height,
-                                    title_layout, text_height,
-                                    button_layout, button_states,
-                                    mini_icon, icon);
-}
-
 void
 meta_theme_draw_frame_by_name (MetaTheme              *theme,
                                GtkWidget              *widget,
diff --git a/src/ui/theme.h b/src/ui/theme.h
index 2e4a425c..b341418b 100644
--- a/src/ui/theme.h
+++ b/src/ui/theme.h
@@ -1032,7 +1032,7 @@ double meta_theme_get_title_scale (MetaTheme     *theme,
                                    MetaFrameFlags flags);
 
 void meta_theme_draw_frame (MetaTheme              *theme,
-                            GtkWidget              *widget,
+                            GtkStyleContext        *style_gtk,
                             cairo_t                *cr,
                             MetaFrameType           type,
                             MetaFrameFlags          flags,
@@ -1059,19 +1059,6 @@ void meta_theme_draw_frame_by_name (MetaTheme              *theme,
                                     GdkPixbuf              *mini_icon,
                                     GdkPixbuf              *icon);
 
-void meta_theme_draw_frame_with_style (MetaTheme              *theme,
-                                       GtkStyleContext        *style_gtk,
-                                       cairo_t                *cr,
-                                       MetaFrameType           type,
-                                       MetaFrameFlags          flags,
-                                       int                     client_width,
-                                       int                     client_height,
-                                       PangoLayout            *title_layout,
-                                       int                     text_height,
-                                       const MetaButtonLayout *button_layout,
-                                       MetaButtonState         button_states[META_BUTTON_TYPE_LAST],
-                                       GdkPixbuf              *mini_icon,
-                                       GdkPixbuf              *icon);
 
 void meta_theme_get_frame_borders (MetaTheme         *theme,
                                    MetaFrameType      type,
-- 
cgit v1.2.1