From 5fed16de70c0fbe40c9e62667f80f612d027c717 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Fri, 12 Jul 2002 01:50:56 +0000 Subject: we now know for every window its state and its desktop --- util/epist/window.cc | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'util/epist/window.cc') 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 + +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(_desktop))) + _desktop = 0; +} -- cgit v1.2.3