aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Dudemanguy <random342@airmail.cc>2021-07-06 08:29:45 -0500
committerLibravatar Kenny Levinsen <kl@kl.wtf>2021-07-06 22:54:24 +0200
commitc41dc335902f1e24a20c521c22591bf26ccaf40c (patch)
tree3115d6f2f2f61d7ddda9bfcd77156b801d417f64
parenttree/container: fix indentation (diff)
downloadsway-c41dc335902f1e24a20c521c22591bf26ccaf40c.tar.gz
sway-c41dc335902f1e24a20c521c22591bf26ccaf40c.tar.zst
sway-c41dc335902f1e24a20c521c22591bf26ccaf40c.zip
container: ignore borders in fullscreen windows
When setting the geometry from content for floating windows, the coordinates for borders are normally taken into account. However in the case of a floating fullscreen window, we should not be doing this. Since the content of the container takes the space of the entire output, this causes the calculated borders to neccesarily be outside of the output. This later causes a problem when sending surface entrance events since in a multi-monitor setup, the border coordinates will overlap with another output despite the surface not actually being on that output at all. The fix is to just ignore border coordinates for a floating fullscreen container since fullscreen, of course, does not actually have any borders. Fixes #6080.
-rw-r--r--sway/tree/container.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sway/tree/container.c b/sway/tree/container.c
index e2fb4338..1e84e603 100644
--- a/sway/tree/container.c
+++ b/sway/tree/container.c
@@ -894,7 +894,7 @@ void container_set_geometry_from_content(struct sway_container *con) {
894 size_t border_width = 0; 894 size_t border_width = 0;
895 size_t top = 0; 895 size_t top = 0;
896 896
897 if (con->pending.border != B_CSD) { 897 if (con->pending.border != B_CSD && !con->pending.fullscreen_mode) {
898 border_width = con->pending.border_thickness * (con->pending.border != B_NONE); 898 border_width = con->pending.border_thickness * (con->pending.border != B_NONE);
899 top = con->pending.border == B_NORMAL ? 899 top = con->pending.border == B_NORMAL ?
900 container_titlebar_height() : border_width; 900 container_titlebar_height() : border_width;