diff options
Diffstat (limited to 'src/Manager.cpp')
-rw-r--r-- | src/Manager.cpp | 16 |
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()); |