fix focus_fallback after unmapping a window floating moving view

This commit is contained in:
erstarr 2026-04-04 01:43:08 +02:00
parent 2631b66e65
commit 7c1592297c
3 changed files with 4 additions and 2 deletions

View file

@ -301,5 +301,5 @@ void CFocusState::resetWindowFocus() {
}
bool Desktop::isHardInputFocusReason(eFocusReason r) {
return r == FOCUS_REASON_NEW_WINDOW || r == FOCUS_REASON_KEYBIND || r == FOCUS_REASON_GHOSTS || r == FOCUS_REASON_CLICK || r == FOCUS_REASON_DESKTOP_STATE_CHANGE;
return r == FOCUS_REASON_NEW_WINDOW || r == FOCUS_REASON_KEYBIND || r == FOCUS_REASON_GHOSTS || r == FOCUS_REASON_CLICK || r == FOCUS_REASON_DESKTOP_STATE_CHANGE || r == FOCUS_REASON_UNMAP_WINDOW_TILING;
}

View file

@ -13,6 +13,8 @@ namespace Desktop {
FOCUS_REASON_CLICK,
FOCUS_REASON_OTHER,
FOCUS_REASON_DESKTOP_STATE_CHANGE,
FOCUS_REASON_UNMAP_WINDOW_TILING,
FOCUS_REASON_UNMAP_WINDOW_FLOATING,
FOCUS_REASON_UNMAP_GROUPED_WINDOW,
FOCUS_REASON_NEW_WINDOW,
FOCUS_REASON_GHOSTS,

View file

@ -2392,7 +2392,7 @@ void CWindow::unmapWindow() {
if (candidate == nextInGroup)
Desktop::focusState()->rawWindowFocus(candidate, FOCUS_REASON_UNMAP_GROUPED_WINDOW);
else
Desktop::focusState()->fullWindowFocus(candidate, FOCUS_REASON_DESKTOP_STATE_CHANGE);
Desktop::focusState()->fullWindowFocus(candidate, m_self->m_isFloating ? FOCUS_REASON_UNMAP_WINDOW_FLOATING : FOCUS_REASON_UNMAP_WINDOW_TILING);
if ((*PEXITRETAINSFS || candidate == nextInGroup) && CURRENTWINDOWFSSTATE)
g_pCompositor->setWindowFullscreenInternal(candidate, CURRENTFSMODE);