aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/managers/input/InputManager.cpp
diff options
context:
space:
mode:
authorVaxry <[email protected]>2024-12-14 16:19:56 +0100
committerGitHub <[email protected]>2024-12-14 16:19:56 +0100
commit9f7a96b997d90c4c188f3837e02859a25a05611e (patch)
treeea3fde67a04a5c9adbf2011b05c2056892ad2b1e /src/managers/input/InputManager.cpp
parent3cba4ba44e7ba3cc8bb67ac71bc61245b5aca347 (diff)
downloadHyprland-9f7a96b997d90c4c188f3837e02859a25a05611e.tar.gz
Hyprland-9f7a96b997d90c4c188f3837e02859a25a05611e.zip
core/data: Use pointer focus for DnD operations (#8707)
fixes #7737
Diffstat (limited to 'src/managers/input/InputManager.cpp')
-rw-r--r--src/managers/input/InputManager.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/managers/input/InputManager.cpp b/src/managers/input/InputManager.cpp
index d1eb7c4c..fdaa6bfa 100644
--- a/src/managers/input/InputManager.cpp
+++ b/src/managers/input/InputManager.cpp
@@ -374,8 +374,9 @@ void CInputManager::mouseMoveUnified(uint32_t time, bool refocus) {
if (g_pPointerManager->softwareLockedFor(PMONITOR->self.lock()) > 0 && !skipFrameSchedule)
g_pCompositor->scheduleFrameForMonitor(g_pCompositor->m_pLastMonitor.lock(), Aquamarine::IOutput::AQ_SCHEDULE_CURSOR_MOVE);
- // grabs
- if (g_pSeatManager->seatGrab && !g_pSeatManager->seatGrab->accepts(foundSurface)) {
+ // FIXME: This will be disabled during DnD operations because we do not exactly follow the spec
+ // xdg-popup grabs should be keyboard-only, while they are absolute in our case...
+ if (g_pSeatManager->seatGrab && !g_pSeatManager->seatGrab->accepts(foundSurface) && !PROTO::data->dndActive()) {
if (m_bHardInput || refocus) {
g_pSeatManager->setGrab(nullptr);
return; // setGrab will refocus