mirror of
https://github.com/brl/mutter.git
synced 2024-11-12 17:27:03 -05:00
theme: Scale whitespace from theme with title_scale factor
GTK+ doesn't deal with different frame types for its client-side decorations - it just treats dialogs the same as normal windows and ignores the odder frame types like UTILITY and MENU. That's fine as those have largely gone out of fashion anyway, but it's a different case for the WM - we still have to support them somehow. For now, just apply the existing title_scale factor to the geometry information picked up from the theme in addition to the title font. If it turns out that there's demand for something more sophisticated, we can still consider adding wm-only style information to the GTK+ theme. https://bugzilla.gnome.org/show_bug.cgi?id=741917
This commit is contained in:
parent
2cabc067d1
commit
8a7a01b0cf
@ -542,6 +542,16 @@ get_padding_and_border (GtkStyleContext *style,
|
||||
border->bottom += tmp.bottom;
|
||||
}
|
||||
|
||||
static void
|
||||
scale_border (GtkBorder *border,
|
||||
double factor)
|
||||
{
|
||||
border->left *= factor;
|
||||
border->right *= factor;
|
||||
border->top *= factor;
|
||||
border->bottom *= factor;
|
||||
}
|
||||
|
||||
static void
|
||||
meta_frame_layout_sync_with_style (MetaFrameLayout *layout,
|
||||
MetaStyleInfo *style_info,
|
||||
@ -557,6 +567,7 @@ meta_frame_layout_sync_with_style (MetaFrameLayout *layout,
|
||||
|
||||
style = style_info->styles[META_STYLE_ELEMENT_FRAME];
|
||||
get_padding_and_border (style, &border);
|
||||
scale_border (&border, layout->title_scale);
|
||||
|
||||
layout->left_width = border.left;
|
||||
layout->right_width = border.right;
|
||||
@ -585,6 +596,7 @@ meta_frame_layout_sync_with_style (MetaFrameLayout *layout,
|
||||
layout->bottom_right_corner_rounded_radius = MAX (border_radius, max_radius);
|
||||
|
||||
get_padding_and_border (style, &border);
|
||||
scale_border (&border, layout->title_scale);
|
||||
layout->left_titlebar_edge = border.left;
|
||||
layout->right_titlebar_edge = border.right;
|
||||
layout->title_vertical_pad = border.top;
|
||||
@ -599,11 +611,13 @@ meta_frame_layout_sync_with_style (MetaFrameLayout *layout,
|
||||
|
||||
style = style_info->styles[META_STYLE_ELEMENT_BUTTON];
|
||||
get_padding_and_border (style, &border);
|
||||
scale_border (&border, layout->title_scale);
|
||||
layout->button_width += border.left + border.right;
|
||||
layout->button_height += border.top + border.bottom;
|
||||
|
||||
style = style_info->styles[META_STYLE_ELEMENT_IMAGE];
|
||||
get_padding_and_border (style, &border);
|
||||
scale_border (&border, layout->title_scale);
|
||||
layout->button_width += border.left + border.right;
|
||||
layout->button_height += border.top + border.bottom;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user