Skip to content

Commit 74d1205

Browse files
committed
Suppress 'invisible' borders and theme shadows for maximized and
tiled windows. This should only apply to those edges that run up against the monitor's workarea boundaries.
1 parent 548ab2e commit 74d1205

File tree

2 files changed

+24
-12
lines changed

2 files changed

+24
-12
lines changed

src/meta/common.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,10 @@ typedef enum
9696

9797
#define META_FRAME_TILED_TOP_EDGES (META_FRAME_TILED_TOP | META_FRAME_TILED_ULC | META_FRAME_TILED_URC)
9898
#define META_FRAME_TILED_BOTTOM_EDGES (META_FRAME_TILED_BOTTOM | META_FRAME_TILED_LLC | META_FRAME_TILED_LRC)
99-
#define META_FRAME_TILED_RIGHT_EDGES (META_FRAME_TILED_LEFT | META_FRAME_TILED_ULC | META_FRAME_TILED_LLC)
100-
#define META_FRAME_TILED_LEFT_EDGES (META_FRAME_TILED_RIGHT | META_FRAME_TILED_URC | META_FRAME_TILED_LRC)
99+
#define META_FRAME_TILED_LEFT_EDGES (META_FRAME_TILED_TOP | META_FRAME_TILED_BOTTOM | \
100+
META_FRAME_TILED_LEFT | META_FRAME_TILED_ULC | META_FRAME_TILED_LLC)
101+
#define META_FRAME_TILED_RIGHT_EDGES (META_FRAME_TILED_TOP | META_FRAME_TILED_BOTTOM | \
102+
META_FRAME_TILED_RIGHT | META_FRAME_TILED_URC | META_FRAME_TILED_LRC)
101103

102104
#define META_FRAME_TILED_ANY (META_FRAME_TILED_LEFT | META_FRAME_TILED_RIGHT | \
103105
META_FRAME_TILED_TOP | META_FRAME_TILED_BOTTOM | \

src/ui/theme.c

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -94,28 +94,38 @@ meta_frame_layout_get_borders (const MetaFrameLayout *layout,
9494
borders->visible.right = layout->frame_border.right;
9595
borders->visible.bottom = layout->frame_border.bottom;
9696

97-
borders->invisible = layout->invisible_border;
98-
9997
draggable_borders = meta_prefs_get_draggable_border_width ();
10098

10199
if (flags & META_FRAME_ALLOWS_HORIZONTAL_RESIZE)
102100
{
103-
borders->invisible.left = MAX (borders->invisible.left,
104-
draggable_borders - borders->visible.left);
105-
borders->invisible.right = MAX (borders->invisible.right,
106-
draggable_borders - borders->visible.right);
101+
if (!(flags & META_FRAME_TILED_LEFT_EDGES))
102+
borders->invisible.left = MAX (layout->invisible_border.left,
103+
draggable_borders - borders->visible.left);
104+
else
105+
borders->invisible.left = 0;
106+
107+
if (!(flags & META_FRAME_TILED_RIGHT_EDGES))
108+
borders->invisible.right = MAX (layout->invisible_border.right,
109+
draggable_borders - borders->visible.right);
110+
else
111+
borders->invisible.right = 0;
107112
}
108113

109114
if (flags & META_FRAME_ALLOWS_VERTICAL_RESIZE)
110115
{
111-
borders->invisible.bottom = MAX (borders->invisible.bottom,
112-
draggable_borders - borders->visible.bottom);
116+
if (!(flags & META_FRAME_TILED_BOTTOM_EDGES))
117+
borders->invisible.bottom = MAX (layout->invisible_border.bottom,
118+
draggable_borders - borders->visible.bottom);
119+
else
120+
borders->invisible.bottom = 0;
113121

114122
/* borders.visible.top is the height of the *title bar*. We can't do the same
115123
* algorithm here, titlebars are expectedly much bigger. Just subtract a couple
116124
* pixels to get a proper feel. */
117-
if (type != META_FRAME_TYPE_ATTACHED)
118-
borders->invisible.top = MAX (borders->invisible.top, draggable_borders - 2);
125+
if (type != META_FRAME_TYPE_ATTACHED && !(flags & META_FRAME_TILED_TOP_EDGES))
126+
borders->invisible.top = MAX (layout->invisible_border.top, draggable_borders - 2);
127+
else
128+
borders->invisible.top = 0;
119129
}
120130

121131
borders->total.left = borders->invisible.left + borders->visible.left;

0 commit comments

Comments
 (0)