diff options
author | Kenny Levinsen <kl@kl.wtf> | 2020-06-03 02:40:02 +0200 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2020-06-03 16:41:17 +0200 |
commit | 645cf76f8a47cc136df9edd4b1854b7e51679cde (patch) | |
tree | 9f51f543bef1ba38cb0b279c7d795a7c7890b368 /sway | |
parent | 4edd4290536f76e484cbbc33e218b031c3ec365e (diff) |
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 (limited to 'sway')
-rw-r--r-- | sway/desktop/transaction.c | 20 |
1 files 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) { |