[gnome-flashback] backends: use current monitor mode to check whether active



commit 21594a6054ad15ef483c6192dc3caff688d59a9b
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Tue Jul 16 21:47:35 2019 +0300

    backends: use current monitor mode to check whether active
    
    Based on mutter commit:
    https://gitlab.gnome.org/GNOME/mutter/commit/4d465eac0806eb1ead37

 backends/gf-monitor.c | 22 +++++++++++++++++-----
 1 file changed, 17 insertions(+), 5 deletions(-)
---
diff --git a/backends/gf-monitor.c b/backends/gf-monitor.c
index e3ad771..b6c52cd 100644
--- a/backends/gf-monitor.c
+++ b/backends/gf-monitor.c
@@ -89,6 +89,18 @@ static GParamSpec *monitor_properties[LAST_PROP] = { NULL };
 
 G_DEFINE_TYPE_WITH_PRIVATE (GfMonitor, gf_monitor, G_TYPE_OBJECT)
 
+static gboolean
+is_current_mode_known (GfMonitor *monitor)
+{
+  GfOutput *output;
+  GfCrtc *crtc;
+
+  output = gf_monitor_get_main_output (monitor);
+  crtc = gf_output_get_assigned_crtc (output);
+
+  return gf_monitor_is_active (monitor) == (crtc && crtc->current_mode);
+}
+
 static gboolean
 gf_monitor_mode_spec_equals (GfMonitorModeSpec *spec,
                              GfMonitorModeSpec *other_spec)
@@ -551,13 +563,11 @@ gf_monitor_get_spec (GfMonitor *monitor)
 gboolean
 gf_monitor_is_active (GfMonitor *monitor)
 {
-  GfOutput *output;
-  GfCrtc *crtc;
+  GfMonitorPrivate *priv;
 
-  output = gf_monitor_get_main_output (monitor);
-  crtc = gf_output_get_assigned_crtc (output);
+  priv = gf_monitor_get_instance_private (monitor);
 
-  return crtc && crtc->current_mode;
+  return !!priv->current_mode;
 }
 
 GfOutput *
@@ -860,6 +870,8 @@ gf_monitor_derive_current_mode (GfMonitor *monitor)
     }
 
   priv->current_mode = current_mode;
+
+  g_warn_if_fail (is_current_mode_known (monitor));
 }
 
 void


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]