diff options
author | Alberts Muktupāvels <alberts.muktupavels@gmail.com> | 2016-02-02 03:48:00 +0200 |
---|---|---|
committer | Alberts Muktupāvels <alberts.muktupavels@gmail.com> | 2016-02-02 03:48:00 +0200 |
commit | e01ebe5c7a802d231dab568c59c7c7976dceb750 (patch) | |
tree | ef7c2f4ce3e7a44615ef430093d30ee92194b11b | |
parent | 0f12164ad1031cb04ba2454079a540e20f3004aa (diff) | |
download | metacity-e01ebe5c7a802d231dab568c59c7c7976dceb750.tar.gz |
theme: change MetaStyleInfo parameter to theme variant string
-rw-r--r-- | src/ui/frames.c | 36 | ||||
-rw-r--r-- | src/ui/frames.h | 2 | ||||
-rw-r--r-- | src/ui/preview-widget.c | 33 | ||||
-rw-r--r-- | src/ui/preview-widget.h | 2 | ||||
-rw-r--r-- | src/ui/theme-viewer.c | 6 | ||||
-rw-r--r-- | src/ui/theme.c | 15 | ||||
-rw-r--r-- | src/ui/theme.h | 6 | ||||
-rw-r--r-- | src/ui/ui.c | 9 |
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 { |