diff options
Diffstat (limited to 'util/epist/window.cc')
| -rw-r--r-- | util/epist/window.cc | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/util/epist/window.cc b/util/epist/window.cc index a366fc49..15f8b11c 100644 --- a/util/epist/window.cc +++ b/util/epist/window.cc @@ -28,15 +28,26 @@ #include "epist.hh" #include "../../src/XAtom.hh" +#include <iostream> + +using std::cout; +using std::endl; +using std::hex; +using std::dec; + XWindow::XWindow(Window window) : _window(window) { - XSelectInput(_display, _window, PropertyChangeMask); + _unmapped = false; + + XSelectInput(_display, _window, PropertyChangeMask | StructureNotifyMask); updateState(); + updateDesktop(); } XWindow::~XWindow() { - XSelectInput(_display, _window, None); + if (! _unmapped) + XSelectInput(_display, _window, None); } @@ -62,3 +73,10 @@ void XWindow::updateState() { delete [] state; } + + +void XWindow::updateDesktop() { + if (! _xatom->getValue(_window, XAtom::net_wm_desktop, XAtom::cardinal, + static_cast<unsigned long>(_desktop))) + _desktop = 0; +} |
