events: fixup empty events not being sent on unmap

Ref #3506 https://github.com/hyprwm/Hyprland/issues/3506#issuecomment-1749508111
This commit is contained in:
vaxerski
2023-10-06 01:11:47 +01:00
parent 24c04a8b7c
commit 4b3efc73c5
3 changed files with 12 additions and 3 deletions

View File

@@ -737,8 +737,14 @@ void Events::listener_unmapWindow(void* owner, void* data) {
g_pInputManager->simulateMouseMovement();
else
g_pCompositor->focusWindow(PWINDOWCANDIDATE);
} else {
} else
g_pInputManager->simulateMouseMovement();
// CWindow::onUnmap will remove this window's active status, but we can't really do it above.
if (PWINDOW == g_pCompositor->m_pLastWindow || !g_pCompositor->m_pLastWindow) {
g_pEventManager->postEvent(SHyprIPCEvent{"activewindow", ","});
g_pEventManager->postEvent(SHyprIPCEvent{"activewindowv2", ","});
EMIT_HOOK_EVENT("activeWindow", (CWindow*)nullptr);
}
} else {
Debug::log(LOG, "Unmapped was not focused, ignoring a refocus.");