diff options
author | Jon TURNEY <jon.turney@dronecode.org.uk> | 2012-11-06 16:08:24 +0000 |
---|---|---|
committer | Jon TURNEY <jon.turney@dronecode.org.uk> | 2015-02-08 17:39:42 +0000 |
commit | b3874dd93d8876852a9c3187c22cdcbb4839bedf (patch) | |
tree | 5bffdbc5ffd4f35071bc9be9239e40246551fe6e /mi/miscrinit.c | |
parent | 8a491e36b7da65d782fb7e003a7d49e4a4721366 (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.c | 1 |
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; |