Delaying launch of screen-reader until bus name is acquired 29/305629/1 accepted/tizen/unified/20240206.161748 accepted/tizen/unified/x/20240207.075822
authorLukasz Oleksak <l.oleksak@samsung.com>
Mon, 5 Feb 2024 12:36:46 +0000 (13:36 +0100)
committerLukasz Oleksak <l.oleksak@samsung.com>
Mon, 5 Feb 2024 12:36:46 +0000 (13:36 +0100)
Change-Id: Ib26202dedad5121ef29d4c1d85426f02f619ea69

bus/at-spi-bus-launcher.c

index 2950a45..16693ef 100644 (file)
@@ -943,43 +943,6 @@ on_bus_acquired (GDBusConnection *connection,
                                      NULL);
 }
 
-static void
-on_name_lost (GDBusConnection *connection,
-              const gchar     *name,
-              gpointer         user_data)
-{
-  A11yBusLauncher *app = user_data;
-  if (app->session_bus == NULL
-      && connection == NULL
-      && app->a11y_launch_error_message == NULL)
-    app->a11y_launch_error_message = g_strdup ("Failed to connect to session bus");
-  g_main_loop_quit (app->loop);
-}
-
-static void
-on_name_acquired (GDBusConnection *connection,
-                  const gchar     *name,
-                  gpointer         user_data)
-{
-  A11yBusLauncher *app = user_data;
-
-  if (app->launch_immediately)
-    {
-      ensure_a11y_bus (app);
-      if (app->state == A11Y_BUS_STATE_ERROR)
-        {
-          g_main_loop_quit (app->loop);
-          return;
-        }
-    }
-
-  g_bus_watch_name (G_BUS_TYPE_SESSION,
-                    "org.gnome.SessionManager",
-                    G_BUS_NAME_WATCHER_FLAGS_NONE,
-                    name_appeared_handler, NULL,
-                    user_data, NULL);
-}
-
 static int sigterm_pipefd[2];
 
 static void
@@ -1285,6 +1248,46 @@ static gboolean register_executable(A11yBusClient *client)
   return TRUE;
 }
 
+static void
+on_name_lost (GDBusConnection *connection,
+              const gchar     *name,
+              gpointer         user_data)
+{
+  A11yBusLauncher *app = user_data;
+  if (app->session_bus == NULL
+      && connection == NULL
+      && app->a11y_launch_error_message == NULL)
+    app->a11y_launch_error_message = g_strdup ("Failed to connect to session bus");
+  g_main_loop_quit (app->loop);
+}
+
+static void
+on_name_acquired (GDBusConnection *connection,
+                  const gchar     *name,
+                  gpointer         user_data)
+{
+  A11yBusLauncher *app = user_data;
+
+  if (app->launch_immediately)
+    {
+      ensure_a11y_bus (app);
+      if (app->state == A11Y_BUS_STATE_ERROR)
+        {
+          g_main_loop_quit (app->loop);
+          return;
+        }
+    }
+
+  g_bus_watch_name (G_BUS_TYPE_SESSION,
+                    "org.gnome.SessionManager",
+                    G_BUS_NAME_WATCHER_FLAGS_NONE,
+                    name_appeared_handler, NULL,
+                    user_data, NULL);
+
+  register_executable (&app->screen_reader);
+  register_executable (&app->universal_switch);
+}
+
 int
 main (int    argc,
       char **argv)
@@ -1368,9 +1371,6 @@ main (int    argc,
                                   _global_app,
                                   NULL);
 
-  register_executable (&_global_app->screen_reader);
-  register_executable (&_global_app->universal_switch);
-
   g_main_loop_run (_global_app->loop);
 
   if (_global_app->a11y_bus_pid > 0)