[gnome-flashback] backends: use current monitor mode to check whether active
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-flashback] backends: use current monitor mode to check whether active
- Date: Thu, 18 Jul 2019 17:30:00 +0000 (UTC)
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]