From e0bc952c8382992c2e9621865b94c904e728a8c3 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Mon, 24 Oct 2022 17:00:08 +0100 Subject: [PATCH] minor fix to silent ws rules --- src/events/Windows.cpp | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp index 627da5750..54000a6ab 100644 --- a/src/events/Windows.cpp +++ b/src/events/Windows.cpp @@ -375,14 +375,23 @@ void Events::listener_mapWindow(void* owner, void* data) { // move the window const auto OLDWORKSPACE = PWINDOW->m_iWorkspaceID; - std::stringstream stream; - stream << std::hex << (uintptr_t)PWINDOW; - std::string hexStr(stream.str()); - - if (requestedWorkspace != "special") { - g_pKeybindManager->m_mDispatchers["movetoworkspacesilent"](requestedWorkspace + ",address:0x" + hexStr); + if (g_pCompositor->m_pLastWindow == PWINDOW) { + if (requestedWorkspace != "special") { + g_pKeybindManager->m_mDispatchers["movetoworkspacesilent"](requestedWorkspace); + } else { + g_pKeybindManager->m_mDispatchers["movetoworkspace"]("special"); + } } else { - g_pKeybindManager->m_mDispatchers["movetoworkspace"]("special,address:0x" + hexStr); + // yes this is fucking weird no clue why this won't work for everyone + std::stringstream stream; + stream << std::hex << (uintptr_t)PWINDOW; + std::string hexStr(stream.str()); + + if (requestedWorkspace != "special") { + g_pKeybindManager->m_mDispatchers["movetoworkspacesilent"](requestedWorkspace + ",address:0x" + hexStr); + } else { + g_pKeybindManager->m_mDispatchers["movetoworkspace"]("special,address:0x" + hexStr); + } } g_pCompositor->forceReportSizesToWindowsOnWorkspace(OLDWORKSPACE);