sway/sway/desktop
Lars-Ragnar A. Haugen 0356a020c1 layer-shell: handle popup reposition for unconstraining
Layer shell popups were missing a handler for the xdg_popup reposition
event. When a client (e.g. GTK4) creates a popup and then sends a
reposition request, wlroots resets the scheduled geometry back to the
positioner's original value. Without a reposition handler, the
unconstrained geometry computed on the initial commit was lost, causing
popups such as tooltips to render outside the screen viewport.

This was most visible with GTK4 layer shell apps (e.g. taskbars) where
tooltips would appear below the bottom edge of the screen instead of
being flipped/slid into the visible area.

Also switch the destroy listener from wlr_popup->base->events.destroy
to wlr_popup->events.destroy so that cleanup runs before wlroots
asserts that all popup signal listeners have been removed.

Fixes #8518
2026-02-28 22:56:37 +01:00
..
idle_inhibit_v1.c desktop/idle_inhibit: remove event listeners on destroy 2025-04-13 23:40:56 +02:00
launcher.c Revert "sway/tree: Simplify sway_node teardown" 2025-06-28 11:26:49 +02:00
layer_shell.c layer-shell: handle popup reposition for unconstraining 2026-02-28 22:56:37 +01:00
output.c Revert "sway/tree: Simplify sway_node teardown" 2025-06-28 11:26:49 +02:00
tearing.c tearing: fix UAF on destroy 2024-08-07 14:33:03 +02:00
transaction.c Revert "sway/tree: Simplify sway_node teardown" 2025-06-28 11:26:49 +02:00
xdg_shell.c desktop/xdg_shell: skip configure in request_maximize handler if unmapped 2025-12-21 16:38:06 +01:00
xwayland.c commit dirty transactions upon window attribute changes 2025-11-22 16:35:19 +01:00