diff options
author | Victor Kareh <[email protected]> | 2019-05-23 12:47:16 -0400 |
---|---|---|
committer | raveit65 <[email protected]> | 2019-06-16 18:12:44 +0200 |
commit | 2ac1d18675a54990bc2ac65f0cbafc8cfe7623bb (patch) | |
tree | 9eed9bd5dbeabb0e8dde3f8dac6750ae2ed09f3a /src/ui/theme.c | |
parent | 6c035dbf928b04e054e6756ac312d981970ccf7f (diff) | |
download | marco-2ac1d18675a54990bc2ac65f0cbafc8cfe7623bb.tar.bz2 marco-2ac1d18675a54990bc2ac65f0cbafc8cfe7623bb.tar.xz |
theme: don't add invisible borders for windows that can't be resized
Invisible borders are all about resizing -- in the case that a window
cannot be resized, it makes no sense to add them.
https://bugzilla.gnome.org/show_bug.cgi?id=659854
Based on mutter commit:
https://git.gnome.org/browse/mutter/commit/?id=be9f7d77292c1dfd868640fe95f7223fbbfd4273
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/64615667
Diffstat (limited to 'src/ui/theme.c')
-rw-r--r-- | src/ui/theme.c | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/src/ui/theme.c b/src/ui/theme.c index 9a7bf455..c34a7330 100644 --- a/src/ui/theme.c +++ b/src/ui/theme.c @@ -409,6 +409,12 @@ meta_frame_layout_get_borders (const MetaFrameLayout *layout, { int buttons_height, title_height; + meta_frame_borders_clear (borders); + + /* For a full-screen window, we don't have any borders, visible or not. */ + if (flags & META_FRAME_FULLSCREEN) + return; + g_return_if_fail (layout != NULL); if (!layout->has_title) @@ -425,16 +431,17 @@ meta_frame_layout_get_borders (const MetaFrameLayout *layout, borders->visible.right = layout->right_width; borders->visible.bottom = layout->bottom_height; - if (flags & META_FRAME_FULLSCREEN) + if (flags & META_FRAME_ALLOWS_HORIZONTAL_RESIZE) { - meta_frame_borders_clear (borders); - return; + borders->invisible.left = layout->invisible_border.left; + borders->invisible.right = layout->invisible_border.right; } - borders->invisible.left = layout->invisible_border.left; - borders->invisible.right = layout->invisible_border.right; - borders->invisible.bottom = layout->invisible_border.bottom; - borders->invisible.top = layout->invisible_border.top; + if (flags & META_FRAME_ALLOWS_VERTICAL_RESIZE) + { + borders->invisible.bottom = layout->invisible_border.bottom; + borders->invisible.top = layout->invisible_border.top; + } if (flags & META_FRAME_SHADED) borders->visible.bottom = borders->invisible.bottom = 0; |