diff --git a/src/backends/meta-backend.c b/src/backends/meta-backend.c index 3072a3b31..52b8c3c50 100644 --- a/src/backends/meta-backend.c +++ b/src/backends/meta-backend.c @@ -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 =