X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;ds=sidebyside;f=openbox%2Fscreen.c;h=f424ca041c13480c076eea71840da70878bb3649;hb=4a45cabd4fb99ac787a3f84f89541e1c76e578b4;hp=6a64c025e09941542dbf4ecdef27e5ecd937fb79;hpb=1f71a0db724902df37f349738379e93c8b8ca34c;p=chaz%2Fopenbox diff --git a/openbox/screen.c b/openbox/screen.c index 6a64c025..f424ca04 100644 --- a/openbox/screen.c +++ b/openbox/screen.c @@ -508,10 +508,11 @@ void screen_set_desktop(guint num, gboolean dofocus) g_assert(num < screen_num_desktops); - if (old == num) return; - old = screen_desktop; screen_desktop = num; + + if (old == num) return; + PROP_SET32(RootWindow(ob_display, ob_screen), net_current_desktop, cardinal, num); @@ -532,7 +533,8 @@ void screen_set_desktop(guint num, gboolean dofocus) } } - if (focus_client && (focus_client->desktop == DESKTOP_ALL || + if (focus_client && ((client_normal(focus_client) && + focus_client->desktop == DESKTOP_ALL) || focus_client->desktop == screen_desktop)) dofocus = FALSE; @@ -938,7 +940,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