mirror of
https://codeberg.org/dwl/dwl.git
synced 2026-09-19 05:42:49 +00:00
show popups in fullscreen Xwayland apps
The dialogs opened by clicking items in Xwyland applications' toolbars are unmanaged clients, so placing them in LyrFloat drew them below their source client in LyrFS when it is fullscreened. Add a new dedicated layer for unamanged clients to fix it. Don't put them in LyrFS to prevent the regular fullscreen client from hiding unmanaged ones, e.g. by opening dmenu and then clicking the regular client. Fixes https://codeberg.org/dwl/dwl/issues/556
This commit is contained in:
@@ -88,7 +88,8 @@
|
||||
/* enums */
|
||||
enum { CurNormal, CurPressed, CurMove, CurResize }; /* cursor */
|
||||
enum { XDGShell, LayerShell, X11 }; /* client types */
|
||||
enum { LyrBg, LyrBottom, LyrTile, LyrFloat, LyrTop, LyrFS, LyrOverlay, LyrIMPopup, LyrBlock, NUM_LAYERS }; /* scene layers */
|
||||
enum { LyrBg, LyrBottom, LyrTile, LyrFloat, LyrTop, LyrFS, LyrUnmanaged, LyrOverlay,
|
||||
LyrIMPopup, LyrBlock, NUM_LAYERS }; /* scene layers */
|
||||
enum { AxisUp, AxisRight, AxisDown, AxisLeft };
|
||||
|
||||
typedef union {
|
||||
@@ -1869,7 +1870,7 @@ mapnotify(struct wl_listener *listener, void *data)
|
||||
/* Handle unmanaged clients first so we can return prior create borders */
|
||||
if (client_is_unmanaged(c)) {
|
||||
/* Unmanaged clients always are floating */
|
||||
wlr_scene_node_reparent(&c->scene->node, layers[LyrFloat]);
|
||||
wlr_scene_node_reparent(&c->scene->node, layers[LyrUnmanaged]);
|
||||
wlr_scene_node_set_position(&c->scene->node, c->geom.x, c->geom.y);
|
||||
client_set_size(c, c->geom.width, c->geom.height);
|
||||
if (client_wants_focus(c)) {
|
||||
|
||||
Reference in New Issue
Block a user