]> Dogcows Code - chaz/openbox/blobdiff - openbox/screen.c
dont use empty desktop names from the rc file
[chaz/openbox] / openbox / screen.c
index 381753ae9d8fcc67e4b4e9eeca0c298b06bda11a..08b2d74036dc663f625d3b77be2eb2f8004df586 100644 (file)
@@ -368,6 +368,7 @@ void screen_startup(gboolean reconfig)
     else
         screen_set_num_desktops(config_desktops_num);
 
+    screen_desktop = screen_num_desktops;  /* something invalid */
     /* start on the current desktop when a wm was already running */
     if (PROP_GET32(RootWindow(ob_display, ob_screen),
                    net_current_desktop, cardinal, &d) &&
@@ -380,6 +381,7 @@ void screen_startup(gboolean reconfig)
     else
         screen_set_desktop(MIN(config_screen_firstdesk,
                                screen_num_desktops) - 1, FALSE);
+    screen_last_desktop = screen_desktop;
 
     /* don't start in showing-desktop mode */
     screen_showing_desktop = FALSE;
@@ -506,13 +508,13 @@ void screen_set_desktop(guint num, gboolean dofocus)
      
     g_assert(num < screen_num_desktops);
 
+    if (old == num) return;
+
     old = screen_desktop;
     screen_desktop = num;
     PROP_SET32(RootWindow(ob_display, ob_screen),
                net_current_desktop, cardinal, num);
 
-    if (old == num) return;
-
     screen_last_desktop = old;
 
     ob_debug("Moving to desktop %d\n", num+1);
@@ -936,7 +938,7 @@ void screen_update_desktop_names()
         it = g_slist_nth(config_desktops_names, i);
 
         for (; i < screen_num_desktops; ++i) {
-            if (it)
+            if (it && ((char*)it->data)[0]) /* not empty */
                 /* use the names from the config file when possible */
                 screen_desktop_names[i] = g_strdup(it->data);
             else
This page took 0.025489 seconds and 4 git commands to generate.