aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorVaxry <[email protected]>2024-02-10 17:10:05 +0000
committerGitHub <[email protected]>2024-02-10 17:10:05 +0000
commit27370f3e074cf102529211d5cc4cef2980b0c48e (patch)
treebef257244517869c223cba259cab4c01de5a05cb
parent80ae6dbf754b9773a7375fde7c9d8495732c8e25 (diff)
parent658f718fa3b2e08653493a00aeaa670a41d19c8d (diff)
downloadHyprland-27370f3e074cf102529211d5cc4cef2980b0c48e.tar.gz
Hyprland-27370f3e074cf102529211d5cc4cef2980b0c48e.zip
Merge branch 'main' into hyprlang-migration
-rw-r--r--src/Compositor.cpp3
-rw-r--r--src/helpers/Monitor.cpp4
-rw-r--r--src/helpers/Monitor.hpp2
-rw-r--r--src/managers/KeybindManager.cpp8
-rw-r--r--src/managers/input/InputManager.cpp8
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