diff options
Diffstat (limited to 'xorg-server/randr/randr.c')
-rw-r--r-- | xorg-server/randr/randr.c | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/xorg-server/randr/randr.c b/xorg-server/randr/randr.c index f0decfc6c..cb6fce7cd 100644 --- a/xorg-server/randr/randr.c +++ b/xorg-server/randr/randr.c @@ -464,6 +464,28 @@ TellChanged(WindowPtr pWin, pointer value) return WT_WALKCHILDREN; } +void +RRSetChanged(ScreenPtr pScreen) +{ + /* set changed bits on the master screen only */ + ScreenPtr master; + rrScrPriv(pScreen); + rrScrPrivPtr mastersp; + + if (pScreen->isGPU) { + master = pScreen->current_master; + if (!master) + return; + mastersp = rrGetScrPriv(master); + } + else { + master = pScreen; + mastersp = pScrPriv; + } + + mastersp->changed = TRUE; +} + /* * Something changed; send events and adjust pointer position */ @@ -484,7 +506,7 @@ RRTellChanged(ScreenPtr pScreen) mastersp = pScrPriv; } - if (pScrPriv->changed) { + if (mastersp->changed) { UpdateCurrentTimeIf(); if (mastersp->configChanged) { mastersp->lastConfigTime = currentTime; |