backend: Re-order backend component initialization

Move components without dependencies to the top and try to move
components with dependencies close to the component they depend on.

While this is an improvement, we really should start tracking and
documenting the actual dependencies between our components so that the
order here becomes comprehensible.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4018>
This commit is contained in:
Sebastian Wick 2024-09-10 18:47:18 +02:00
parent 2641d28a80
commit 007058aac4

View File

@ -1184,16 +1184,20 @@ meta_backend_initable_init (GInitable *initable,
g_assert (priv->context);
priv->cancellable = g_cancellable_new ();
g_bus_get (G_BUS_TYPE_SYSTEM,
priv->cancellable,
system_bus_gotten_cb,
backend);
priv->settings = meta_settings_new (backend);
#ifdef HAVE_LIBWACOM
priv->wacom_db = libwacom_database_new ();
if (!priv->wacom_db)
{
g_warning ("Could not create database of Wacom devices, "
"expect tablets to misbehave");
}
#endif
priv->dnd = meta_dnd_new (backend);
priv->orientation_manager = g_object_new (META_TYPE_ORIENTATION_MANAGER, NULL);
priv->cursor_tracker = meta_backend_create_cursor_tracker (backend);
if (META_BACKEND_GET_CLASS (backend)->is_lid_closed ==
meta_backend_real_is_lid_closed)
@ -1207,6 +1211,15 @@ meta_backend_initable_init (GInitable *initable,
NULL);
}
#ifdef HAVE_LIBWACOM
priv->wacom_db = libwacom_database_new ();
if (!priv->wacom_db)
{
g_warning ("Could not create database of Wacom devices, "
"expect tablets to misbehave");
}
#endif
#ifdef HAVE_EGL
priv->egl = g_object_new (META_TYPE_EGL, NULL);
#endif
@ -1215,8 +1228,6 @@ meta_backend_initable_init (GInitable *initable,
!META_BACKEND_GET_CLASS (backend)->init_basic (backend, error))
return FALSE;
priv->orientation_manager = g_object_new (META_TYPE_ORIENTATION_MANAGER, NULL);
priv->monitor_manager = meta_backend_create_monitor_manager (backend, error);
if (!priv->monitor_manager)
return FALSE;
@ -1227,19 +1238,19 @@ meta_backend_initable_init (GInitable *initable,
if (!priv->renderer)
return FALSE;
priv->cursor_tracker = meta_backend_create_cursor_tracker (backend);
priv->dnd = meta_dnd_new (backend);
priv->cancellable = g_cancellable_new ();
g_bus_get (G_BUS_TYPE_SYSTEM,
priv->cancellable,
system_bus_gotten_cb,
backend);
if (!init_clutter (backend, error))
return FALSE;
g_signal_connect_object (priv->default_seat, "device-added",
G_CALLBACK (on_device_added), backend, 0);
g_signal_connect_object (priv->default_seat, "device-removed",
G_CALLBACK (on_device_removed), backend,
G_CONNECT_AFTER);
priv->idle_manager = meta_idle_manager_new (backend);
priv->input_mapper = meta_backend_create_input_mapper (backend);
if (META_BACKEND_GET_CLASS (backend)->init_render &&
!META_BACKEND_GET_CLASS (backend)->init_render (backend, error))
return FALSE;
@ -1250,16 +1261,6 @@ meta_backend_initable_init (GInitable *initable,
meta_backend_update_stage (backend);
priv->idle_manager = meta_idle_manager_new (backend);
g_signal_connect_object (priv->default_seat, "device-added",
G_CALLBACK (on_device_added), backend, 0);
g_signal_connect_object (priv->default_seat, "device-removed",
G_CALLBACK (on_device_removed), backend,
G_CONNECT_AFTER);
priv->input_mapper = meta_backend_create_input_mapper (backend);
priv->remote_access_controller =
meta_remote_access_controller_new ();
priv->dbus_session_watcher =