summaryrefslogtreecommitdiff
path: root/src/backends/x11/meta-monitor-manager-xrandr.c
diff options
context:
space:
mode:
authorJonas Ådahl <jadahl@gmail.com>2017-11-03 11:25:30 +0100
committerMarco Trevisan (Treviño) <mail@3v1n0.net>2018-06-28 13:42:15 +0200
commit1200182d706d5144df49a221b26225c729c2a60b (patch)
tree3cd49c989c1eeef62d602a21260b80a2cc00d163 /src/backends/x11/meta-monitor-manager-xrandr.c
parentd9c18fd5bbd6b06453bb06a64eb8b31866d2f963 (diff)
downloadmutter-1200182d706d5144df49a221b26225c729c2a60b.tar.gz
backends: Move MetaOutput::crtc field into private struct
No functional changes. This is only done so that changes to reference counting can done more reliably. https://bugzilla.gnome.org/show_bug.cgi?id=786929
Diffstat (limited to 'src/backends/x11/meta-monitor-manager-xrandr.c')
-rw-r--r--src/backends/x11/meta-monitor-manager-xrandr.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/backends/x11/meta-monitor-manager-xrandr.c b/src/backends/x11/meta-monitor-manager-xrandr.c
index dbe3e4e3b..e438d8f98 100644
--- a/src/backends/x11/meta-monitor-manager-xrandr.c
+++ b/src/backends/x11/meta-monitor-manager-xrandr.c
@@ -225,8 +225,10 @@ is_crtc_assignment_changed (MetaCrtc *crtc,
for (j = 0; j < crtc_info->outputs->len; j++)
{
MetaOutput *output = ((MetaOutput**) crtc_info->outputs->pdata)[j];
+ MetaCrtc *assigned_crtc;
- if (output->crtc != crtc)
+ assigned_crtc = meta_output_get_assigned_crtc (output);
+ if (assigned_crtc != crtc)
return TRUE;
}
@@ -243,6 +245,7 @@ is_output_assignment_changed (MetaOutput *output,
MetaOutputInfo **output_infos,
unsigned int n_output_infos)
{
+ MetaCrtc *assigned_crtc;
gboolean output_is_found = FALSE;
unsigned int i;
@@ -265,8 +268,10 @@ is_output_assignment_changed (MetaOutput *output,
output_is_found = TRUE;
}
+ assigned_crtc = meta_output_get_assigned_crtc (output);
+
if (!output_is_found)
- return output->crtc != NULL;
+ return assigned_crtc != NULL;
for (i = 0; i < n_crtc_infos; i++)
{
@@ -279,7 +284,7 @@ is_output_assignment_changed (MetaOutput *output,
((MetaOutput**) crtc_info->outputs->pdata)[j];
if (crtc_info_output == output &&
- crtc_info->crtc == output->crtc)
+ crtc_info->crtc == assigned_crtc)
return FALSE;
}
}
@@ -455,7 +460,7 @@ apply_crtc_assignments (MetaMonitorManager *manager,
output = ((MetaOutput**)crtc_info->outputs->pdata)[j];
output->is_dirty = TRUE;
- output->crtc = crtc;
+ meta_output_assign_crtc (output, crtc);
output_ids[j] = output->winsys_id;
}
@@ -521,7 +526,7 @@ apply_crtc_assignments (MetaMonitorManager *manager,
continue;
}
- output->crtc = NULL;
+ meta_output_unassign_crtc (output);
output->is_primary = FALSE;
}