From 10fd27533a79e5bdf10a8d42429504ad1284bafa Mon Sep 17 00:00:00 2001 From: Gregory Margo Date: Mon, 16 Dec 2013 09:25:19 -0800 Subject: [PATCH] Fix terminal session restore. --- terminal/terminal-app.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/terminal/terminal-app.c b/terminal/terminal-app.c index 7290b0b..66dcd64 100644 --- a/terminal/terminal-app.c +++ b/terminal/terminal-app.c @@ -774,16 +774,17 @@ terminal_app_process (TerminalApp *app, if (G_UNLIKELY (attrs == NULL)) return FALSE; + /* Connect to session manager first before starting any other windows */ for (lp = attrs; lp != NULL; lp = lp->next) { attr = lp->data; /* take first sm client id */ - if (sm_client_id == NULL && attr->sm_client_id != NULL) - sm_client_id = g_strdup (attr->sm_client_id); - - terminal_app_open_window (app, attr); - terminal_window_attr_free (attr); + if (attr->sm_client_id != NULL) + { + sm_client_id = g_strdup (attr->sm_client_id); + break; + } } if (G_LIKELY (app->session_client == NULL)) @@ -808,6 +809,14 @@ terminal_app_process (TerminalApp *app, } } + for (lp = attrs; lp != NULL; lp = lp->next) + { + attr = lp->data; + + terminal_app_open_window (app, attr); + terminal_window_attr_free (attr); + } + g_slist_free (attrs); g_free (sm_client_id); -- 1.8.5.1