sway

i3-compatible Wayland compositor
git clone https://git.awy.one/sway
Log | Files | Refs | README | LICENSE

commit 645cf76f8a47cc136df9edd4b1854b7e51679cde
parent 4edd4290536f76e484cbbc33e218b031c3ec365e
Author: Kenny Levinsen <kl@kl.wtf>
Date:   Wed,  3 Jun 2020 02:40:02 +0200

transaction: Account for full size when centering content

The centering logic needs to take borders, titlebars and CSDs into
account. Instead of using the main surface geometry, use the container
and view geometry, which account for this.

Diffstat:
Msway/desktop/transaction.c | 20++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/sway/desktop/transaction.c b/sway/desktop/transaction.c @@ -255,20 +255,20 @@ static void apply_container_state(struct sway_container *container, // the container. This is important for fullscreen views which // refuse to resize to the size of the output. if (view && view->surface) { - if (view->surface->current.width < container->width) { - container->surface_x = container->content_x + - (container->content_width - view->surface->current.width) / 2; + if (view->geometry.width < container->current.content_width) { + container->surface_x = container->current.content_x + + (container->current.content_width - view->geometry.width) / 2; } else { - container->surface_x = container->content_x; + container->surface_x = container->current.content_x; } - if (view->surface->current.height < container->height) { - container->surface_y = container->content_y + - (container->content_height - view->surface->current.height) / 2; + if (view->geometry.height < container->current.content_height) { + container->surface_y = container->current.content_y + + (container->current.content_height - view->geometry.height) / 2; } else { - container->surface_y = container->content_y; + container->surface_y = container->current.content_y; } - container->surface_width = view->surface->current.width; - container->surface_height = view->surface->current.height; + container->surface_width = container->current.content_width; + container->surface_height = container->current.content_height; } if (!container->node.destroying) {