summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Wimpress <[email protected]>2021-01-30 11:21:39 +0000
committerraveit65 <[email protected]>2021-06-04 17:30:50 +0200
commit4f567598327e9fdc50eec37ef286c62415a6677f (patch)
treeba5d95fb5ab620461969712deebde6d5a0faa98e
parent60e6fbfb093d63c46ca8e77750c54f31c9780c1c (diff)
downloadmarco-4f567598327e9fdc50eec37ef286c62415a6677f.tar.bz2
marco-4f567598327e9fdc50eec37ef286c62415a6677f.tar.xz
window: Do not render shadows on left/right tiled windows
This pull request prevents shadows being rendered for left and right side titled windows. This behaviour is consistent with maximised windows, which also do not render shadows. The rationale for this change is so that when two windows are titled along side each other, it prevents central shadows bleeding into the touching points of the windows. metacity-theme-x.xml has provision to style left/right titled windows. This patch makes it possible to to create window themes that present clean side-by-side tiled windows.
-rw-r--r--src/compositor/compositor-xrender.c13
-rw-r--r--src/core/window.c12
-rw-r--r--src/include/window.h2
3 files changed, 27 insertions, 0 deletions
diff --git a/src/compositor/compositor-xrender.c b/src/compositor/compositor-xrender.c
index 13e8e620..f70432a7 100644
--- a/src/compositor/compositor-xrender.c
+++ b/src/compositor/compositor-xrender.c
@@ -1025,6 +1025,19 @@ window_has_shadow (MetaCompWindow *cw)
return FALSE;
}
+ /* Do not add shadows for left/right tiled windows */
+ if (meta_window_is_tiled_left (cw->window))
+ {
+ meta_verbose ("Window has no shadow because it is tiled left\n");
+ return FALSE;
+ }
+
+ if (meta_window_is_tiled_right (cw->window))
+ {
+ meta_verbose ("Window has no shadow because it is tiled right\n");
+ return FALSE;
+ }
+
if (meta_window_get_frame (cw->window)) {
meta_verbose ("Window has shadow because it has a frame\n");
return TRUE;
diff --git a/src/core/window.c b/src/core/window.c
index b301dbd9..add00789 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -8855,6 +8855,18 @@ meta_window_is_maximized (MetaWindow *window)
return META_WINDOW_MAXIMIZED (window);
}
+gboolean
+meta_window_is_tiled_left (MetaWindow *window)
+{
+ return META_WINDOW_TILED_LEFT (window);
+}
+
+gboolean
+meta_window_is_tiled_right (MetaWindow *window)
+{
+ return META_WINDOW_TILED_RIGHT (window);
+}
+
/**
* meta_window_is_client_decorated:
*
diff --git a/src/include/window.h b/src/include/window.h
index 6dece7d3..7d749c00 100644
--- a/src/include/window.h
+++ b/src/include/window.h
@@ -45,6 +45,8 @@ Window meta_window_get_xwindow (MetaWindow *window);
MetaWindow *meta_window_get_transient_for (MetaWindow *window);
gboolean meta_window_is_maximized (MetaWindow *window);
cairo_region_t *meta_window_get_frame_bounds (MetaWindow *window);
+gboolean meta_window_is_tiled_left (MetaWindow *window);
+gboolean meta_window_is_tiled_right (MetaWindow *window);
G_END_DECLS