diff options
author | Vaxry <[email protected]> | 2024-02-10 17:10:05 +0000 |
---|---|---|
committer | GitHub <[email protected]> | 2024-02-10 17:10:05 +0000 |
commit | 27370f3e074cf102529211d5cc4cef2980b0c48e (patch) | |
tree | bef257244517869c223cba259cab4c01de5a05cb | |
parent | 80ae6dbf754b9773a7375fde7c9d8495732c8e25 (diff) | |
parent | 658f718fa3b2e08653493a00aeaa670a41d19c8d (diff) | |
download | Hyprland-27370f3e074cf102529211d5cc4cef2980b0c48e.tar.gz Hyprland-27370f3e074cf102529211d5cc4cef2980b0c48e.zip |
Merge branch 'main' into hyprlang-migration
-rw-r--r-- | src/Compositor.cpp | 3 | ||||
-rw-r--r-- | src/helpers/Monitor.cpp | 4 | ||||
-rw-r--r-- | src/helpers/Monitor.hpp | 2 | ||||
-rw-r--r-- | src/managers/KeybindManager.cpp | 8 | ||||
-rw-r--r-- | src/managers/input/InputManager.cpp | 8 |
5 files changed, 13 insertions, 12 deletions
diff --git a/src/Compositor.cpp b/src/Compositor.cpp index 94a0a0c9..82bc6209 100644 --- a/src/Compositor.cpp +++ b/src/Compositor.cpp @@ -2165,7 +2165,7 @@ void CCompositor::moveWorkspaceToMonitor(CWorkspace* pWorkspace, CMonitor* pMoni } Debug::log(LOG, "moveWorkspaceToMonitor: Plugging gap with existing {}", nextWorkspaceOnMonitorID); - POLDMON->changeWorkspace(nextWorkspaceOnMonitorID); + POLDMON->changeWorkspace(nextWorkspaceOnMonitorID, false, true, true); } // move the workspace @@ -2206,6 +2206,7 @@ void CCompositor::moveWorkspaceToMonitor(CWorkspace* pWorkspace, CMonitor* pMoni if (const auto PWORKSPACE = getWorkspaceByID(pMonitor->activeWorkspace); PWORKSPACE) getWorkspaceByID(pMonitor->activeWorkspace)->startAnim(false, false); + setActiveMonitor(pMonitor); pMonitor->activeWorkspace = pWorkspace->m_iID; g_pLayoutManager->getCurrentLayout()->recalculateMonitor(pMonitor->ID); diff --git a/src/helpers/Monitor.cpp b/src/helpers/Monitor.cpp index 3db18058..f32afa63 100644 --- a/src/helpers/Monitor.cpp +++ b/src/helpers/Monitor.cpp @@ -571,8 +571,8 @@ void CMonitor::changeWorkspace(CWorkspace* const pWorkspace, bool internal, bool g_pCompositor->updateSuspendedStates(); } -void CMonitor::changeWorkspace(const int& id, bool internal) { - changeWorkspace(g_pCompositor->getWorkspaceByID(id), internal); +void CMonitor::changeWorkspace(const int& id, bool internal, bool noMouseMove, bool noFocus) { + changeWorkspace(g_pCompositor->getWorkspaceByID(id), internal, noMouseMove, noFocus); } void CMonitor::setSpecialWorkspace(CWorkspace* const pWorkspace) { diff --git a/src/helpers/Monitor.hpp b/src/helpers/Monitor.hpp index 43de8d12..d5aba751 100644 --- a/src/helpers/Monitor.hpp +++ b/src/helpers/Monitor.hpp @@ -142,7 +142,7 @@ class CMonitor { bool isMirror(); float getDefaultScale(); void changeWorkspace(CWorkspace* const pWorkspace, bool internal = false, bool noMouseMove = false, bool noFocus = false); - void changeWorkspace(const int& id, bool internal = false); + void changeWorkspace(const int& id, bool internal = false, bool noMouseMove = false, bool noFocus = false); void setSpecialWorkspace(CWorkspace* const pWorkspace); void setSpecialWorkspace(const int& id); void moveTo(const Vector2D& pos); diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp index 2835bfc3..2d8bd1e8 100644 --- a/src/managers/KeybindManager.cpp +++ b/src/managers/KeybindManager.cpp @@ -1466,14 +1466,18 @@ void CKeybindManager::exitHyprland(std::string argz) { void CKeybindManager::moveCurrentWorkspaceToMonitor(std::string args) { CMonitor* PMONITOR = g_pCompositor->getMonitorFromString(args); - if (!PMONITOR) + if (!PMONITOR) { + Debug::log(ERR, "Ignoring moveCurrentWorkspaceToMonitor: monitor doesnt exist"); return; + } // get the current workspace const auto PCURRENTWORKSPACE = g_pCompositor->getWorkspaceByID(g_pCompositor->m_pLastMonitor->activeWorkspace); - if (!PCURRENTWORKSPACE) + if (!PCURRENTWORKSPACE) { + Debug::log(ERR, "moveCurrentWorkspaceToMonitor invalid workspace!"); return; + } g_pCompositor->moveWorkspaceToMonitor(PCURRENTWORKSPACE, PMONITOR); } diff --git a/src/managers/input/InputManager.cpp b/src/managers/input/InputManager.cpp index 7607ce29..079c0336 100644 --- a/src/managers/input/InputManager.cpp +++ b/src/managers/input/InputManager.cpp @@ -601,12 +601,8 @@ void CInputManager::processMouseDownNormal(wlr_pointer_button_event* e) { const auto mouseCoords = g_pInputManager->getMouseCoordsInternal(); const auto w = g_pCompositor->vectorToWindowUnified(mouseCoords, ALLOW_FLOATING | RESERVED_EXTENTS | INPUT_EXTENTS); - if (w && !m_bLastFocusOnLS) { - if (g_pCompositor->m_pLastWindow != w && **PFOLLOWMOUSE != 3) - g_pCompositor->focusWindow(w); - if (w->checkInputOnDecos(INPUT_TYPE_BUTTON, mouseCoords, e)) - return; - } + if (w && !m_bLastFocusOnLS && w->checkInputOnDecos(INPUT_TYPE_BUTTON, mouseCoords, e)) + return; // clicking on border triggers resize // TODO detect click on LS properly |