wayland: Phase 75 — frame NULL guards in cycling.c
raiseWindow: skip stacking operations when wwin->frame is NULL (Wayland windows have no X11 frame window to restack). change_focus_and_raise: skip fullscreen stacking-level restore when oldFocused->frame is NULL. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
b44d556351
commit
2c7407a6c8
|
|
@ -40,6 +40,9 @@ static void raiseWindow(WSwitchPanel * swpanel, WWindow * wwin)
|
|||
{
|
||||
WNativeWindow swwin = wSwitchPanelGetWindow(swpanel);
|
||||
|
||||
if (!wwin->frame)
|
||||
return; /* Phase 75: Wayland — no frame window to raise */
|
||||
|
||||
if (wwin->flags.mapped || wwin->flags.shaded) {
|
||||
if (swwin != WNATIVE_NONE) {
|
||||
WNativeWindow win[2];
|
||||
|
|
@ -60,7 +63,7 @@ static WWindow *change_focus_and_raise(WWindow *newFocused, WWindow *oldFocused,
|
|||
return oldFocused;
|
||||
|
||||
/* allow the focused window to float on top of a fullscreen window */
|
||||
if (oldFocused->flags.fullscreen)
|
||||
if (oldFocused->flags.fullscreen && oldFocused->frame)
|
||||
ChangeStackingLevel(oldFocused->frame->core, WMNormalLevel);
|
||||
|
||||
wWindowFocus(newFocused, oldFocused);
|
||||
|
|
|
|||
|
|
@ -85,6 +85,9 @@
|
|||
# client_synth_configure for Wayland windows; wWindowSingleFocus and
|
||||
# wWindowSaveState use client geometry fallback when frame is NULL
|
||||
# (build-only check).
|
||||
# 33. (Phase 75) Frame NULL guards in cycling.c: raiseWindow skips stacking
|
||||
# for Wayland windows; change_focus_and_raise skips fullscreen stacking
|
||||
# restore when frame is NULL (build-only check).
|
||||
#
|
||||
# This test grows as wl_backend vtable slots are implemented.
|
||||
#
|
||||
|
|
|
|||
Loading…
Reference in New Issue