Put floating views in center, fallback on top left

Sometimes views are created before we got its size
This commit is contained in:
Nicolas Cornu 2016-12-18 02:03:31 +01:00
parent 1172566d4e
commit 0f0bbbff4d

View File

@ -340,9 +340,18 @@ swayc_t *new_floating_view(wlc_handle handle) {
struct wlc_geometry geometry;
wlc_view_get_visible_geometry(handle, &geometry);
// give it requested geometry, but place in center
view->x = (swayc_active_workspace()->width - geometry.size.w) / 2;
view->y = (swayc_active_workspace()->height- geometry.size.h) / 2;
// give it requested geometry, but place in center if possible
// in top left otherwise
if (geometry.size.w != 0) {
view->x = (swayc_active_workspace()->width - geometry.size.w) / 2;
} else {
view->x = 0;
}
if (geometry.size.h != 0) {
view->y = (swayc_active_workspace()->height - geometry.size.h) / 2;
} else {
view->y = 0;
}
view->width = geometry.size.w;
view->height = geometry.size.h;