Commit 702c0a24 authored by Alberto Milone's avatar Alberto Milone Committed by Adam Jackson

randr: make RROutputChanged change the main protocol screen not the gpu screen

We only set changes on the main protocol screen as, for example
in RRSetChanged() and RRTellChanged(), therefore we should follow
the same logic when reporting that an output changed in
RROutputChanged().

This means that RRTellChanged() will then update the relevant
timestamps also when events come from gpu screens.

[ajax: Fix mixed code and decls]
Reviewed-by: 's avatarDave Airlie <airlied@redhat.com>
Signed-off-by: 's avatarAlberto Milone <alberto.milone@canonical.com>
parent 2092f12a
......@@ -31,15 +31,27 @@ RESTYPE RROutputType;
void
RROutputChanged(RROutputPtr output, Bool configChanged)
{
/* set changed bits on the master screen only */
ScreenPtr pScreen = output->pScreen;
rrScrPrivPtr mastersp;
output->changed = TRUE;
if (pScreen) {
rrScrPriv(pScreen);
RRSetChanged(pScreen);
if (configChanged)
pScrPriv->configChanged = TRUE;
if (!pScreen)
return;
if (pScreen->isGPU) {
ScreenPtr master = pScreen->current_master;
if (!master)
return;
mastersp = rrGetScrPriv(master);
}
else {
mastersp = rrGetScrPriv(pScreen);
}
RRSetChanged(pScreen);
if (configChanged)
mastersp->configChanged = TRUE;
}
/*
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment