guint screen_num_desktops;
guint screen_num_monitors;
guint screen_desktop;
-guint screen_last_desktop = 1;
+guint screen_last_desktop;
gboolean screen_showing_desktop;
ObDesktopLayout screen_desktop_layout;
gchar **screen_desktop_names;
supported[i++] = OBT_PROP_ATOM(OB_WM_STATE_UNDECORATED);
supported[i++] = OBT_PROP_ATOM(OPENBOX_PID);
supported[i++] = OBT_PROP_ATOM(OB_THEME);
+ supported[i++] = OBT_PROP_ATOM(OB_CONFIG_FILE);
supported[i++] = OBT_PROP_ATOM(OB_CONTROL);
g_assert(i == num_support);
/* If screen_desktop_timeout is true, then we've been on this desktop
long enough and we can save it as the last desktop. */
- /* save the "last desktop" as the "old desktop" */
- screen_old_desktop = screen_last_desktop;
- /* save the desktop we're coming from as the "last desktop" */
- screen_last_desktop = previous;
+ if (screen_last_desktop == previous)
+ /* this is the startup state only */
+ screen_old_desktop = screen_desktop;
+ else {
+ /* save the "last desktop" as the "old desktop" */
+ screen_old_desktop = screen_last_desktop;
+ /* save the desktop we're coming from as the "last desktop" */
+ screen_last_desktop = previous;
+ }
}
else {
/* If screen_desktop_timeout is false, then we just got to this desktop