mirror of
https://github.com/swaywm/sway.git
synced 2024-11-05 16:03:11 +00:00
Properly place windows with xdg-positioner
This commit is contained in:
parent
28278864b4
commit
7520607b8d
|
@ -331,6 +331,24 @@ static bool handle_view_created(wlc_handle handle) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const struct wlc_geometry *anchor = wlc_view_positioner_get_anchor_rect(handle);
|
||||||
|
if (anchor) {
|
||||||
|
struct wlc_geometry geo = *wlc_view_get_geometry(handle);
|
||||||
|
struct wlc_size sr = *wlc_view_positioner_get_size(handle);
|
||||||
|
if (sr.w <= 0 || sr.h <= 0)
|
||||||
|
sr = geo.size;
|
||||||
|
geo.origin = anchor->origin;
|
||||||
|
geo.size = sr;
|
||||||
|
wlc_handle parent = wlc_view_get_parent(handle);
|
||||||
|
if (parent) {
|
||||||
|
const struct wlc_geometry *pg = wlc_view_get_geometry(parent);
|
||||||
|
geo.origin.x += pg->origin.x;
|
||||||
|
geo.origin.y += pg->origin.y;
|
||||||
|
}
|
||||||
|
wlc_view_set_geometry(handle, 0, &geo);
|
||||||
|
}
|
||||||
|
|
||||||
sway_log(L_DEBUG, "handle:%" PRIuPTR " type:%x state:%x parent:%" PRIuPTR " "
|
sway_log(L_DEBUG, "handle:%" PRIuPTR " type:%x state:%x parent:%" PRIuPTR " "
|
||||||
"mask:%d (x:%d y:%d w:%d h:%d) title:%s "
|
"mask:%d (x:%d y:%d w:%d h:%d) title:%s "
|
||||||
"class:%s appid:%s",
|
"class:%s appid:%s",
|
||||||
|
|
Loading…
Reference in a new issue