diff options
author | Victor Kareh <[email protected]> | 2019-05-22 12:04:04 -0400 |
---|---|---|
committer | raveit65 <[email protected]> | 2019-06-16 18:12:44 +0200 |
commit | 291bcbf2af47016863ddf05271dae1c85a3cefd3 (patch) | |
tree | 6f72a5daed97945d9e830a0b0ac2366542d86d17 | |
parent | 0301640c98e3ff35cb5798c23e3062048940832e (diff) | |
download | marco-291bcbf2af47016863ddf05271dae1c85a3cefd3.tar.bz2 marco-291bcbf2af47016863ddf05271dae1c85a3cefd3.tar.xz |
MetaFrameBorders: add invisible borders
This just adds the invisible border field and populates it with
data but doesn't use it in any way.
Based on mutter commit:
https://git.gnome.org/browse/mutter/commit/?id=a1a2527c75ab0c135f89396ea036336fb67ac538
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/bf02c7c3
-rw-r--r-- | src/core/frame.c | 8 | ||||
-rw-r--r-- | src/include/common.h | 5 | ||||
-rw-r--r-- | src/ui/frames.c | 10 | ||||
-rw-r--r-- | src/ui/theme.c | 10 |
4 files changed, 29 insertions, 4 deletions
diff --git a/src/core/frame.c b/src/core/frame.c index a2da9cb9..d4e09fbf 100644 --- a/src/core/frame.c +++ b/src/core/frame.c @@ -306,10 +306,10 @@ meta_frame_get_flags (MetaFrame *frame) void meta_frame_borders_clear (MetaFrameBorders *self) { - self->visible.top = 0; - self->visible.bottom = 0; - self->visible.left = 0; - self->visible.right = 0; + self->visible.top = self->invisible.top = self->total.top = 0; + self->visible.bottom = self->invisible.bottom = self->total.bottom = 0; + self->visible.left = self->invisible.left = self->total.left = 0; + self->visible.right = self->invisible.right = self->total.right = 0; } void diff --git a/src/include/common.h b/src/include/common.h index 03b6ca29..9d3f0cf2 100644 --- a/src/include/common.h +++ b/src/include/common.h @@ -308,6 +308,11 @@ struct _MetaFrameBorders * and an outer portion that is invisible but responds to events. */ GtkBorder visible; + GtkBorder invisible; + + /* For convenience, we have a "total" border which is equal to the sum + * of the two borders above. */ + GtkBorder total; }; /* sets all dimensions to zero */ diff --git a/src/ui/frames.c b/src/ui/frames.c index e1a30be7..0d312c0f 100644 --- a/src/ui/frames.c +++ b/src/ui/frames.c @@ -799,6 +799,16 @@ meta_ui_frame_get_borders (MetaFrames *frames, borders->visible.bottom *= scale; borders->visible.left *= scale; borders->visible.right *= scale; + + borders->invisible.top *= scale; + borders->invisible.bottom *= scale; + borders->invisible.left *= scale; + borders->invisible.right *= scale; + + borders->total.top *= scale; + borders->total.bottom *= scale; + borders->total.left *= scale; + borders->total.right *= scale; } void diff --git a/src/ui/theme.c b/src/ui/theme.c index f4de969f..2434f233 100644 --- a/src/ui/theme.c +++ b/src/ui/theme.c @@ -433,6 +433,16 @@ meta_frame_layout_get_borders (const MetaFrameLayout *layout, meta_frame_borders_clear (borders); return; } + + 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; + + borders->total.left = borders->invisible.left + borders->visible.left; + borders->total.right = borders->invisible.right + borders->visible.right; + borders->total.bottom = borders->invisible.bottom + borders->visible.bottom; + borders->total.top = borders->invisible.top + borders->visible.top; } static MetaButtonType |