diff options
| author | Dana Jansens <danakj@orodu.net> | 2003-01-07 01:54:26 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2003-01-07 01:54:26 +0000 |
| commit | 7175ac2b5aec7aface6a2f86df32dd0386e0cc05 (patch) | |
| tree | ad4554e7601d4cab192f9d03defc51f4503c87b9 /src/client.cc | |
| parent | f71a1fc7d2d7f3c860fe137427a534ddef09fd17 (diff) | |
windows stay on their desktops
Diffstat (limited to 'src/client.cc')
| -rw-r--r-- | src/client.cc | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/src/client.cc b/src/client.cc index 298e5f56..c3ab3c63 100644 --- a/src/client.cc +++ b/src/client.cc @@ -91,9 +91,15 @@ void OBClient::getDesktop() // defaults to the current desktop _desktop = Openbox::instance->screen(_screen)->desktop(); - property->get(_window, otk::OBProperty::net_wm_desktop, - otk::OBProperty::Atom_Cardinal, - (long unsigned*)&_desktop); + if (!property->get(_window, otk::OBProperty::net_wm_desktop, + otk::OBProperty::Atom_Cardinal, + (long unsigned*)&_desktop)) { + // make sure the hint exists + Openbox::instance->property()->set(_window, + otk::OBProperty::net_wm_desktop, + otk::OBProperty::Atom_Cardinal, + (unsigned)_desktop); + } } @@ -653,8 +659,17 @@ void OBClient::setDesktop(long target) assert(target >= 0 || target == (signed)0xffffffff); //assert(target == 0xffffffff || target < MAX); - // XXX: move the window to the new desktop (and set root property) + if (!(target >= 0 || target == (signed)0xffffffff)) return; + _desktop = target; + + Openbox::instance->property()->set(_window, + otk::OBProperty::net_wm_desktop, + otk::OBProperty::Atom_Cardinal, + (unsigned)_desktop); + + + // XXX: move the window to the new desktop } |
