[PATCH] Fix XineramaQueryScreens for reverse prime
Dave Airlie
airlied at gmail.com
Mon Feb 8 04:17:05 UTC 2016
On 4 February 2016 at 23:06, Jan Burgmeier
<jan.burgmeier at unicon-software.com> wrote:
> Bugzilla: https://bugs.freedesktop.org/92313
Reviewed-by: Dave Airlie <airlied at redhat.com>
though it might be nice to have some more info from the bug in the
commit message.
> ---
> randr/rrmonitor.c | 6 +++---
> randr/rroutput.c | 12 ++++++++++++
> 2 files changed, 15 insertions(+), 3 deletions(-)
>
> diff --git a/randr/rrmonitor.c b/randr/rrmonitor.c
> index c37dcf8..58041bb 100644
> --- a/randr/rrmonitor.c
> +++ b/randr/rrmonitor.c
> @@ -326,7 +326,7 @@ RRMonitorMakeList(ScreenPtr screen, Bool get_active, RRMonitorPtr *monitors_ret,
> RRMonitorSetFromClient(pScrPriv->monitors[list.client_primary], mon);
> mon++;
> } else if (list.server_primary >= 0) {
> - RRMonitorSetFromServer(pScrPriv->crtcs[list.server_primary], mon);
> + RRMonitorSetFromServer(list.server_crtc[list.server_primary], mon);
> mon++;
> }
>
> @@ -354,8 +354,8 @@ RRMonitorMakeList(ScreenPtr screen, Bool get_active, RRMonitorPtr *monitors_ret,
>
> /* And finish with the list of crtc-inspired monitors
> */
> - for (c = 0; c < pScrPriv->numCrtcs; c++) {
> - RRCrtcPtr crtc = pScrPriv->crtcs[c];
> + for (c = 0; c < list.num_crtcs; c++) {
> + RRCrtcPtr crtc = list.server_crtc[c];
> if (c == list.server_primary && list.client_primary < 0)
> continue;
>
> diff --git a/randr/rroutput.c b/randr/rroutput.c
> index d12b9ba..2ba62fa 100644
> --- a/randr/rroutput.c
> +++ b/randr/rroutput.c
> @@ -543,6 +543,7 @@ ProcRRSetOutputPrimary(ClientPtr client)
> WindowPtr pWin;
> rrScrPrivPtr pScrPriv;
> int ret;
> + ScreenPtr slave;
>
> REQUEST_SIZE_MATCH(xRRSetOutputPrimaryReq);
>
> @@ -565,7 +566,18 @@ ProcRRSetOutputPrimary(ClientPtr client)
>
> pScrPriv = rrGetScrPriv(pWin->drawable.pScreen);
> if (pScrPriv)
> + {
> RRSetPrimaryOutput(pWin->drawable.pScreen, pScrPriv, output);
> +
> + xorg_list_for_each_entry(slave,
> + &pWin->drawable.pScreen->output_slave_list,
> + output_head) {
> + rrScrPrivPtr pSlavePriv;
> + pSlavePriv = rrGetScrPriv(slave);
> +
> + RRSetPrimaryOutput(slave, pSlavePriv, output);
> + }
> + }
>
> return Success;
> }
> --
> 2.7.0
>
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel
More information about the xorg-devel
mailing list