[mutter] monitor: Add API to compare with old instance



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]