111 lines
3.0 KiB
Diff
111 lines
3.0 KiB
Diff
From 42ca69172c897713295f7c2b471f0e5d072c920b Mon Sep 17 00:00:00 2001
|
|
From: Dave Airlie <airlied@redhat.com>
|
|
Date: Wed, 9 Jan 2013 14:32:47 +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.
|
|
|
|
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
Signed-off-by: Fedora X Ninjas <x@fedoraproject.org>
|
|
---
|
|
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 6e2eca5..b3fb5bd 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);
|
|
--
|
|
1.8.1.4
|
|
|