[gnome-flashback] backends: add GError parameter to create_monitor_manager
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-flashback] backends: add GError parameter to create_monitor_manager
- Date: Mon, 15 Jul 2019 11:52:51 +0000 (UTC)
commit ec25e0d7f87432e096433099a0bee30879185cd2
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date: Sun Jul 7 12:05:26 2019 +0300
backends: add GError parameter to create_monitor_manager
Based on mutter commit:
https://gitlab.gnome.org/GNOME/mutter/commit/16a6aef5a7a79f189701
backends/gf-backend-native.c | 12 +++++++-----
backends/gf-backend-private.h | 7 ++++---
backends/gf-backend-x11-cm.c | 5 +++--
backends/gf-backend-x11-nested.c | 5 +++--
backends/gf-backend.c | 11 +++++++----
backends/gf-monitor-manager-kms.c | 24 ++++++++++++++++++++++--
6 files changed, 46 insertions(+), 18 deletions(-)
---
diff --git a/backends/gf-backend-native.c b/backends/gf-backend-native.c
index a1e4591..b09cbb0 100644
--- a/backends/gf-backend-native.c
+++ b/backends/gf-backend-native.c
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2014 Red Hat
- * Copyright (C) 2017 Alberts Muktupāvels
+ * Copyright (C) 2017-2019 Alberts Muktupāvels
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -41,11 +41,13 @@ gf_backend_native_post_init (GfBackend *backend)
}
static GfMonitorManager *
-gf_backend_native_create_monitor_manager (GfBackend *backend)
+gf_backend_native_create_monitor_manager (GfBackend *backend,
+ GError **error)
{
- return g_object_new (GF_TYPE_MONITOR_MANAGER_KMS,
- "backend", backend,
- NULL);
+ return g_initable_new (GF_TYPE_MONITOR_MANAGER_KMS,
+ NULL, error,
+ "backend", backend,
+ NULL);
}
static void
diff --git a/backends/gf-backend-private.h b/backends/gf-backend-private.h
index febfb07..5bfa1df 100644
--- a/backends/gf-backend-private.h
+++ b/backends/gf-backend-private.h
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2014 Red Hat
- * Copyright (C) 2017 Alberts Muktupāvels
+ * Copyright (C) 2017-2019 Alberts Muktupāvels
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -37,9 +37,10 @@ struct _GfBackendClass
{
GObjectClass parent_class;
- void (* post_init) (GfBackend *backend);
+ void (* post_init) (GfBackend *backend);
- GfMonitorManager * (* create_monitor_manager) (GfBackend *backend);
+ GfMonitorManager * (* create_monitor_manager) (GfBackend *backend,
+ GError **error);
};
GfOrientationManager *gf_backend_get_orientation_manager (GfBackend *backend);
diff --git a/backends/gf-backend-x11-cm.c b/backends/gf-backend-x11-cm.c
index b1017f4..ed8aada 100644
--- a/backends/gf-backend-x11-cm.c
+++ b/backends/gf-backend-x11-cm.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2017 Alberts Muktupāvels
+ * Copyright (C) 2017-2019 Alberts Muktupāvels
* Copyright (C) 2017 Red Hat
*
* This program is free software: you can redistribute it and/or modify
@@ -31,7 +31,8 @@ struct _GfBackendX11Cm
G_DEFINE_TYPE (GfBackendX11Cm, gf_backend_x11_cm, GF_TYPE_BACKEND_X11)
static GfMonitorManager *
-gf_backend_x11_cm_create_monitor_manager (GfBackend *backend)
+gf_backend_x11_cm_create_monitor_manager (GfBackend *backend,
+ GError **error)
{
return g_object_new (GF_TYPE_MONITOR_MANAGER_XRANDR,
"backend", backend,
diff --git a/backends/gf-backend-x11-nested.c b/backends/gf-backend-x11-nested.c
index 5622083..2252048 100644
--- a/backends/gf-backend-x11-nested.c
+++ b/backends/gf-backend-x11-nested.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2017 Alberts Muktupāvels
+ * Copyright (C) 2017-2019 Alberts Muktupāvels
* Copyright (C) 2017 Red Hat
*
* This program is free software: you can redistribute it and/or modify
@@ -31,7 +31,8 @@ struct _GfBackendX11Nested
G_DEFINE_TYPE (GfBackendX11Nested, gf_backend_x11_nested, GF_TYPE_BACKEND_X11)
static GfMonitorManager *
-gf_backend_x11_nested_create_monitor_manager (GfBackend *backend)
+gf_backend_x11_nested_create_monitor_manager (GfBackend *backend,
+ GError **error)
{
return g_object_new (GF_TYPE_MONITOR_MANAGER_DUMMY,
"backend", backend,
diff --git a/backends/gf-backend.c b/backends/gf-backend.c
index e660a33..81bfeb3 100644
--- a/backends/gf-backend.c
+++ b/backends/gf-backend.c
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2014 Red Hat
- * Copyright (C) 2017 Alberts Muktupāvels
+ * Copyright (C) 2017-2019 Alberts Muktupāvels
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -51,7 +51,8 @@ G_DEFINE_ABSTRACT_TYPE_WITH_CODE (GfBackend, gf_backend, G_TYPE_OBJECT,
initable_iface_init))
static GfMonitorManager *
-create_monitor_manager (GfBackend *backend)
+create_monitor_manager (GfBackend *backend,
+ GError **error)
{
if (g_getenv ("DUMMY_MONITORS"))
{
@@ -60,7 +61,7 @@ create_monitor_manager (GfBackend *backend)
NULL);
}
- return GF_BACKEND_GET_CLASS (backend)->create_monitor_manager (backend);
+ return GF_BACKEND_GET_CLASS (backend)->create_monitor_manager (backend, error);
}
static gboolean
@@ -77,7 +78,9 @@ gf_backend_initable_init (GInitable *initable,
priv->settings = gf_settings_new (backend);
priv->orientation_manager = gf_orientation_manager_new ();
- priv->monitor_manager = create_monitor_manager (backend);
+ priv->monitor_manager = create_monitor_manager (backend, error);
+ if (!priv->monitor_manager)
+ return FALSE;
return TRUE;
}
diff --git a/backends/gf-monitor-manager-kms.c b/backends/gf-monitor-manager-kms.c
index 5c9117b..93db53e 100644
--- a/backends/gf-monitor-manager-kms.c
+++ b/backends/gf-monitor-manager-kms.c
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2013 Red Hat Inc.
- * Copyright (C) 2017 Alberts Muktupāvels
+ * Copyright (C) 2017-2019 Alberts Muktupāvels
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -31,7 +31,27 @@ struct _GfMonitorManagerKms
GfMonitorManager parent;
};
-G_DEFINE_TYPE (GfMonitorManagerKms, gf_monitor_manager_kms, GF_TYPE_MONITOR_MANAGER)
+static void
+initable_iface_init (GInitableIface *initable_iface);
+
+G_DEFINE_TYPE_WITH_CODE (GfMonitorManagerKms, gf_monitor_manager_kms,
+ GF_TYPE_MONITOR_MANAGER,
+ G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE,
+ initable_iface_init))
+
+static gboolean
+gf_monitor_manager_kms_initable_init (GInitable *initable,
+ GCancellable *cancellable,
+ GError **error)
+{
+ return TRUE;
+}
+
+static void
+initable_iface_init (GInitableIface *initable_iface)
+{
+ initable_iface->init = gf_monitor_manager_kms_initable_init;
+}
static void
gf_monitor_manager_kms_read_current (GfMonitorManager *manager)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]