diff --git a/openbox/client.c b/openbox/client.c index 374ad404..f84291c1 100644 --- a/openbox/client.c +++ b/openbox/client.c @@ -673,9 +673,13 @@ static ObAppSettings *client_get_settings_state(ObClient *self) if (settings->fullscreen != -1) self->fullscreen = !!settings->fullscreen; - if (settings->desktop < screen_num_desktops - || settings->desktop == DESKTOP_ALL) - self->desktop = settings->desktop; + if (settings->desktop) { + if (settings->desktop == DESKTOP_ALL) + self->desktop = settings->desktop; + else if (settings->desktop > 0 && + settings->desktop <= screen_num_desktops) + self->desktop = settings->desktop - 1; + } if (settings->layer == -1) { self->below = TRUE; diff --git a/openbox/config.c b/openbox/config.c index d6adb975..18db15f8 100644 --- a/openbox/config.c +++ b/openbox/config.c @@ -215,6 +215,7 @@ static void parse_per_app_settings(ObParseInst *i, xmlDocPtr doc, gint i = parse_int(doc, n); if (i > 0) settings->desktop = i; + } g_free(s); } else settings->desktop = 0;