diff options
-rw-r--r-- | sway/container.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/sway/container.c b/sway/container.c index d9677cdb..e557f450 100644 --- a/sway/container.c +++ b/sway/container.c | |||
@@ -340,9 +340,18 @@ swayc_t *new_floating_view(wlc_handle handle) { | |||
340 | struct wlc_geometry geometry; | 340 | struct wlc_geometry geometry; |
341 | wlc_view_get_visible_geometry(handle, &geometry); | 341 | wlc_view_get_visible_geometry(handle, &geometry); |
342 | 342 | ||
343 | // give it requested geometry, but place in center | 343 | // give it requested geometry, but place in center if possible |
344 | view->x = (swayc_active_workspace()->width - geometry.size.w) / 2; | 344 | // in top left otherwise |
345 | view->y = (swayc_active_workspace()->height- geometry.size.h) / 2; | 345 | if (geometry.size.w != 0) { |
346 | view->x = (swayc_active_workspace()->width - geometry.size.w) / 2; | ||
347 | } else { | ||
348 | view->x = 0; | ||
349 | } | ||
350 | if (geometry.size.h != 0) { | ||
351 | view->y = (swayc_active_workspace()->height - geometry.size.h) / 2; | ||
352 | } else { | ||
353 | view->y = 0; | ||
354 | } | ||
346 | view->width = geometry.size.w; | 355 | view->width = geometry.size.w; |
347 | view->height = geometry.size.h; | 356 | view->height = geometry.size.h; |
348 | 357 | ||