diff options
author | Robert Ancell <robert.ancell@canonical.com> | 2013-03-26 13:16:20 +1300 |
---|---|---|
committer | Robert Ancell <robert.ancell@canonical.com> | 2013-03-26 13:16:20 +1300 |
commit | f646fdf38acd91fe0c8ae553e77231f709399a2a (patch) | |
tree | e1e93b252f873c08efa5d846a461215d7aae05a2 | |
parent | d0bdebc5ffd321f16966e651fe76e23b655bdb65 (diff) | |
download | lightdm-git-f646fdf38acd91fe0c8ae553e77231f709399a2a.tar.gz |
Correctly check X server is terminated when returning to existing session
-rw-r--r-- | src/display-server.c | 8 | ||||
-rw-r--r-- | tests/scripts/switch-to-greeter-return-session.conf | 8 |
2 files changed, 13 insertions, 3 deletions
diff --git a/src/display-server.c b/src/display-server.c index 8b8eafaf..28110ef6 100644 --- a/src/display-server.c +++ b/src/display-server.c @@ -27,6 +27,9 @@ struct DisplayServerPrivate /* TRUE if sessions should be automatically started on this display server */ gboolean start_local_sessions; + + /* TRUE when being stopped */ + gboolean stopping; }; G_DEFINE_TYPE (DisplayServer, display_server, G_TYPE_OBJECT); @@ -78,6 +81,11 @@ void display_server_stop (DisplayServer *server) { g_return_if_fail (server != NULL); + + if (server->priv->stopping) + return; + server->priv->stopping = TRUE; + DISPLAY_SERVER_GET_CLASS (server)->stop (server); } diff --git a/tests/scripts/switch-to-greeter-return-session.conf b/tests/scripts/switch-to-greeter-return-session.conf index acdf4207..98315a1f 100644 --- a/tests/scripts/switch-to-greeter-return-session.conf +++ b/tests/scripts/switch-to-greeter-return-session.conf @@ -46,12 +46,14 @@ autologin-user=have-password1 #?*GREETER :51 RESPOND TEXT="password" #?GREETER :51 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE #?*GREETER :51 START-SESSION + +# Greeter and X server stop #?GREETER :51 TERMINATE SIGNAL=15 +#?XSERVER :51 TERMINATE SIGNAL=15 # Cleanup #?*STOP-DAEMON # Don't know what order they will terminate -#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15) -#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15) -#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15) +#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15) +#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15) #?RUNNER DAEMON-EXIT STATUS=0 |