don't reload the session on restart
This commit is contained in:
parent
b8f207892a
commit
44be67844a
3 changed files with 16 additions and 5 deletions
|
@ -92,6 +92,7 @@ gboolean ob_replace_wm = FALSE;
|
||||||
gboolean ob_sm_use = TRUE;
|
gboolean ob_sm_use = TRUE;
|
||||||
gchar *ob_sm_id = NULL;
|
gchar *ob_sm_id = NULL;
|
||||||
gchar *ob_sm_save_file = NULL;
|
gchar *ob_sm_save_file = NULL;
|
||||||
|
gboolean ob_sm_restore = TRUE;
|
||||||
gboolean ob_debug_xinerama = FALSE;
|
gboolean ob_debug_xinerama = FALSE;
|
||||||
|
|
||||||
static ObState state;
|
static ObState state;
|
||||||
|
@ -396,12 +397,13 @@ gint main(gint argc, gchar **argv)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* we remove the session arguments from argv, so put them back */
|
/* we remove the session arguments from argv, so put them back,
|
||||||
|
also don't restore the session on restart */
|
||||||
if (ob_sm_save_file != NULL || ob_sm_id != NULL) {
|
if (ob_sm_save_file != NULL || ob_sm_id != NULL) {
|
||||||
gchar **nargv;
|
gchar **nargv;
|
||||||
gint i, l;
|
gint i, l;
|
||||||
|
|
||||||
l = argc +
|
l = argc + 1 +
|
||||||
(ob_sm_save_file != NULL ? 2 : 0) +
|
(ob_sm_save_file != NULL ? 2 : 0) +
|
||||||
(ob_sm_id != NULL ? 2 : 0);
|
(ob_sm_id != NULL ? 2 : 0);
|
||||||
nargv = g_new0(gchar*, l+1);
|
nargv = g_new0(gchar*, l+1);
|
||||||
|
@ -416,6 +418,7 @@ gint main(gint argc, gchar **argv)
|
||||||
nargv[i++] = g_strdup("--sm-client-id");
|
nargv[i++] = g_strdup("--sm-client-id");
|
||||||
nargv[i++] = ob_sm_id;
|
nargv[i++] = ob_sm_id;
|
||||||
}
|
}
|
||||||
|
nargv[i++] = g_strdup("--sm-no-load");
|
||||||
g_assert(i == l);
|
g_assert(i == l);
|
||||||
argv = nargv;
|
argv = nargv;
|
||||||
}
|
}
|
||||||
|
@ -572,6 +575,11 @@ static void parse_args(gint *argc, gchar **argv)
|
||||||
else if (!strcmp(argv[i], "--sm-disable")) {
|
else if (!strcmp(argv[i], "--sm-disable")) {
|
||||||
ob_sm_use = FALSE;
|
ob_sm_use = FALSE;
|
||||||
}
|
}
|
||||||
|
else if (!strcmp(argv[i], "--sm-no-load")) {
|
||||||
|
ob_sm_restore = FALSE;
|
||||||
|
remove_args(argc, argv, i, 1);
|
||||||
|
--i; /* this arg was removed so go back */
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
/* this is a memleak.. oh well.. heh */
|
/* this is a memleak.. oh well.. heh */
|
||||||
gchar *err = g_strdup_printf
|
gchar *err = g_strdup_printf
|
||||||
|
|
|
@ -45,6 +45,7 @@ extern gchar *ob_sm_id;
|
||||||
/* This save_file will get pass to ourselves if we restart too! So we won't
|
/* This save_file will get pass to ourselves if we restart too! So we won't
|
||||||
make a new file every time, yay. */
|
make a new file every time, yay. */
|
||||||
extern gchar *ob_sm_save_file;
|
extern gchar *ob_sm_save_file;
|
||||||
|
extern gboolean ob_sm_restore;
|
||||||
extern gboolean ob_replace_wm;
|
extern gboolean ob_replace_wm;
|
||||||
extern gboolean ob_debug_xinerama;
|
extern gboolean ob_debug_xinerama;
|
||||||
|
|
||||||
|
|
|
@ -102,9 +102,11 @@ void session_startup(gint argc, gchar **argv)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ob_sm_save_file != NULL) {
|
if (ob_sm_save_file != NULL) {
|
||||||
ob_debug_type(OB_DEBUG_SM, "Loading from session file %s\n",
|
if (ob_sm_restore) {
|
||||||
ob_sm_save_file);
|
ob_debug_type(OB_DEBUG_SM, "Loading from session file %s\n",
|
||||||
session_load_file(ob_sm_save_file);
|
ob_sm_save_file);
|
||||||
|
session_load_file(ob_sm_save_file);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
gchar *filename;
|
gchar *filename;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue