summaryrefslogtreecommitdiff
path: root/mi/miscrinit.c
diff options
context:
space:
mode:
authorJon TURNEY <jon.turney@dronecode.org.uk>2012-11-06 16:08:24 +0000
committerJon TURNEY <jon.turney@dronecode.org.uk>2015-02-08 17:39:42 +0000
commitb3874dd93d8876852a9c3187c22cdcbb4839bedf (patch)
tree5bffdbc5ffd4f35071bc9be9239e40246551fe6e /mi/miscrinit.c
parent8a491e36b7da65d782fb7e003a7d49e4a4721366 (diff)
Add a screen PaintWindow wrapper
Revisit b3415187e92960cbff784108b5a3a8d130dc34c5, which shoves some rootless specific code directly into miPaintWindow. Unfortunately as written, this means that dix mi/libmi (when built with ROOTLESS defined) must be linked into a ddx which links with miext/rootless/librootless, which makes it impossible to build rootless supporting DDX (XWin and XQuartz) and non-rootless supporting DDX (the rest) at the same time. This is a pain when developing for XWin, as you have to re-./configure to check if changes have broken other DDXs, and is also a bit inconvenient for packaging and tinderboxing. Instead, add a way to wrap the PaintWindow function, so DDXs which have the rootless extension can install a wrapper which does the the neccesary checking which rootless needs to do. DDXs which don't support rootless won't install the hook, but the DIX remains compatible with them, so they can be built at the same time. This is kind of reverting part of what e4d11e58ce349dfe6af2f73ff341317f9b39684c "Remove the PaintWindow optimization" did in removing the PaintWindowBackground and PaintWindowBorder hooks, but it doesn't resurrect the problematic optimization which made use of those hooks. See [1] for admission that code as it stands is a horrible hack :-). But some comments in that email make me wonder if this code is in the right place at all. [1] http://lists.macosforge.org/pipermail/xquartz-dev/2009-September/002551.html Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Diffstat (limited to 'mi/miscrinit.c')
-rw-r--r--mi/miscrinit.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/mi/miscrinit.c b/mi/miscrinit.c
index b53c7e41a..b37dd9117 100644
--- a/mi/miscrinit.c
+++ b/mi/miscrinit.c
@@ -249,6 +249,7 @@ miScreenInit(ScreenPtr pScreen, void *pbits, /* pointer to screen bits */
pScreen->ValidateTree = miValidateTree;
pScreen->PostValidateTree = (PostValidateTreeProcPtr) 0;
pScreen->WindowExposures = miWindowExposures;
+ pScreen->PaintWindow = miPaintWindow;
/* CopyWindow */
pScreen->ClearToBackground = miClearToBackground;
pScreen->ClipNotify = (ClipNotifyProcPtr) 0;