From f9c8248b8326ad01f33f31531c6b2479baf80f02 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Wed, 9 Jan 2013 14:23:57 +1000 Subject: [PATCH] randr: don't directly set changed bits in randr screen Introduce a wrapper interface so we can fix things up for multi-gpu situations later. This just introduces the API for now. Reviewed-by: Peter Hutterer Signed-off-by: Dave Airlie --- randr/randr.c | 8 ++++++++ randr/randrstr.h | 4 ++++ randr/rrcrtc.c | 2 +- randr/rrinfo.c | 2 +- randr/rroutput.c | 2 +- randr/rrscreen.c | 2 +- 6 files changed, 16 insertions(+), 4 deletions(-) diff --git a/randr/randr.c b/randr/randr.c index f0decfc..11f88b2 100644 --- a/randr/randr.c +++ b/randr/randr.c @@ -464,6 +464,14 @@ TellChanged(WindowPtr pWin, pointer value) return WT_WALKCHILDREN; } +void +RRSetChanged(ScreenPtr pScreen) +{ + rrScrPriv(pScreen); + + pScrPriv->changed = TRUE; +} + /* * Something changed; send events and adjust pointer position */ diff --git a/randr/randrstr.h b/randr/randrstr.h index 2517479..2babfed 100644 --- a/randr/randrstr.h +++ b/randr/randrstr.h @@ -486,6 +486,10 @@ extern _X_EXPORT void RRDeliverScreenEvent(ClientPtr client, WindowPtr pWin, ScreenPtr pScreen); /* randr.c */ +/* set a screen change on the primary screen */ +extern _X_EXPORT void +RRSetChanged(ScreenPtr pScreen); + /* * Send all pending events */ diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c index 721b05a..2f76b62 100644 --- a/randr/rrcrtc.c +++ b/randr/rrcrtc.c @@ -39,7 +39,7 @@ RRCrtcChanged(RRCrtcPtr crtc, Bool layoutChanged) if (pScreen) { rrScrPriv(pScreen); - pScrPriv->changed = TRUE; + RRSetChanged(pScreen); /* * Send ConfigureNotify on any layout change */ diff --git a/randr/rrinfo.c b/randr/rrinfo.c index 1408d6f..fc57bd4 100644 --- a/randr/rrinfo.c +++ b/randr/rrinfo.c @@ -225,7 +225,7 @@ RRScreenSetSizeRange(ScreenPtr pScreen, pScrPriv->minHeight = minHeight; pScrPriv->maxWidth = maxWidth; pScrPriv->maxHeight = maxHeight; - pScrPriv->changed = TRUE; + RRSetChanged(pScreen); pScrPriv->configChanged = TRUE; } diff --git a/randr/rroutput.c b/randr/rroutput.c index 88781ba..922d61f 100644 --- a/randr/rroutput.c +++ b/randr/rroutput.c @@ -36,7 +36,7 @@ RROutputChanged(RROutputPtr output, Bool configChanged) output->changed = TRUE; if (pScreen) { rrScrPriv(pScreen); - pScrPriv->changed = TRUE; + RRSetChanged(pScreen); if (configChanged) pScrPriv->configChanged = TRUE; } diff --git a/randr/rrscreen.c b/randr/rrscreen.c index 39340cc..36179ae 100644 --- a/randr/rrscreen.c +++ b/randr/rrscreen.c @@ -143,7 +143,7 @@ RRScreenSizeNotify(ScreenPtr pScreen) pScrPriv->height = pScreen->height; pScrPriv->mmWidth = pScreen->mmWidth; pScrPriv->mmHeight = pScreen->mmHeight; - pScrPriv->changed = TRUE; + RRSetChanged(pScreen); /* pScrPriv->sizeChanged = TRUE; */ RRTellChanged(pScreen); -- 2.7.4