summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlberts Muktupāvels <alberts.muktupavels@gmail.com>2016-02-02 03:48:00 +0200
committerAlberts Muktupāvels <alberts.muktupavels@gmail.com>2016-02-02 03:48:00 +0200
commite01ebe5c7a802d231dab568c59c7c7976dceb750 (patch)
treeef7c2f4ce3e7a44615ef430093d30ee92194b11b
parent0f12164ad1031cb04ba2454079a540e20f3004aa (diff)
downloadmetacity-e01ebe5c7a802d231dab568c59c7c7976dceb750.tar.gz
theme: change MetaStyleInfo parameter to theme variant string
-rw-r--r--src/ui/frames.c36
-rw-r--r--src/ui/frames.h2
-rw-r--r--src/ui/preview-widget.c33
-rw-r--r--src/ui/preview-widget.h2
-rw-r--r--src/ui/theme-viewer.c6
-rw-r--r--src/ui/theme.c15
-rw-r--r--src/ui/theme.h6
-rw-r--r--src/ui/ui.c9
8 files changed, 37 insertions, 72 deletions
diff --git a/src/ui/frames.c b/src/ui/frames.c
index ed219a26..c51ba53a 100644
--- a/src/ui/frames.c
+++ b/src/ui/frames.c
@@ -487,7 +487,10 @@ meta_frames_ensure_layout (MetaFrames *frames,
}
else
{
- font_desc = meta_style_info_create_font_desc (current, frame->style_info);
+ MetaStyleInfo *style_info;
+
+ style_info = meta_theme_get_style_info (current, frame->theme_variant);
+ font_desc = meta_style_info_create_font_desc (current, style_info);
meta_frame_style_apply_scale (style, font_desc);
}
@@ -543,7 +546,7 @@ meta_frames_calc_geometry (MetaFrames *frames,
meta_prefs_get_button_layout (&button_layout);
meta_theme_calc_geometry (meta_theme_get_current (),
- frame->style_info,
+ frame->theme_variant,
type,
frame->text_height,
flags,
@@ -605,13 +608,8 @@ static void
meta_frames_attach_style (MetaFrames *frames,
MetaUIFrame *frame)
{
- gboolean has_frame;
char *variant = NULL;
const char *variant_override;
- MetaTheme *theme;
-
- if (frame->style_info != NULL)
- meta_style_info_unref (frame->style_info);
variant_override = get_theme_variant_override (frames);
@@ -620,19 +618,11 @@ meta_frames_attach_style (MetaFrames *frames,
else
meta_core_get (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
frame->xwindow,
- META_CORE_WINDOW_HAS_FRAME, &has_frame,
META_CORE_GET_THEME_VARIANT, &variant,
META_CORE_GET_END);
- theme = meta_theme_get_current ();
-
- if (variant == NULL || strcmp(variant, "normal") == 0)
- frame->style_info = meta_style_info_ref (meta_theme_get_style_info (theme, NULL));
- else
- frame->style_info = meta_style_info_ref (meta_theme_get_style_info (theme, variant));
-
- if (variant_override)
- g_free (variant);
+ g_free (frame->theme_variant);
+ frame->theme_variant = variant_override ? variant : g_strdup (variant);
}
void
@@ -650,7 +640,7 @@ meta_frames_manage_window (MetaFrames *frames,
gdk_window_set_user_data (frame->window, frames);
- frame->style_info = NULL;
+ frame->theme_variant = NULL;
/* Don't set event mask here, it's in frame.c */
@@ -697,7 +687,7 @@ meta_frames_unmanage_window (MetaFrames *frames,
g_hash_table_remove (frames->frames, &frame->xwindow);
- meta_style_info_unref (frame->style_info);
+ g_free (frame->theme_variant);
gdk_window_destroy (frame->window);
@@ -747,7 +737,7 @@ meta_ui_frame_get_borders (MetaFrames *frames,
* window size
*/
meta_theme_get_frame_borders (meta_theme_get_current (),
- frame->style_info,
+ frame->theme_variant,
type,
frame->text_height,
flags,
@@ -2286,7 +2276,7 @@ populate_cache (MetaFrames *frames,
}
meta_theme_get_frame_borders (meta_theme_get_current (),
- frame->style_info,
+ frame->theme_variant,
frame_type,
frame->text_height,
frame_flags,
@@ -2399,7 +2389,7 @@ subtract_client_area (cairo_region_t *region,
META_CORE_GET_CLIENT_HEIGHT, &area.height,
META_CORE_GET_END);
meta_theme_get_frame_borders (meta_theme_get_current (),
- frame->style_info,
+ frame->theme_variant,
type, frame->text_height, flags,
&borders);
@@ -2763,7 +2753,7 @@ meta_frames_paint (MetaFrames *frames,
meta_prefs_get_button_layout (&button_layout);
meta_theme_draw_frame (meta_theme_get_current (),
- frame->style_info,
+ frame->theme_variant,
cr,
type,
flags,
diff --git a/src/ui/frames.h b/src/ui/frames.h
index 1109a8c1..8fb49eb4 100644
--- a/src/ui/frames.h
+++ b/src/ui/frames.h
@@ -74,7 +74,7 @@ struct _MetaUIFrame
{
Window xwindow;
GdkWindow *window;
- MetaStyleInfo *style_info;
+ gchar *theme_variant;
MetaFrameStyle *cache_style;
PangoLayout *text_layout;
int text_height;
diff --git a/src/ui/preview-widget.c b/src/ui/preview-widget.c
index 17ad228c..be10ab0d 100644
--- a/src/ui/preview-widget.c
+++ b/src/ui/preview-widget.c
@@ -38,8 +38,6 @@ static void meta_preview_size_allocate (GtkWidget *widget,
GtkAllocation *allocation);
static gboolean meta_preview_draw (GtkWidget *widget,
cairo_t *cr);
-static void meta_preview_realize (GtkWidget *widget);
-static void meta_preview_dispose (GObject *object);
static void meta_preview_finalize (GObject *object);
G_DEFINE_TYPE (MetaPreview, meta_preview, GTK_TYPE_BIN);
@@ -52,10 +50,8 @@ meta_preview_class_init (MetaPreviewClass *class)
widget_class = (GtkWidgetClass*) class;
- gobject_class->dispose = meta_preview_dispose;
gobject_class->finalize = meta_preview_finalize;
- widget_class->realize = meta_preview_realize;
widget_class->draw = meta_preview_draw;
widget_class->get_preferred_width = meta_preview_get_preferred_width;
widget_class->get_preferred_height = meta_preview_get_preferred_height;
@@ -111,20 +107,6 @@ meta_preview_new (void)
}
static void
-meta_preview_dispose (GObject *object)
-{
- MetaPreview *preview = META_PREVIEW (object);
-
- if (preview->style_info)
- {
- meta_style_info_unref (preview->style_info);
- preview->style_info = NULL;
- }
-
- G_OBJECT_CLASS (meta_preview_parent_class)->dispose (object);
-}
-
-static void
meta_preview_finalize (GObject *object)
{
MetaPreview *preview;
@@ -186,7 +168,7 @@ ensure_info (MetaPreview *preview)
{
if (preview->theme)
meta_theme_get_frame_borders (preview->theme,
- preview->style_info,
+ NULL, /* theme variant */
preview->type,
preview->text_height,
preview->flags,
@@ -238,7 +220,7 @@ meta_preview_draw (GtkWidget *widget,
border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
meta_theme_draw_frame (preview->theme,
- preview->style_info,
+ NULL, /* theme variant... */
cr,
preview->type,
preview->flags,
@@ -257,17 +239,6 @@ meta_preview_draw (GtkWidget *widget,
return GTK_WIDGET_CLASS (meta_preview_parent_class)->draw (widget, cr);
}
-static void
-meta_preview_realize (GtkWidget *widget)
-{
- MetaPreview *preview = META_PREVIEW (widget);
- gboolean composited = meta_theme_get_composited (preview->theme);
-
- GTK_WIDGET_CLASS (meta_preview_parent_class)->realize (widget);
-
- preview->style_info = meta_style_info_new (NULL, composited);
-}
-
#define NO_CHILD_WIDTH 80
#define NO_CHILD_HEIGHT 20
diff --git a/src/ui/preview-widget.h b/src/ui/preview-widget.h
index 753707a9..b59e231b 100644
--- a/src/ui/preview-widget.h
+++ b/src/ui/preview-widget.h
@@ -39,8 +39,6 @@ struct _MetaPreview
{
GtkBin bin;
- MetaStyleInfo *style_info;
-
MetaTheme *theme;
char *title;
MetaFrameType type;
diff --git a/src/ui/theme-viewer.c b/src/ui/theme-viewer.c
index bf98405f..f827f5cd 100644
--- a/src/ui/theme-viewer.c
+++ b/src/ui/theme-viewer.c
@@ -1039,10 +1039,10 @@ run_theme_benchmark (void)
widget = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_realize (widget);
- style_info = meta_style_info_new (NULL, meta_theme_get_composited (global_theme));
+ style_info = meta_theme_get_style_info (global_theme, NULL);
meta_theme_get_frame_borders (global_theme,
- style_info,
+ NULL,
META_FRAME_TYPE_NORMAL,
get_text_height (widget, style_info),
get_flags (widget),
@@ -1086,7 +1086,7 @@ run_theme_benchmark (void)
cr = cairo_create (pixmap);
meta_theme_draw_frame (global_theme,
- style_info,
+ NULL, /* theme variant */
cr,
META_FRAME_TYPE_NORMAL,
get_flags (widget),
diff --git a/src/ui/theme.c b/src/ui/theme.c
index 000bd4c6..b17712b8 100644
--- a/src/ui/theme.c
+++ b/src/ui/theme.c
@@ -1717,7 +1717,7 @@ meta_style_info_create_font_desc (MetaTheme *theme,
void
meta_theme_draw_frame (MetaTheme *theme,
- MetaStyleInfo *style_info,
+ const gchar *theme_variant,
cairo_t *cr,
MetaFrameType type,
MetaFrameFlags flags,
@@ -1732,6 +1732,7 @@ meta_theme_draw_frame (MetaTheme *theme,
{
MetaFrameGeometry fgeom;
MetaFrameStyle *style;
+ MetaStyleInfo *style_info;
g_return_if_fail (type < META_FRAME_TYPE_LAST);
@@ -1741,6 +1742,8 @@ meta_theme_draw_frame (MetaTheme *theme,
if (style == NULL)
return;
+ style_info = meta_theme_get_style_info (theme, theme_variant);
+
meta_frame_layout_calc_geometry (style->layout,
style_info,
text_height,
@@ -1777,13 +1780,14 @@ meta_theme_draw_frame (MetaTheme *theme,
void
meta_theme_get_frame_borders (MetaTheme *theme,
- MetaStyleInfo *style_info,
+ const gchar *theme_variant,
MetaFrameType type,
int text_height,
MetaFrameFlags flags,
MetaFrameBorders *borders)
{
MetaFrameStyle *style;
+ MetaStyleInfo *style_info;
g_return_if_fail (type < META_FRAME_TYPE_LAST);
@@ -1795,6 +1799,8 @@ meta_theme_get_frame_borders (MetaTheme *theme,
if (style == NULL)
return;
+ style_info = meta_theme_get_style_info (theme, theme_variant);
+
meta_frame_layout_sync_with_style (style->layout, style_info, flags, theme);
meta_frame_layout_get_borders (theme, style->layout, text_height,
@@ -1803,7 +1809,7 @@ meta_theme_get_frame_borders (MetaTheme *theme,
void
meta_theme_calc_geometry (MetaTheme *theme,
- MetaStyleInfo *style_info,
+ const gchar *theme_variant,
MetaFrameType type,
int text_height,
MetaFrameFlags flags,
@@ -1813,6 +1819,7 @@ meta_theme_calc_geometry (MetaTheme *theme,
MetaFrameGeometry *fgeom)
{
MetaFrameStyle *style;
+ MetaStyleInfo *style_info;
g_return_if_fail (type < META_FRAME_TYPE_LAST);
@@ -1822,6 +1829,8 @@ meta_theme_calc_geometry (MetaTheme *theme,
if (style == NULL)
return;
+ style_info = meta_theme_get_style_info (theme, theme_variant);
+
meta_frame_layout_calc_geometry (style->layout,
style_info,
text_height,
diff --git a/src/ui/theme.h b/src/ui/theme.h
index 50f19275..2b30d63e 100644
--- a/src/ui/theme.h
+++ b/src/ui/theme.h
@@ -116,7 +116,7 @@ double meta_theme_get_title_scale (MetaTheme *theme,
MetaFrameFlags flags);
void meta_theme_draw_frame (MetaTheme *theme,
- MetaStyleInfo *style_info,
+ const gchar *variant,
cairo_t *cr,
MetaFrameType type,
MetaFrameFlags flags,
@@ -130,13 +130,13 @@ void meta_theme_draw_frame (MetaTheme *theme,
GdkPixbuf *icon);
void meta_theme_get_frame_borders (MetaTheme *theme,
- MetaStyleInfo *style_info,
+ const gchar *variant,
MetaFrameType type,
int text_height,
MetaFrameFlags flags,
MetaFrameBorders *borders);
void meta_theme_calc_geometry (MetaTheme *theme,
- MetaStyleInfo *style_info,
+ const gchar *variant,
MetaFrameType type,
int text_height,
MetaFrameFlags flags,
diff --git a/src/ui/ui.c b/src/ui/ui.c
index 5d8f8486..f89266a4 100644
--- a/src/ui/ui.c
+++ b/src/ui/ui.c
@@ -674,11 +674,11 @@ meta_ui_theme_get_frame_borders (MetaUI *ui,
{
GdkDisplay *display = gdk_x11_lookup_xdisplay (ui->xdisplay);
GdkScreen *screen = gdk_display_get_screen (display, XScreenNumberOfScreen (ui->xscreen));
- MetaStyleInfo *style_info = NULL;
+ MetaStyleInfo *style_info;
MetaTheme *current;
current = meta_theme_get_current ();
- style_info = meta_style_info_new (NULL, meta_theme_get_composited (current));
+ style_info = meta_theme_get_style_info (current, NULL);
context = gtk_widget_get_pango_context (GTK_WIDGET (ui->frames));
font_desc = meta_prefs_get_titlebar_font ();
@@ -717,15 +717,12 @@ meta_ui_theme_get_frame_borders (MetaUI *ui,
text_height = meta_pango_font_desc_get_text_height (font_desc, context);
meta_theme_get_frame_borders (current,
- style_info,
+ NULL, /* FIXME: theme variant*/
type, text_height, flags,
borders);
if (free_font_desc)
pango_font_description_free (free_font_desc);
-
- if (style_info != NULL)
- meta_style_info_unref (style_info);
}
else
{