backend: Move constructed to initable_init and init_basic
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4018>
This commit is contained in:
parent
d289ef9434
commit
ad4f0b74d5
@ -761,45 +761,6 @@ upower_vanished (GDBusConnection *connection,
|
||||
g_clear_object (&priv->upower_proxy);
|
||||
}
|
||||
|
||||
static void
|
||||
meta_backend_constructed (GObject *object)
|
||||
{
|
||||
MetaBackend *backend = META_BACKEND (object);
|
||||
MetaBackendPrivate *priv = meta_backend_get_instance_private (backend);
|
||||
MetaBackendClass *backend_class =
|
||||
META_BACKEND_GET_CLASS (backend);
|
||||
|
||||
g_assert (priv->context);
|
||||
|
||||
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
|
||||
|
||||
if (backend_class->is_lid_closed == meta_backend_real_is_lid_closed)
|
||||
{
|
||||
priv->upower_watch_id = g_bus_watch_name (G_BUS_TYPE_SYSTEM,
|
||||
"org.freedesktop.UPower",
|
||||
G_BUS_NAME_WATCHER_FLAGS_NONE,
|
||||
upower_appeared,
|
||||
upower_vanished,
|
||||
backend,
|
||||
NULL);
|
||||
}
|
||||
|
||||
#ifdef HAVE_EGL
|
||||
priv->egl = g_object_new (META_TYPE_EGL, NULL);
|
||||
#endif
|
||||
|
||||
G_OBJECT_CLASS (meta_backend_parent_class)->constructed (object);
|
||||
}
|
||||
|
||||
static void
|
||||
meta_backend_set_property (GObject *object,
|
||||
guint prop_id,
|
||||
@ -849,7 +810,6 @@ meta_backend_class_init (MetaBackendClass *klass)
|
||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||
|
||||
object_class->dispose = meta_backend_dispose;
|
||||
object_class->constructed = meta_backend_constructed;
|
||||
object_class->set_property = meta_backend_set_property;
|
||||
object_class->get_property = meta_backend_get_property;
|
||||
|
||||
@ -1181,6 +1141,35 @@ meta_backend_initable_init (GInitable *initable,
|
||||
|
||||
priv->in_init = TRUE;
|
||||
|
||||
g_assert (priv->context);
|
||||
|
||||
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
|
||||
|
||||
if (META_BACKEND_GET_CLASS (backend)->is_lid_closed ==
|
||||
meta_backend_real_is_lid_closed)
|
||||
{
|
||||
priv->upower_watch_id = g_bus_watch_name (G_BUS_TYPE_SYSTEM,
|
||||
"org.freedesktop.UPower",
|
||||
G_BUS_NAME_WATCHER_FLAGS_NONE,
|
||||
upower_appeared,
|
||||
upower_vanished,
|
||||
backend,
|
||||
NULL);
|
||||
}
|
||||
|
||||
#ifdef HAVE_EGL
|
||||
priv->egl = g_object_new (META_TYPE_EGL, NULL);
|
||||
#endif
|
||||
|
||||
if (META_BACKEND_GET_CLASS (backend)->init_basic &&
|
||||
!META_BACKEND_GET_CLASS (backend)->init_basic (backend, error))
|
||||
return FALSE;
|
||||
|
@ -97,6 +97,29 @@ on_device_added (ClutterSeat *seat,
|
||||
apply_keymap (x11);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
meta_backend_x11_cm_init_basic (MetaBackend *backend,
|
||||
GError **error)
|
||||
{
|
||||
MetaBackendClass *parent_backend_class =
|
||||
META_BACKEND_CLASS (meta_backend_x11_cm_parent_class);
|
||||
MetaBackendX11Cm *x11_cm = META_BACKEND_X11_CM (backend);
|
||||
MetaGpuXrandr *gpu_xrandr;
|
||||
|
||||
if (x11_cm->display_name)
|
||||
g_setenv ("DISPLAY", x11_cm->display_name, TRUE);
|
||||
|
||||
/*
|
||||
* The X server deals with multiple GPUs for us, so we just see what the X
|
||||
* server gives us as one single GPU, even though it may actually be backed
|
||||
* by multiple.
|
||||
*/
|
||||
gpu_xrandr = meta_gpu_xrandr_new (META_BACKEND_X11 (x11_cm));
|
||||
meta_backend_add_gpu (backend, META_GPU (gpu_xrandr));
|
||||
|
||||
return parent_backend_class->init_basic (backend, error);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
meta_backend_x11_cm_init_render (MetaBackend *backend,
|
||||
GError **error)
|
||||
@ -508,30 +531,9 @@ meta_backend_x11_cm_finalize (GObject *object)
|
||||
G_OBJECT_CLASS (meta_backend_x11_cm_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
meta_backend_x11_cm_constructed (GObject *object)
|
||||
{
|
||||
MetaBackendX11Cm *x11_cm = META_BACKEND_X11_CM (object);
|
||||
|
||||
if (x11_cm->display_name)
|
||||
g_setenv ("DISPLAY", x11_cm->display_name, TRUE);
|
||||
|
||||
G_OBJECT_CLASS (meta_backend_x11_cm_parent_class)->constructed (object);
|
||||
}
|
||||
|
||||
static void
|
||||
meta_backend_x11_cm_init (MetaBackendX11Cm *backend_x11_cm)
|
||||
{
|
||||
MetaGpuXrandr *gpu_xrandr;
|
||||
|
||||
/*
|
||||
* The X server deals with multiple GPUs for us, so we just see what the X
|
||||
* server gives us as one single GPU, even though it may actually be backed
|
||||
* by multiple.
|
||||
*/
|
||||
gpu_xrandr = meta_gpu_xrandr_new (META_BACKEND_X11 (backend_x11_cm));
|
||||
meta_backend_add_gpu (META_BACKEND (backend_x11_cm),
|
||||
META_GPU (gpu_xrandr));
|
||||
}
|
||||
|
||||
static void
|
||||
@ -543,8 +545,8 @@ meta_backend_x11_cm_class_init (MetaBackendX11CmClass *klass)
|
||||
|
||||
object_class->set_property = meta_backend_x11_cm_set_property;
|
||||
object_class->finalize = meta_backend_x11_cm_finalize;
|
||||
object_class->constructed = meta_backend_x11_cm_constructed;
|
||||
|
||||
backend_class->init_basic = meta_backend_x11_cm_init_basic;
|
||||
backend_class->init_render = meta_backend_x11_cm_init_render;
|
||||
backend_class->get_capabilities = meta_backend_x11_cm_get_capabilities;
|
||||
backend_class->create_renderer = meta_backend_x11_cm_create_renderer;
|
||||
|
@ -247,16 +247,20 @@ meta_backend_x11_nested_get_capabilities (MetaBackend *backend)
|
||||
return META_BACKEND_CAPABILITY_NONE;
|
||||
}
|
||||
|
||||
static void
|
||||
meta_backend_x11_nested_constructed (GObject *object)
|
||||
static gboolean
|
||||
meta_backend_x11_nested_init_basic (MetaBackend *backend,
|
||||
GError **error)
|
||||
{
|
||||
MetaBackendX11Nested *backend_x11_nested = META_BACKEND_X11_NESTED (object);
|
||||
GObjectClass *parent_class =
|
||||
G_OBJECT_CLASS (meta_backend_x11_nested_parent_class);
|
||||
MetaBackendX11Nested *backend_x11_nested = META_BACKEND_X11_NESTED (backend);
|
||||
MetaBackendClass *parent_backend_class =
|
||||
META_BACKEND_CLASS (meta_backend_x11_nested_parent_class);
|
||||
|
||||
parent_class->constructed (object);
|
||||
if (!parent_backend_class->init_basic (backend, error))
|
||||
return FALSE;
|
||||
|
||||
init_gpus (backend_x11_nested);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
@ -284,9 +288,9 @@ meta_backend_x11_nested_class_init (MetaBackendX11NestedClass *klass)
|
||||
MetaBackendClass *backend_class = META_BACKEND_CLASS (klass);
|
||||
MetaBackendX11Class *backend_x11_class = META_BACKEND_X11_CLASS (klass);
|
||||
|
||||
object_class->constructed = meta_backend_x11_nested_constructed;
|
||||
object_class->dispose = meta_backend_x11_nested_dispose;
|
||||
|
||||
backend_class->init_basic = meta_backend_x11_nested_init_basic;
|
||||
backend_class->get_capabilities = meta_backend_x11_nested_get_capabilities;
|
||||
backend_class->create_renderer = meta_backend_x11_nested_create_renderer;
|
||||
backend_class->create_monitor_manager = meta_backend_x11_nested_create_monitor_manager;
|
||||
|
Loading…
x
Reference in New Issue
Block a user