set the desktop hint when the window already has a hint but its out of range
authorDana Jansens <danakj@orodu.net>
Thu, 26 Jun 2003 07:30:19 +0000 (07:30 +0000)
committerDana Jansens <danakj@orodu.net>
Thu, 26 Jun 2003 07:30:19 +0000 (07:30 +0000)
openbox/client.c

index 9d19cfa..08c22a7 100644 (file)
@@ -587,12 +587,13 @@ static void client_get_area(Client *self)
 
 static void client_get_desktop(Client *self)
 {
-    guint32 d;
+    guint32 d = screen_num_desktops; /* an always-invalid value */
 
     if (PROP_GET32(self->window, net_wm_desktop, cardinal, &d)) {
        if (d >= screen_num_desktops && d != DESKTOP_ALL)
-           d = screen_num_desktops - 1;
-       self->desktop = d;
+           self->desktop = screen_num_desktops - 1;
+        else
+            self->desktop = d;
     } else { 
         gboolean trdesk = FALSE;
 
@@ -616,6 +617,8 @@ static void client_get_desktop(Client *self)
            /* defaults to the current desktop */
            self->desktop = screen_desktop;
 
+    }
+    if (self->desktop != d) {
         /* set the desktop hint, to make sure that it always exists */
         PROP_SET32(self->window, net_wm_desktop, cardinal, self->desktop);
     }