summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFurkan Sahin <furkan-dev@proton.me>2020-06-03 02:40:02 +0200
committerFurkan Sahin <furkan-dev@proton.me>2020-06-03 02:40:02 +0200
commit61f95aeaca30c839c144282fe46b2750cc72a28f (patch)
tree9f51f543bef1ba38cb0b279c7d795a7c7890b368
parente1d3ce23eeab1a045364e1f6ce1a224d7c8e2b93 (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.
-rw-r--r--sway/desktop/transaction.c20
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) {