[metacity] ui: add MetaUI parameter to meta_ui_get_theme



commit 477a98ef57c97bfa3b1dee6fc6c5be35534fe8d0
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Sat Mar 11 00:39:58 2017 +0200

    ui: add MetaUI parameter to meta_ui_get_theme

 src/ui/frames.c     |   60 ++++++++++++++++++++++++++++-----------------------
 src/ui/frames.h     |    3 +-
 src/ui/ui-private.h |    3 +-
 src/ui/ui.c         |    6 ++--
 4 files changed, 40 insertions(+), 32 deletions(-)
---
diff --git a/src/ui/frames.c b/src/ui/frames.c
index a323d3d..d143326 100644
--- a/src/ui/frames.c
+++ b/src/ui/frames.c
@@ -89,6 +89,8 @@ struct _MetaFrames
 {
   GtkWindow    parent;
 
+  MetaUI      *ui;
+
   Display     *xdisplay;
 
   GHashTable  *frames;
@@ -152,7 +154,7 @@ get_control (MetaFrames  *frames,
                  META_CORE_GET_FRAME_TYPE, &type,
                  META_CORE_GET_END);
 
-  theme = meta_ui_get_theme ();
+  theme = meta_ui_get_theme (frames->ui);
   button = meta_theme_get_button (theme, x, y);
 
   if (button != NULL)
@@ -286,7 +288,8 @@ get_control (MetaFrames  *frames,
 }
 
 static gboolean
-get_control_rect (MetaFrameControl   control,
+get_control_rect (MetaFrames        *frames,
+                  MetaFrameControl   control,
                   MetaFrameGeometry *fgeom,
                   gint               x,
                   gint               y,
@@ -365,7 +368,7 @@ get_control_rect (MetaFrameControl   control,
   if (type == META_BUTTON_TYPE_LAST)
     return FALSE;
 
-  theme = meta_ui_get_theme ();
+  theme = meta_ui_get_theme (frames->ui);
   button = meta_theme_get_button (theme, x, y);
 
   if (button == NULL || meta_button_get_type (button) != type)
@@ -600,7 +603,7 @@ meta_frames_font_changed (MetaFrames *frames)
   MetaTheme *theme;
   const PangoFontDescription *titlebar_font;
 
-  theme = meta_ui_get_theme ();
+  theme = meta_ui_get_theme (frames->ui);
   titlebar_font = meta_prefs_get_titlebar_font ();
 
   meta_theme_set_titlebar_font (theme, titlebar_font);
@@ -648,7 +651,7 @@ meta_frames_composited_changed (MetaFrames *frames)
   MetaTheme *theme;
   gboolean compositing_manager;
 
-  theme = meta_ui_get_theme ();
+  theme = meta_ui_get_theme (frames->ui);
   compositing_manager = meta_prefs_get_compositing_manager ();
 
   meta_theme_set_composited (theme, compositing_manager);
@@ -662,7 +665,7 @@ meta_frames_style_updated (GtkWidget *widget)
   MetaTheme *theme;
 
   frames = META_FRAMES (widget);
-  theme = meta_ui_get_theme ();
+  theme = meta_ui_get_theme (frames->ui);
 
   meta_theme_invalidate (theme);
 
@@ -692,18 +695,18 @@ meta_frames_calc_geometry (MetaFrames        *frames,
                  META_CORE_GET_FRAME_TYPE, &type,
                  META_CORE_GET_END);
 
-  meta_theme_calc_geometry (meta_ui_get_theme (), frame->theme_variant,
-                            type, flags, width, height, fgeom);
+  meta_theme_calc_geometry (meta_ui_get_theme (frames->ui),
+                            frame->theme_variant, type, flags,
+                            width, height, fgeom);
 }
 
 MetaFrames*
-meta_frames_new (void)
+meta_frames_new (MetaUI *ui)
 {
   MetaFrames *frames;
 
-  frames = g_object_new (META_TYPE_FRAMES,
-                         "type", GTK_WINDOW_POPUP,
-                         NULL);
+  frames = g_object_new (META_TYPE_FRAMES, "type", GTK_WINDOW_POPUP, NULL);
+  frames->ui = ui;
 
   /* Put the window at an arbitrary offscreen location; the one place
    * it can't be is at -100x-100, since the meta_window_new() will
@@ -869,8 +872,9 @@ meta_ui_frame_get_borders (MetaFrames       *frames,
    * by the core move/resize code to decide on the client
    * window size
    */
-  meta_theme_get_frame_borders (meta_ui_get_theme (), frame->theme_variant,
-                                type, flags, borders);
+  meta_theme_get_frame_borders (meta_ui_get_theme (frames->ui),
+                                frame->theme_variant, type,
+                                flags, borders);
 }
 
 void
@@ -1387,7 +1391,7 @@ show_tip_now (MetaFrames *frames)
 
       meta_frames_calc_geometry (frames, frame, &fgeom);
 
-      if (!get_control_rect (control, &fgeom, x, y, &rect))
+      if (!get_control_rect (frames, control, &fgeom, x, y, &rect))
         return;
 
       /* get conversion delta for root-to-frame coords */
@@ -1452,7 +1456,7 @@ redraw_control (MetaFrames       *frames,
 
   meta_frames_calc_geometry (frames, frame, &fgeom);
 
-  if (!get_control_rect (control, &fgeom, x, y, &rect))
+  if (!get_control_rect (frames, control, &fgeom, x, y, &rect))
     return;
 
   gdk_window_invalidate_rect (frame->window, &rect, FALSE);
@@ -1836,7 +1840,7 @@ meta_frames_button_press_event (GtkWidget      *widget,
 
           meta_frames_calc_geometry (frames, frame, &fgeom);
 
-          if (!get_control_rect (META_FRAME_CONTROL_MENU, &fgeom,
+          if (!get_control_rect (frames, META_FRAME_CONTROL_MENU, &fgeom,
                                  event->x, event->y, &rect))
             {
               return FALSE;
@@ -2270,7 +2274,7 @@ generate_pixmap (MetaFrames            *frames,
 }
 
 static void
-populate_cache (MetaFrames *frames,
+populate_cache (MetaFrames  *frames,
                 MetaUIFrame *frame)
 {
   MetaFrameBorders borders;
@@ -2299,8 +2303,9 @@ populate_cache (MetaFrames *frames,
       return;
     }
 
-  meta_theme_get_frame_borders (meta_ui_get_theme (), frame->theme_variant,
-                                frame_type, frame_flags, &borders);
+  meta_theme_get_frame_borders (meta_ui_get_theme (frames->ui),
+                                frame->theme_variant, frame_type,
+                                frame_flags, &borders);
 
   pixels = get_cache (frames, frame);
 
@@ -2359,8 +2364,8 @@ populate_cache (MetaFrames *frames,
 }
 
 static void
-subtract_client_area (cairo_region_t *region,
-                      Display        *xdisplay,
+subtract_client_area (MetaFrames     *frames,
+                      cairo_region_t *region,
                       MetaUIFrame    *frame)
 {
   cairo_rectangle_int_t area;
@@ -2369,15 +2374,16 @@ subtract_client_area (cairo_region_t *region,
   MetaFrameBorders borders;
   cairo_region_t *tmp_region;
 
-  meta_core_get (xdisplay, frame->xwindow,
+  meta_core_get (frames->xdisplay, frame->xwindow,
                  META_CORE_GET_FRAME_FLAGS, &flags,
                  META_CORE_GET_FRAME_TYPE, &type,
                  META_CORE_GET_CLIENT_WIDTH, &area.width,
                  META_CORE_GET_CLIENT_HEIGHT, &area.height,
                  META_CORE_GET_END);
 
-  meta_theme_get_frame_borders (meta_ui_get_theme (), frame->theme_variant,
-                                type, flags, &borders);
+  meta_theme_get_frame_borders (meta_ui_get_theme (frames->ui),
+                                frame->theme_variant, type,
+                                flags, &borders);
 
   area.x = borders.total.left;
   area.y = borders.total.top;
@@ -2484,7 +2490,7 @@ meta_frames_draw (GtkWidget *widget,
 
   cached_pixels_draw (pixels, cr, region);
 
-  subtract_client_area (region, frames->xdisplay, frame);
+  subtract_client_area (frames, region, frame);
 
   n_areas = cairo_region_num_rectangles (region);
 
@@ -2681,7 +2687,7 @@ meta_frames_paint (MetaFrames  *frames,
   data.frames = frames;
   data.frame = frame;
 
-  meta_theme_draw_frame (meta_ui_get_theme (), frame->theme_variant,
+  meta_theme_draw_frame (meta_ui_get_theme (frames->ui), frame->theme_variant,
                          cr, type, flags, w, h, frame->title,
                          update_button_state, &data, mini_icon, icon);
 }
diff --git a/src/ui/frames.h b/src/ui/frames.h
index c86ffb6..c5ba632 100644
--- a/src/ui/frames.h
+++ b/src/ui/frames.h
@@ -26,6 +26,7 @@
 #include <gdk/gdkx.h>
 #include <libmetacity/meta-theme.h>
 #include "common.h"
+#include "ui.h"
 
 typedef enum
 {
@@ -79,7 +80,7 @@ struct _MetaUIFrame
   gint prelit_y;
 };
 
-MetaFrames *meta_frames_new (void);
+MetaFrames *meta_frames_new (MetaUI *ui);
 
 void meta_frames_manage_window (MetaFrames *frames,
                                 Window      xwindow,
diff --git a/src/ui/ui-private.h b/src/ui/ui-private.h
index 88a1b02..15edc28 100644
--- a/src/ui/ui-private.h
+++ b/src/ui/ui-private.h
@@ -19,10 +19,11 @@
 #define META_UI_PRIVATE_H
 
 #include <libmetacity/meta-theme.h>
+#include "ui.h"
 
 G_BEGIN_DECLS
 
-MetaTheme *meta_ui_get_theme (void);
+MetaTheme *meta_ui_get_theme (MetaUI *ui);
 
 G_END_DECLS
 
diff --git a/src/ui/ui.c b/src/ui/ui.c
index 71ee060..391b640 100644
--- a/src/ui/ui.c
+++ b/src/ui/ui.c
@@ -293,7 +293,7 @@ meta_ui_new (Display *xdisplay)
 
   meta_ui_reload_theme ();
 
-  ui->frames = meta_frames_new ();
+  ui->frames = meta_frames_new (ui);
 
   /* GTK+ needs the frame-sync protocol to work in order to properly
    * handle style changes. This means that the dummy widget we create
@@ -689,14 +689,14 @@ meta_ui_theme_get_frame_borders (MetaUI           *ui,
   MetaTheme *theme;
   const gchar *theme_variant;
 
-  theme = meta_ui_get_theme ();
+  theme = meta_ui_get_theme (ui);
   theme_variant = NULL;
 
   meta_theme_get_frame_borders (theme, theme_variant, type, flags, borders);
 }
 
 MetaTheme *
-meta_ui_get_theme (void)
+meta_ui_get_theme (MetaUI *ui)
 {
   return meta_current_theme;
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]