summaryrefslogtreecommitdiff
path: root/src/client.cc
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-01-07 01:54:26 +0000
committerDana Jansens <danakj@orodu.net>2003-01-07 01:54:26 +0000
commit7175ac2b5aec7aface6a2f86df32dd0386e0cc05 (patch)
treead4554e7601d4cab192f9d03defc51f4503c87b9 /src/client.cc
parentf71a1fc7d2d7f3c860fe137427a534ddef09fd17 (diff)
windows stay on their desktops
Diffstat (limited to 'src/client.cc')
-rw-r--r--src/client.cc23
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
}