From 645cf76f8a47cc136df9edd4b1854b7e51679cde Mon Sep 17 00:00:00 2001 From: Kenny Levinsen Date: Wed, 3 Jun 2020 02:40:02 +0200 Subject: [PATCH] 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. --- sway/desktop/transaction.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/sway/desktop/transaction.c b/sway/desktop/transaction.c index ef656102..aadd8ba5 100644 --- 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) {