From aa4b4a8a5b26fd75a1b50f13df6dba5404c94987 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Sun, 2 Jan 2022 19:15:54 +0100 Subject: [PATCH] add to vector on enter unknown --- src/events/events.cpp | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/src/events/events.cpp b/src/events/events.cpp index cb96fd5..d114485 100644 --- a/src/events/events.cpp +++ b/src/events/events.cpp @@ -64,8 +64,31 @@ void Events::eventEnter(xcb_generic_event_t* event) { const auto PENTERWINDOW = g_pWindowManager->getWindowFromDrawable(E->event); - if (!PENTERWINDOW) - return; // wut + if (!PENTERWINDOW){ + + // we entered an unknown window to us. Let's manage it. + Debug::log(LOG, "Entered an unmanaged window. Trying to manage it!"); + + CWindow newEnteredWindow; + newEnteredWindow.setDrawable(E->event); + g_pWindowManager->addWindowToVectorSafe(newEnteredWindow); + + CWindow* pNewWindow; + if (g_pWindowManager->shouldBeFloatedOnInit(E->event)) { + Debug::log(LOG, "Window SHOULD be floating on start."); + pNewWindow = remapFloatingWindow(E->event); + } else { + Debug::log(LOG, "Window should NOT be floating on start."); + pNewWindow = remapWindow(E->event); + } + + if (!pNewWindow) { // oh well. we tried. + g_pWindowManager->removeWindowFromVectorSafe(E->event); + Debug::log(LOG, "Tried to manage, but failed!"); + } + + return; + } // Only when focus_when_hover OR floating OR last window floating if (ConfigManager::getInt("focus_when_hover") == 1 @@ -581,6 +604,7 @@ void Events::eventMapWindow(xcb_generic_event_t* event) { // Check if it's not unmapped if (g_pWindowManager->isWindowUnmapped(E->window)) { + Debug::log(LOG, "Window was unmapped, mapping back."); g_pWindowManager->moveWindowToMapped(E->window); return; }