summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/client.cc8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/client.cc b/src/client.cc
index e991639b..2e78cb76 100644
--- a/src/client.cc
+++ b/src/client.cc
@@ -155,9 +155,11 @@ void Client::getDesktop()
if (otk::Property::get(_window, otk::Property::atoms.net_wm_desktop,
otk::Property::atoms.cardinal,
- (long unsigned*)&d) &&
- d < openbox->screen(_screen)->numDesktops()) {
- _desktop = d;
+ (long unsigned*)&d)) {
+ if (d >= openbox->screen(_screen)->numDesktops() &&
+ d != 0xffffffff)
+ d = openbox->screen(_screen)->numDesktops() - 1;
+ _desktop = d;
#ifdef DEBUG
// printf("Window requested desktop: %ld\n", _desktop);
#endif