=== modified file 'src/lightdm-gtk-greeter.c' --- src/lightdm-gtk-greeter.c 2017-09-23 01:20:34 +0000 +++ src/lightdm-gtk-greeter.c 2017-09-24 15:25:01 +0000 @@ -2747,6 +2747,16 @@ main (int argc, char **argv) /* LP: #1024482 */ g_setenv ("GDK_CORE_DEVICE_EVENTS", "1", TRUE); + #ifdef AT_SPI_COMMAND + /* Start AT-SPI before gtk initialization, so we know how to terminate it. */ + spawn_line_pid (AT_SPI_COMMAND, G_SPAWN_SEARCH_PATH, NULL); + #else + /* We do not know how to start AT-SPI. Prevent gtk3 from auto-starting it, + because otherwise the AT-SPI processes would remain during the user + session, preventing AT-SPI from working there. */ + g_setenv ("NO_AT_BRIDGE", "1", TRUE); + #endif + /* Initialize i18n */ setlocale (LC_ALL, ""); bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); @@ -2876,10 +2886,6 @@ main (int argc, char **argv) g_free (value); } - #ifdef AT_SPI_COMMAND - spawn_line_pid (AT_SPI_COMMAND, G_SPAWN_SEARCH_PATH, NULL); - #endif - #ifdef INDICATOR_SERVICES_COMMAND spawn_line_pid (INDICATOR_SERVICES_COMMAND, G_SPAWN_SEARCH_PATH, NULL); #endif