summaryrefslogtreecommitdiff
path: root/src/Manager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Manager.cpp')
-rw-r--r--src/Manager.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/Manager.cpp b/src/Manager.cpp
index 1ba4e24..cd5daa1 100644
--- a/src/Manager.cpp
+++ b/src/Manager.cpp
@@ -642,7 +642,9 @@ void Manager::handleButtonPress(XDeviceButtonEvent* bev)
return;
}
- if (wmwindow->isResizeBar(bev->window) || wmwindow->isWindowBar(bev->window))
+ if (wmwindow->isResizeBar(bev->window) ||
+ wmwindow->isWindowBar(bev->window) ||
+ wmwindow->isClientWindow(bev->window))
{
XSetClientPointer(x11->dpy, wmwindow->getClientWindow(),
dev->getDevice());
@@ -654,7 +656,14 @@ void Manager::handleButtonPress(XDeviceButtonEvent* bev)
wmwindow->getClientWindow(), PointerRoot, CurrentTime);
it++;
}
- raiseWindow(wmwindow);
+
+ if (wmwindow->isClientWindow(bev->window))
+ {
+ XAllowDeviceEvents(x11->dpy, dev->getDevice(),
+ ReplayThisDevice, CurrentTime);
+ }
+ else
+ raiseWindow(wmwindow);
}
if (wmwindow->isWindowBar(bev->window))
@@ -798,6 +807,9 @@ void Manager::handlePresenceNotify(XDevicePresenceNotifyEvent* ev)
}
dock->setPointerEvents(&pointers);
+
+
+
} catch (DeviceError* e)
{
ERR("%s\n", e->message.c_str());