]> git.mdlowis.com Git - proto/labwc.git/commitdiff
layers: unconstrain popups correctly
authorJohan Malm <jgm323@gmail.com>
Thu, 3 Mar 2022 17:53:26 +0000 (17:53 +0000)
committerJohan Malm <jgm323@gmail.com>
Thu, 3 Mar 2022 17:53:26 +0000 (17:53 +0000)
...to show popups when using @Consolatis's example panel

https://github.com/Consolatis/wl_framework

src/layers.c

index ec7f6c6e987b7390fc0e2590e0d85455c24d93b0..6f1d5292b2c7c9f462c9d9243f5a9ce8b38555b4 100644 (file)
@@ -202,20 +202,22 @@ popup_unconstrain(struct lab_layer_popup *popup)
                layer->scene_layer_surface->layer_surface->output->data;
 
        struct wlr_box output_box = { 0 };
-       wlr_output_effective_resolution(output->wlr_output, &output_box.width,
-               &output_box.height);
+       wlr_output_layout_get_box(output->server->output_layout,
+               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
         * parent of popup
         */
        struct wlr_box output_toplevel_sx_box = {
-               .x = -layer->geo.x,
-               .y = -layer->geo.y,
+               .x = output_box.x - lx,
+               .y = output_box.y - ly,
                .width = output_box.width,
                .height = output_box.height,
        };
-
        wlr_xdg_popup_unconstrain_from_box(wlr_popup, &output_toplevel_sx_box);
 }