mirror of
https://github.com/labwc/labwc.git
synced 2025-11-05 13:29:58 -05:00
xdg-popup: uncontrain popups
This commit is contained in:
parent
d54a998dd8
commit
954a5eadf1
1 changed files with 23 additions and 1 deletions
|
|
@ -50,6 +50,28 @@ popup_handle_new_xdg_popup(struct wl_listener *listener, void *data)
|
||||||
xdg_popup_create(popup->view_child.parent, wlr_popup);
|
xdg_popup_create(popup->view_child.parent, wlr_popup);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
popup_unconstrain(struct xdg_popup *popup)
|
||||||
|
{
|
||||||
|
struct view *view = popup->view_child.parent;
|
||||||
|
struct server *server = view->server;
|
||||||
|
struct wlr_box *popup_box = &popup->wlr_popup->geometry;
|
||||||
|
struct wlr_output_layout *output_layout = server->output_layout;
|
||||||
|
struct wlr_output *wlr_output = wlr_output_layout_output_at(
|
||||||
|
output_layout, view->x + popup_box->x, view->y + popup_box->y);
|
||||||
|
struct wlr_box *output_box = wlr_output_layout_get_box(
|
||||||
|
output_layout, wlr_output);
|
||||||
|
|
||||||
|
struct wlr_box output_toplevel_box = {
|
||||||
|
.x = output_box->x - view->x,
|
||||||
|
.y = output_box->y - view->y,
|
||||||
|
.width = output_box->width,
|
||||||
|
.height = output_box->height,
|
||||||
|
};
|
||||||
|
wlr_xdg_popup_unconstrain_from_box(
|
||||||
|
popup->wlr_popup, &output_toplevel_box);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
xdg_popup_create(struct view *view, struct wlr_xdg_popup *wlr_popup)
|
xdg_popup_create(struct view *view, struct wlr_xdg_popup *wlr_popup)
|
||||||
{
|
{
|
||||||
|
|
@ -70,5 +92,5 @@ xdg_popup_create(struct view *view, struct wlr_xdg_popup *wlr_popup)
|
||||||
popup->new_popup.notify = popup_handle_new_xdg_popup;
|
popup->new_popup.notify = popup_handle_new_xdg_popup;
|
||||||
wl_signal_add(&wlr_popup->base->events.new_popup, &popup->new_popup);
|
wl_signal_add(&wlr_popup->base->events.new_popup, &popup->new_popup);
|
||||||
|
|
||||||
/* TODO: popup_unconstrain() */
|
popup_unconstrain(popup);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue