diff options
Diffstat (limited to 'daemon/gdm-wayland-session.c')
-rw-r--r-- | daemon/gdm-wayland-session.c | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/daemon/gdm-wayland-session.c b/daemon/gdm-wayland-session.c index 94f49e19..de1991b3 100644 --- a/daemon/gdm-wayland-session.c +++ b/daemon/gdm-wayland-session.c @@ -454,6 +454,21 @@ on_sigterm (State *state) return G_SOURCE_CONTINUE; } +static gboolean +on_registration_delay_complete (State *state) +{ + gboolean ret; + + ret = register_display (state, state->cancellable); + + if (!ret) { + g_printerr ("Unable to register display with display manager\n"); + g_main_loop_quit (state->main_loop); + } + + return G_SOURCE_REMOVE; +} + int main (int argc, char **argv) @@ -528,13 +543,7 @@ main (int argc, goto out; } - ret = register_display (state, state->cancellable); - - if (!ret) { - g_printerr ("Unable to register display with display manager\n"); - exit_status = EX_SOFTWARE; - goto out; - } + g_timeout_add_seconds (2, (GSourceFunc) on_registration_delay_complete, state); g_main_loop_run (state->main_loop); |