Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
local-display-factory: Create transient display if there is no active…
… session Now that we stop the greeter session when it is no longer necessary, the following can happen: 1) Log in as user a. 2) User-switch to user b. 3) Log out user b. 4) The logout takes you back to VT1, but there is no greeter session running. The problem here is that the create_display() call from gdm_local_display_factory_sync_seats() does not create a new display because there already is a display on the seat for user a. We can detect being on a VT which does not have an active session, by calling sd_seat_get_active() to get the active session, which will return an error in this case. This commit fixes the problem of the user being taken to a black VT1 in the above scenario by starting a transitient display if the create_display() in gdm_local_display_factory_sync_seats() returns NULL and sd_seat_get_active() returns -ENODATA.
- Loading branch information