summaryrefslogtreecommitdiff
path: root/daemon/gdm-session-direct.h
diff options
context:
space:
mode:
authorHalton Huo <halton.huo@sun.com>2009-09-11 18:48:01 +0800
committerHalton Huo <halton.huo@sun.com>2009-09-11 18:48:01 +0800
commitac5fc4f2e649c5fa243a031ade4128a0544eb096 (patch)
tree73b99b8c026dace551f0a4987a95f7b11a72e6a7 /daemon/gdm-session-direct.h
parent1f20b75ad274d4a339690315caba866a2f3596fe (diff)
downloadgdm-ac5fc4f2e649c5fa243a031ade4128a0544eb096.tar.gz
Add display-type property when open a new session from GdmSessionWorker.
Corresponding ConsoleKit multi-seat commit is 6a432264767b3e8383270c349899926ca2d326be This allow the user session can inherit display-type property from login window session. It is very useful for dynamic usage like Sunray to get right sessions list which it only care about. Without this change, the user session won't have the right display-type property, hence can not get the right results for specific display-type. For example: 1) Sunray will create a login window session $/usr/sbin/ck-seat-tool -a --display-type=Sunray display=:11 2) If we run $/usr/bin/ck-list-sessions -f session-id,x11-display,display-type 'Session11' ':11' 'Sunray' 'SessionSeat1Local' ':0' 'Local' 3) If user get login, the login session Session11 will be removed, a new user session Session12 will be created. Without this commit, Session12 do not display-type $/usr/bin/ck-list-sessions -f session-id,x11-display,display-type 'Session12' ':11' '' 'SessionSeat1Local' ':0' 'Local' With this commit, Session12 inherit display-type from Session11, that is what we want. $/usr/bin/ck-list-sessions -f session-id,x11-display,display-type 'Session12' ':11' 'Sunray' 'SessionSeat1Local' ':0' 'Local' The display-type property is typically passed as following sequence: 1) console-kit-daemon init and create a static seat "Seat1" and create a un-open session "SessionSeat1Local", stay unmanaged status 2) gdm-binary init and send "Manage" for "Seat1" 3) console-kit-daemon go through all un-open sessions for "Seat1", and send out "OpenSessionRequest" for that session with property display-type. 4) gdm-binary receive "OpenSessionRequest" for given session, 4.1) Create a GdmDisplay with property display-type. 4.2) Spwan a gdm-simple-slave process. 4.3) Create GdmSimpleSlave with property display-type by quering GdmDisplay. 4.4) Create a GdmSessionDirect with property display-type. 4.5) Sqawn gdm-session-worker process, the properties includs display-type are get from "Setup" or "SetupForUser". 5) When user sucessfully logged in, GdmSessionWorker will create a user session by call "OpenSessionWithParameters" with property display-type 6) console-kit-daemon remove "OpenSessionWithParameters", then create a new session "Session1" with property display-type.
Diffstat (limited to 'daemon/gdm-session-direct.h')
-rw-r--r--daemon/gdm-session-direct.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/daemon/gdm-session-direct.h b/daemon/gdm-session-direct.h
index 284d902f..766aa0a2 100644
--- a/daemon/gdm-session-direct.h
+++ b/daemon/gdm-session-direct.h
@@ -50,6 +50,7 @@ GType gdm_session_direct_get_type (void);
GdmSessionDirect * gdm_session_direct_new (const char *display_id,
const char *display_name,
+ const char *display_type,
const char *display_hostname,
const char *display_device,
const char *display_x11_authority_file,