summaryrefslogtreecommitdiff
path: root/src/ui
diff options
context:
space:
mode:
authorAlberts Muktupāvels <alberts.muktupavels@gmail.com>2017-03-11 00:39:58 +0200
committerAlberts Muktupāvels <alberts.muktupavels@gmail.com>2017-03-11 00:39:58 +0200
commit477a98ef57c97bfa3b1dee6fc6c5be35534fe8d0 (patch)
treef782de20b968aac04174875b9d7a878ecdaa0d12 /src/ui
parentc61ee000fc70552f44af0bd39691c1675dd474bd (diff)
downloadmetacity-477a98ef57c97bfa3b1dee6fc6c5be35534fe8d0.tar.gz
ui: add MetaUI parameter to meta_ui_get_theme
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/frames.c60
-rw-r--r--src/ui/frames.h3
-rw-r--r--src/ui/ui-private.h3
-rw-r--r--src/ui/ui.c6
4 files changed, 40 insertions, 32 deletions
diff --git a/src/ui/frames.c b/src/ui/frames.c
index a323d3d8..d1433263 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 c86ffb6d..c5ba632e 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 88a1b02c..15edc280 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 71ee0600..391b6403 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;
}