[gnome-flashback] backends: keep a pointer to the monitor manager in GfCrtc



commit 8665784caf480c2c54f60100a9948599ed515318
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Wed Jan 24 18:09:10 2018 +0200

    backends: keep a pointer to the monitor manager in GfCrtc
    
    Based on mutter commit:
    https://gitlab.gnome.org/GNOME/mutter/commit/cfee58798e8b

 backends/gf-crtc-private.h           |    5 +++++
 backends/gf-crtc.c                   |    6 ++++++
 backends/gf-monitor-manager-xrandr.c |    1 +
 3 files changed, 12 insertions(+), 0 deletions(-)
---
diff --git a/backends/gf-crtc-private.h b/backends/gf-crtc-private.h
index 5fbd4b2..35d9e57 100644
--- a/backends/gf-crtc-private.h
+++ b/backends/gf-crtc-private.h
@@ -29,6 +29,7 @@
 
 #include "gf-monitor-manager-enums-private.h"
 #include "gf-monitor-manager-types-private.h"
+#include "gf-monitor-manager.h"
 #include "gf-rectangle.h"
 
 G_BEGIN_DECLS
@@ -37,6 +38,8 @@ struct _GfCrtc
 {
   GObject             parent;
 
+  GfMonitorManager   *monitor_manager;
+
   glong               crtc_id;
   GfRectangle         rect;
   GfCrtcMode         *current_mode;
@@ -88,6 +91,8 @@ G_DECLARE_FINAL_TYPE (GfCrtc, gf_crtc, GF, CRTC, GObject)
 #define GF_TYPE_CRTC_MODE (gf_crtc_mode_get_type ())
 G_DECLARE_FINAL_TYPE (GfCrtcMode, gf_crtc_mode, GF, CRTC_MODE, GObject)
 
+GfMonitorManager *gf_crtc_get_monitor_manager (GfCrtc *crtc);
+
 G_END_DECLS
 
 #endif
diff --git a/backends/gf-crtc.c b/backends/gf-crtc.c
index a826a23..4c27329 100644
--- a/backends/gf-crtc.c
+++ b/backends/gf-crtc.c
@@ -48,3 +48,9 @@ static void
 gf_crtc_init (GfCrtc *crtc)
 {
 }
+
+GfMonitorManager *
+gf_crtc_get_monitor_manager (GfCrtc *crtc)
+{
+  return crtc->monitor_manager;
+}
diff --git a/backends/gf-monitor-manager-xrandr.c b/backends/gf-monitor-manager-xrandr.c
index 08d1c3d..f0143ef 100644
--- a/backends/gf-monitor-manager-xrandr.c
+++ b/backends/gf-monitor-manager-xrandr.c
@@ -1624,6 +1624,7 @@ gf_monitor_manager_xrandr_read_current (GfMonitorManager *manager)
       xrandr_crtc = XRRGetCrtcInfo (xrandr->xdisplay, resources, resources->crtcs[i]);
       crtc = g_object_new (GF_TYPE_CRTC, NULL);
 
+      crtc->monitor_manager = manager;
       crtc->crtc_id = resources->crtcs[i];
       crtc->rect.x = xrandr_crtc->x;
       crtc->rect.y = xrandr_crtc->y;


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