summaryrefslogtreecommitdiff
path: root/src/backends/meta-monitor.c
diff options
context:
space:
mode:
authorJonas Ã…dahl <jadahl@gmail.com>2019-01-11 15:35:42 +0100
committerGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2019-06-20 13:31:55 +0000
commit5c500ad4021941abed48b763048c5d459e068e1c (patch)
treea0b8c77b12a2fd81006722f36933cd95dda5d105 /src/backends/meta-monitor.c
parente7fd068a78c8158800f0ef984707c431e0f8f930 (diff)
downloadmutter-5c500ad4021941abed48b763048c5d459e068e1c.tar.gz
backend: Move GPU ownership from the monitor manager to the backend
Lets work towards making MetaMonitorManager about managing monitors, and not about managing GPUs. This changes other units to keep a pointer to the backend instead of a monitor manager, in case their ownership changed, or their main usage of the monitor manager was to look up GPUs. https://gitlab.gnome.org/GNOME/mutter/issues/548 https://gitlab.gnome.org/GNOME/mutter/merge_requests/525
Diffstat (limited to 'src/backends/meta-monitor.c')
-rw-r--r--src/backends/meta-monitor.c20
1 files changed, 9 insertions, 11 deletions
diff --git a/src/backends/meta-monitor.c b/src/backends/meta-monitor.c
index 5f6c45543..dae40e277 100644
--- a/src/backends/meta-monitor.c
+++ b/src/backends/meta-monitor.c
@@ -90,6 +90,8 @@ struct _MetaMonitorTiled
{
MetaMonitor parent;
+ MetaMonitorManager *monitor_manager;
+
uint32_t tile_group_id;
/* The tile (0, 0) output. */
@@ -1176,10 +1178,10 @@ meta_monitor_tiled_generate_modes (MetaMonitorTiled *monitor_tiled)
}
MetaMonitorTiled *
-meta_monitor_tiled_new (MetaGpu *gpu,
- MetaOutput *output)
+meta_monitor_tiled_new (MetaGpu *gpu,
+ MetaMonitorManager *monitor_manager,
+ MetaOutput *output)
{
- MetaMonitorManager *monitor_manager;
MetaMonitorTiled *monitor_tiled;
MetaMonitor *monitor;
MetaMonitorPrivate *monitor_priv;
@@ -1200,7 +1202,7 @@ meta_monitor_tiled_new (MetaGpu *gpu,
meta_monitor_generate_spec (monitor);
- monitor_manager = meta_gpu_get_monitor_manager (gpu);
+ monitor_tiled->monitor_manager = monitor_manager;
meta_monitor_manager_tiled_monitor_added (monitor_manager,
META_MONITOR (monitor_tiled));
@@ -1286,14 +1288,10 @@ meta_monitor_tiled_calculate_crtc_pos (MetaMonitor *monitor,
static void
meta_monitor_tiled_finalize (GObject *object)
{
- MetaMonitor *monitor = META_MONITOR (object);
- MetaMonitorPrivate *monitor_priv =
- meta_monitor_get_instance_private (monitor);
- MetaMonitorManager *monitor_manager;
+ MetaMonitorTiled *monitor_tiled = META_MONITOR_TILED (object);
- monitor_manager = meta_gpu_get_monitor_manager (monitor_priv->gpu);
- meta_monitor_manager_tiled_monitor_removed (monitor_manager,
- monitor);
+ meta_monitor_manager_tiled_monitor_removed (monitor_tiled->monitor_manager,
+ META_MONITOR (monitor_tiled));
G_OBJECT_CLASS (meta_monitor_tiled_parent_class)->finalize (object);
}