diff options
| author | Dana Jansens <danakj@orodu.net> | 2002-07-12 01:50:56 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2002-07-12 01:50:56 +0000 |
| commit | 5fed16de70c0fbe40c9e62667f80f612d027c717 (patch) | |
| tree | 450913ec5061c9d0fbc3022e597090575248fe93 /util/epist/window.cc | |
| parent | b10d59dabb5dfd5f3beb2fe71c39b4ee0a3dc5fc (diff) | |
we now know for every window its state and its desktop
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; +} |
