[mutter] monitor: Add API to compare with old instance
- From: Jonas Ådahl <jadahl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] monitor: Add API to compare with old instance
- Date: Tue, 29 Aug 2017 06:41:41 +0000 (UTC)
commit 3ce3a5a952396e28d3d35d9d5111ccd46de4ac72
Author: Jonas Ådahl <jadahl gmail com>
Date: Wed Jun 21 17:58:46 2017 +0800
monitor: Add API to compare with old instance
When monitors changed, previous monitor instances are defunct, and any
reference holder should drop its reference. Sometimes they will want to
continue having a reference to the same monitor, so add this function
to make it possible to find it.
Currently the output and crtc references are invalid, as they are not
yet reference counted, so this can only look at cached fields.
https://bugzilla.gnome.org/show_bug.cgi?id=784199
src/backends/meta-monitor.c | 12 ++++++++++++
src/backends/meta-monitor.h | 3 +++
2 files changed, 15 insertions(+), 0 deletions(-)
---
diff --git a/src/backends/meta-monitor.c b/src/backends/meta-monitor.c
index f7e23b0..9a15c31 100644
--- a/src/backends/meta-monitor.c
+++ b/src/backends/meta-monitor.c
@@ -248,6 +248,18 @@ meta_monitor_is_laptop_panel (MetaMonitor *monitor)
}
}
+gboolean
+meta_monitor_is_same_as (MetaMonitor *monitor,
+ MetaMonitor *other_monitor)
+{
+ MetaMonitorPrivate *priv =
+ meta_monitor_get_instance_private (monitor);
+ MetaMonitorPrivate *other_priv =
+ meta_monitor_get_instance_private (other_monitor);
+
+ return priv->winsys_id == other_priv->winsys_id;
+}
+
void
meta_monitor_get_current_resolution (MetaMonitor *monitor,
int *width,
diff --git a/src/backends/meta-monitor.h b/src/backends/meta-monitor.h
index 3a6307c..6ca93cd 100644
--- a/src/backends/meta-monitor.h
+++ b/src/backends/meta-monitor.h
@@ -111,6 +111,9 @@ gboolean meta_monitor_is_underscanning (MetaMonitor *monitor);
gboolean meta_monitor_is_laptop_panel (MetaMonitor *monitor);
+gboolean meta_monitor_is_same_as (MetaMonitor *monitor,
+ MetaMonitor *other_monitor);
+
GList * meta_monitor_get_outputs (MetaMonitor *monitor);
void meta_monitor_get_current_resolution (MetaMonitor *monitor,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]