layers: unconstrain popups correctly

...to show popups when using @Consolatis's example panel

https://github.com/Consolatis/wl_framework
This commit is contained in:
Johan Malm 2022-03-03 17:53:26 +00:00
parent 8444ba4075
commit 34bd1fb6da

View file

@ -202,20 +202,22 @@ popup_unconstrain(struct lab_layer_popup *popup)
layer->scene_layer_surface->layer_surface->output->data; layer->scene_layer_surface->layer_surface->output->data;
struct wlr_box output_box = { 0 }; struct wlr_box output_box = { 0 };
wlr_output_effective_resolution(output->wlr_output, &output_box.width, wlr_output_layout_get_box(output->server->output_layout,
&output_box.height); output->wlr_output, &output_box);
int lx, ly;
wlr_scene_node_coords(popup->scene_node, &lx, &ly);
/* /*
* Output geometry expressed in the coordinate system of the toplevel * Output geometry expressed in the coordinate system of the toplevel
* parent of popup * parent of popup
*/ */
struct wlr_box output_toplevel_sx_box = { struct wlr_box output_toplevel_sx_box = {
.x = -layer->geo.x, .x = output_box.x - lx,
.y = -layer->geo.y, .y = output_box.y - ly,
.width = output_box.width, .width = output_box.width,
.height = output_box.height, .height = output_box.height,
}; };
wlr_xdg_popup_unconstrain_from_box(wlr_popup, &output_toplevel_sx_box); wlr_xdg_popup_unconstrain_from_box(wlr_popup, &output_toplevel_sx_box);
} }