From: Mikael Magnusson Date: Wed, 27 Feb 2008 15:53:43 +0000 (+0100) Subject: Save screen_last_desktop to the root prop _OB_LAST_DESKTOP. X-Git-Tag: mikabox-3.4.7.2~55^2~1 X-Git-Url: http://git.openbox.org/?a=commitdiff_plain;h=99187dba27410e44ca2d4ad37a9369b459404363;p=mikachu%2Fopenbox.git Save screen_last_desktop to the root prop _OB_LAST_DESKTOP. --- diff --git a/obt/prop.c b/obt/prop.c index 01b81acc..ca5c19d4 100644 --- a/obt/prop.c +++ b/obt/prop.c @@ -189,6 +189,7 @@ void obt_prop_startup(void) CREATE_(OB_CONFIG_FILE); CREATE_(OB_WM_ACTION_UNDECORATE); CREATE_(OB_WM_STATE_UNDECORATED); + CREATE_(OB_LAST_DESKTOP); CREATE_(OB_CONTROL); } diff --git a/obt/prop.h b/obt/prop.h index f6c42c10..1107ac8b 100644 --- a/obt/prop.h +++ b/obt/prop.h @@ -210,6 +210,7 @@ typedef enum { OBT_PROP_OPENBOX_PID, /* this is depreecated in favour of ob_control */ OBT_PROP_OB_THEME, OBT_PROP_OB_CONFIG_FILE, + OBT_PROP_OB_LAST_DESKTOP, OBT_PROP_OB_CONTROL, OBT_PROP_NUM_ATOMS diff --git a/openbox/screen.c b/openbox/screen.c index 99912da7..6c4d71b8 100644 --- a/openbox/screen.c +++ b/openbox/screen.c @@ -424,7 +424,11 @@ void screen_startup(gboolean reconfig) else screen_set_desktop(MIN(config_screen_firstdesk, screen_num_desktops) - 1, FALSE); - screen_last_desktop = screen_desktop; + OBT_PROP_GET32(obt_root(ob_screen), OB_LAST_DESKTOP, CARDINAL, &screen_last_desktop); + if (screen_last_desktop < 0 || screen_last_desktop >= screen_num_desktops) { + screen_last_desktop = screen_desktop; + OBT_PROP_SET32(obt_root(ob_screen), OB_LAST_DESKTOP, CARDINAL, screen_last_desktop); + } /* don't start in showing-desktop mode */ screen_showing_desktop = FALSE; @@ -589,6 +593,7 @@ static void screen_fallback_focus(void) static gboolean last_desktop_func(gpointer data) { screen_desktop_timeout = TRUE; + OBT_PROP_SET32(obt_root(ob_screen), OB_LAST_DESKTOP, CARDINAL, screen_last_desktop); return FALSE; }