diff options
author | Keith Packard <keithp@keithp.com> | 2012-03-21 12:55:09 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2012-03-21 13:54:42 -0700 |
commit | 9838b7032ea9792bec21af424c53c07078636d21 (patch) | |
tree | b72d0827dac50f0f3b8eab29b3b7639546d735d7 /miext/rootless | |
parent | 75199129c603fc8567185ac31866c9518193cb78 (diff) |
Introduce a consistent coding style
This is strictly the application of the script 'x-indent-all.sh'
from util/modular. Compared to the patch that Daniel posted in
January, I've added a few indent flags:
-bap
-psl
-T PrivatePtr
-T pmWait
-T _XFUNCPROTOBEGIN
-T _XFUNCPROTOEND
-T _X_EXPORT
The typedefs were needed to make the output of sdksyms.sh match the
previous output, otherwise, the code is formatted badly enough that
sdksyms.sh generates incorrect output.
The generated code was compared with the previous version and found to
be essentially identical -- "assert" line numbers and BUILD_TIME were
the only differences found.
The comparison was done with this script:
dir1=$1
dir2=$2
for dir in $dir1 $dir2; do
(cd $dir && find . -name '*.o' | while read file; do
dir=`dirname $file`
base=`basename $file .o`
dump=$dir/$base.dump
objdump -d $file > $dump
done)
done
find $dir1 -name '*.dump' | while read dump; do
otherdump=`echo $dump | sed "s;$dir1;$dir2;"`
diff -u $dump $otherdump
done
Signed-off-by: Keith Packard <keithp@keithp.com>
Acked-by: Daniel Stone <daniel@fooishbar.org>
Acked-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Diffstat (limited to 'miext/rootless')
-rw-r--r-- | miext/rootless/rootless.h | 81 | ||||
-rw-r--r-- | miext/rootless/rootlessCommon.c | 188 | ||||
-rw-r--r-- | miext/rootless/rootlessCommon.h | 46 | ||||
-rw-r--r-- | miext/rootless/rootlessConfig.h | 22 | ||||
-rw-r--r-- | miext/rootless/rootlessGC.c | 427 | ||||
-rw-r--r-- | miext/rootless/rootlessScreen.c | 233 | ||||
-rw-r--r-- | miext/rootless/rootlessValTree.c | 589 | ||||
-rw-r--r-- | miext/rootless/rootlessWindow.c | 387 | ||||
-rw-r--r-- | miext/rootless/rootlessWindow.h | 15 |
9 files changed, 992 insertions, 996 deletions
diff --git a/miext/rootless/rootless.h b/miext/rootless/rootless.h index 3d4a1b077..a3f38b633 100644 --- a/miext/rootless/rootless.h +++ b/miext/rootless/rootless.h @@ -44,7 +44,7 @@ on-screen window. The physical window is refered to as a "frame". */ -typedef void * RootlessFrameID; +typedef void *RootlessFrameID; /* * RootlessWindowRec @@ -59,8 +59,8 @@ typedef struct _RootlessWindowRec { unsigned int borderWidth; int level; - RootlessFrameID wid; // implementation specific frame id - WindowPtr win; // underlying X window + RootlessFrameID wid; // implementation specific frame id + WindowPtr win; // underlying X window // Valid only when drawing (ie. is_drawing is set) char *pixelData; @@ -68,13 +68,12 @@ typedef struct _RootlessWindowRec { PixmapPtr pixmap; - unsigned int is_drawing :1; // Currently drawing? - unsigned int is_reorder_pending :1; - unsigned int is_offscreen :1; - unsigned int is_obscured :1; + unsigned int is_drawing:1; // Currently drawing? + unsigned int is_reorder_pending:1; + unsigned int is_offscreen:1; + unsigned int is_obscured:1; } RootlessWindowRec, *RootlessWindowPtr; - /* Offset for screen-local to global coordinate transforms */ extern int rootlessGlobalOffsetX; extern int rootlessGlobalOffsetY; @@ -86,14 +85,13 @@ extern unsigned int rootless_CopyWindow_threshold; /* Gravity for window contents during resizing */ enum rl_gravity_enum { - RL_GRAVITY_NONE = 0, /* no gravity, fill everything */ - RL_GRAVITY_NORTH_WEST = 1, /* anchor to top-left corner */ - RL_GRAVITY_NORTH_EAST = 2, /* anchor to top-right corner */ - RL_GRAVITY_SOUTH_EAST = 3, /* anchor to bottom-right corner */ - RL_GRAVITY_SOUTH_WEST = 4, /* anchor to bottom-left corner */ + RL_GRAVITY_NONE = 0, /* no gravity, fill everything */ + RL_GRAVITY_NORTH_WEST = 1, /* anchor to top-left corner */ + RL_GRAVITY_NORTH_EAST = 2, /* anchor to top-right corner */ + RL_GRAVITY_SOUTH_EAST = 3, /* anchor to bottom-right corner */ + RL_GRAVITY_SOUTH_WEST = 4, /* anchor to bottom-left corner */ }; - /*------------------------------------------ Rootless Implementation Functions ------------------------------------------*/ @@ -111,8 +109,8 @@ enum rl_gravity_enum { * unshaped frames. */ typedef Bool (*RootlessCreateFrameProc) - (RootlessWindowPtr pFrame, ScreenPtr pScreen, int newX, int newY, - RegionPtr pNewShape); + (RootlessWindowPtr pFrame, ScreenPtr pScreen, int newX, int newY, + RegionPtr pNewShape); /* * Destroy a frame. @@ -121,7 +119,7 @@ typedef Bool (*RootlessCreateFrameProc) * wid Frame id */ typedef void (*RootlessDestroyFrameProc) - (RootlessFrameID wid); + (RootlessFrameID wid); /* * Move a frame on screen. @@ -131,8 +129,8 @@ typedef void (*RootlessDestroyFrameProc) * pScreen Screen to move the new frame to * newX, newY New position of the frame */ -typedef void (*RootlessMoveFrameProc) - (RootlessFrameID wid, ScreenPtr pScreen, int newX, int newY); +typedef void (*RootlessMoveFrameProc) + (RootlessFrameID wid, ScreenPtr pScreen, int newX, int newY); /* * Resize and move a frame. @@ -146,9 +144,9 @@ typedef void (*RootlessMoveFrameProc) * RL_GRAVITY_NONE unless ROOTLESS_RESIZE_GRAVITY is set. */ typedef void (*RootlessResizeFrameProc) - (RootlessFrameID wid, ScreenPtr pScreen, - int newX, int newY, unsigned int newW, unsigned int newH, - unsigned int gravity); + (RootlessFrameID wid, ScreenPtr pScreen, + int newX, int newY, unsigned int newW, unsigned int newH, + unsigned int gravity); /* * Change frame ordering (AKA stacking, layering). @@ -160,7 +158,7 @@ typedef void (*RootlessResizeFrameProc) * frame is at the top. */ typedef void (*RootlessRestackFrameProc) - (RootlessFrameID wid, RootlessFrameID nextWid); + (RootlessFrameID wid, RootlessFrameID nextWid); /* * Change frame's shape. @@ -171,7 +169,7 @@ typedef void (*RootlessRestackFrameProc) * or NULL if now unshaped. */ typedef void (*RootlessReshapeFrameProc) - (RootlessFrameID wid, RegionPtr pNewShape); + (RootlessFrameID wid, RegionPtr pNewShape); /* * Unmap a frame. @@ -179,7 +177,7 @@ typedef void (*RootlessReshapeFrameProc) * wid Frame id */ typedef void (*RootlessUnmapFrameProc) - (RootlessFrameID wid); + (RootlessFrameID wid); /* * Start drawing to a frame. @@ -190,7 +188,7 @@ typedef void (*RootlessUnmapFrameProc) * bytesPerRow Width in bytes of the backing buffer (returned) */ typedef void (*RootlessStartDrawingProc) - (RootlessFrameID wid, char **pixelData, int *bytesPerRow); + (RootlessFrameID wid, char **pixelData, int *bytesPerRow); /* * Stop drawing to a frame. @@ -201,7 +199,7 @@ typedef void (*RootlessStartDrawingProc) * flush Flush drawing updates for this frame to the screen. */ typedef void (*RootlessStopDrawingProc) - (RootlessFrameID wid, Bool flush); + (RootlessFrameID wid, Bool flush); /* * Flush drawing updates to the screen. @@ -212,7 +210,7 @@ typedef void (*RootlessStopDrawingProc) * coordinates. This is clipped to the window's clip. */ typedef void (*RootlessUpdateRegionProc) - (RootlessFrameID wid, RegionPtr pDamage); + (RootlessFrameID wid, RegionPtr pDamage); /* * Mark damaged rectangles as requiring redisplay to screen. @@ -224,8 +222,8 @@ typedef void (*RootlessUpdateRegionProc) * shift_y */ typedef void (*RootlessDamageRectsProc) - (RootlessFrameID wid, int nrects, const BoxRec *rects, - int shift_x, int shift_y); + (RootlessFrameID wid, int nrects, const BoxRec * rects, + int shift_x, int shift_y); /* * Switch the window associated with a frame. (Optional) @@ -237,7 +235,7 @@ typedef void (*RootlessDamageRectsProc) * oldWin Previous window wrapped by this frame */ typedef void (*RootlessSwitchWindowProc) - (RootlessWindowPtr pFrame, WindowPtr oldWin); + (RootlessWindowPtr pFrame, WindowPtr oldWin); /* * Check if window should be reordered. (Optional) @@ -251,7 +249,7 @@ typedef void (*RootlessSwitchWindowProc) * pFrame Frame to reorder */ typedef Bool (*RootlessDoReorderWindowProc) - (RootlessWindowPtr pFrame); + (RootlessWindowPtr pFrame); /* * Copy bytes. (Optional) @@ -265,9 +263,9 @@ typedef Bool (*RootlessDoReorderWindowProc) * dstRowBytes Width of destination in bytes */ typedef void (*RootlessCopyBytesProc) - (unsigned int width, unsigned int height, - const void *src, unsigned int srcRowBytes, - void *dst, unsigned int dstRowBytes); + (unsigned int width, unsigned int height, + const void *src, unsigned int srcRowBytes, + void *dst, unsigned int dstRowBytes); /* * Copy area in frame to another part of frame. (Optional) @@ -278,15 +276,13 @@ typedef void (*RootlessCopyBytesProc) * dx, dy Number of pixels away to copy area */ typedef void (*RootlessCopyWindowProc) - (RootlessFrameID wid, int dstNrects, const BoxRec *dstRects, - int dx, int dy); - + (RootlessFrameID wid, int dstNrects, const BoxRec * dstRects, int dx, int dy); typedef void (*RootlessHideWindowProc) - (RootlessFrameID wid); + (RootlessFrameID wid); typedef void (*RootlessUpdateColormapProc) - (RootlessFrameID wid, ScreenPtr pScreen); + (RootlessFrameID wid, ScreenPtr pScreen); /* * Rootless implementation function list @@ -317,7 +313,6 @@ typedef struct _RootlessFrameProcs { RootlessCopyWindowProc CopyWindow; } RootlessFrameProcsRec, *RootlessFrameProcsPtr; - /* * Initialize rootless mode on the given screen. */ @@ -364,5 +359,5 @@ void RootlessRepositionWindows(ScreenPtr pScreen); /* * Bring all windows to the front of the native stack */ -void RootlessOrderAllWindows (Bool include_unhitable); -#endif /* _ROOTLESS_H */ +void RootlessOrderAllWindows(Bool include_unhitable); +#endif /* _ROOTLESS_H */ diff --git a/miext/rootless/rootlessCommon.c b/miext/rootless/rootlessCommon.c index 861e8e858..d8f43bd1b 100644 --- a/miext/rootless/rootlessCommon.c +++ b/miext/rootless/rootlessCommon.c @@ -33,8 +33,8 @@ #include <dix-config.h> #endif -#include <stddef.h> /* For NULL */ -#include <limits.h> /* For CHAR_BIT */ +#include <stddef.h> /* For NULL */ +#include <limits.h> /* For CHAR_BIT */ #include "rootlessCommon.h" #include "colormapst.h" @@ -44,7 +44,7 @@ unsigned int rootless_CopyWindow_threshold = 0; int rootlessGlobalOffsetX = 0; int rootlessGlobalOffsetY = 0; -RegionRec rootlessHugeRoot = {{-32767, -32767, 32767, 32767}, NULL}; +RegionRec rootlessHugeRoot = { {-32767, -32767, 32767, 32767}, NULL }; /* Following macro from miregion.c */ @@ -55,7 +55,6 @@ RegionRec rootlessHugeRoot = {{-32767, -32767, 32767, 32767}, NULL}; ((r1)->y2 <= (r2)->y1) || \ ((r1)->y1 >= (r2)->y2) ) ) - /* * TopLevelParent * Returns the top-level parent of pWindow. @@ -71,13 +70,12 @@ TopLevelParent(WindowPtr pWindow) return pWindow; top = pWindow; - while (top && ! IsTopLevel(top)) + while (top && !IsTopLevel(top)) top = top->parent; return top; } - /* * IsFramedWindow * Returns TRUE if this window is visible inside a frame @@ -99,48 +97,51 @@ IsFramedWindow(WindowPtr pWin) } Bool -RootlessResolveColormap (ScreenPtr pScreen, int first_color, - int n_colors, uint32_t *colors) +RootlessResolveColormap(ScreenPtr pScreen, int first_color, + int n_colors, uint32_t * colors) { - int last, i; - ColormapPtr map; - - map = RootlessGetColormap (pScreen); - if (map == NULL || map->class != PseudoColor) return FALSE; - - last = min (map->pVisual->ColormapEntries, first_color + n_colors); - for (i = max (0, first_color); i < last; i++) { - Entry *ent = map->red + i; - uint16_t red, green, blue; - - if (!ent->refcnt) continue; - if (ent->fShared) { - red = ent->co.shco.red->color; - green = ent->co.shco.green->color; - blue = ent->co.shco.blue->color; - } else { - red = ent->co.local.red; - green = ent->co.local.green; - blue = ent->co.local.blue; - } - - colors[i - first_color] = (0xFF000000UL - | ((uint32_t) red & 0xff00) << 8 - | (green & 0xff00) - | (blue >> 8)); + int last, i; + ColormapPtr map; + + map = RootlessGetColormap(pScreen); + if (map == NULL || map->class != PseudoColor) + return FALSE; + + last = min(map->pVisual->ColormapEntries, first_color + n_colors); + for (i = max(0, first_color); i < last; i++) { + Entry *ent = map->red + i; + uint16_t red, green, blue; + + if (!ent->refcnt) + continue; + if (ent->fShared) { + red = ent->co.shco.red->color; + green = ent->co.shco.green->color; + blue = ent->co.shco.blue->color; + } + else { + red = ent->co.local.red; + green = ent->co.local.green; + blue = ent->co.local.blue; + } + + colors[i - first_color] = (0xFF000000UL + | ((uint32_t) red & 0xff00) << 8 + | (green & 0xff00) + | (blue >> 8)); } - return TRUE; + return TRUE; } - /* * RootlessStartDrawing * Prepare a window for direct access to its backing buffer. * Each top-level parent has a Pixmap representing its backing buffer, * which all of its children inherit. */ -void RootlessStartDrawing(WindowPtr pWindow) +void +RootlessStartDrawing(WindowPtr pWindow) { ScreenPtr pScreen = pWindow->drawable.pScreen; WindowPtr top = TopLevelParent(pWindow); @@ -164,8 +165,7 @@ void RootlessStartDrawing(WindowPtr pWindow) GetScratchPixmapHeader(pScreen, winRec->width, winRec->height, top->drawable.depth, top->drawable.bitsPerPixel, - winRec->bytesPerRow, - winRec->pixelData); + winRec->bytesPerRow, winRec->pixelData); SetPixmapBaseToScreen(winRec->pixmap, top->drawable.x - bw, top->drawable.y - bw); @@ -173,55 +173,67 @@ void RootlessStartDrawing(WindowPtr pWindow) } curPixmap = pScreen->GetWindowPixmap(pWindow); - if (curPixmap == winRec->pixmap) - { - RL_DEBUG_MSG("Window %p already has winRec->pixmap %p; not pushing\n", pWindow, winRec->pixmap); + if (curPixmap == winRec->pixmap) { + RL_DEBUG_MSG("Window %p already has winRec->pixmap %p; not pushing\n", + pWindow, winRec->pixmap); } - else - { - PixmapPtr oldPixmap = dixLookupPrivate(&pWindow->devPrivates, rootlessWindowOldPixmapPrivateKey); - if (oldPixmap != NULL) - { + else { + PixmapPtr oldPixmap = + dixLookupPrivate(&pWindow->devPrivates, + rootlessWindowOldPixmapPrivateKey); + if (oldPixmap != NULL) { if (oldPixmap == curPixmap) - RL_DEBUG_MSG("Window %p's curPixmap %p is the same as its oldPixmap; strange\n", pWindow, curPixmap); + RL_DEBUG_MSG + ("Window %p's curPixmap %p is the same as its oldPixmap; strange\n", + pWindow, curPixmap); else - RL_DEBUG_MSG("Window %p's existing oldPixmap %p being lost!\n", pWindow, oldPixmap); + RL_DEBUG_MSG("Window %p's existing oldPixmap %p being lost!\n", + pWindow, oldPixmap); } - dixSetPrivate(&pWindow->devPrivates, rootlessWindowOldPixmapPrivateKey, curPixmap); + dixSetPrivate(&pWindow->devPrivates, rootlessWindowOldPixmapPrivateKey, + curPixmap); pScreen->SetWindowPixmap(pWindow, winRec->pixmap); } } - /* * RootlessStopDrawing * Stop drawing to a window's backing buffer. If flush is true, * damaged regions are flushed to the screen. */ -static int RestorePreDrawingPixmapVisitor(WindowPtr pWindow, pointer data) +static int +RestorePreDrawingPixmapVisitor(WindowPtr pWindow, pointer data) { - RootlessWindowRec *winRec = (RootlessWindowRec*)data; + RootlessWindowRec *winRec = (RootlessWindowRec *) data; ScreenPtr pScreen = pWindow->drawable.pScreen; PixmapPtr exPixmap = pScreen->GetWindowPixmap(pWindow); - PixmapPtr oldPixmap = dixLookupPrivate(&pWindow->devPrivates, rootlessWindowOldPixmapPrivateKey); - if (oldPixmap == NULL) - { + PixmapPtr oldPixmap = + dixLookupPrivate(&pWindow->devPrivates, + rootlessWindowOldPixmapPrivateKey); + if (oldPixmap == NULL) { if (exPixmap == winRec->pixmap) - RL_DEBUG_MSG("Window %p appears to be in drawing mode (ex-pixmap %p equals winRec->pixmap, which is being freed) but has no oldPixmap!\n", pWindow, exPixmap); + RL_DEBUG_MSG + ("Window %p appears to be in drawing mode (ex-pixmap %p equals winRec->pixmap, which is being freed) but has no oldPixmap!\n", + pWindow, exPixmap); } - else - { + else { if (exPixmap != winRec->pixmap) - RL_DEBUG_MSG("Window %p appears to be in drawing mode (oldPixmap %p) but ex-pixmap %p not winRec->pixmap %p!\n", pWindow, oldPixmap, exPixmap, winRec->pixmap); + RL_DEBUG_MSG + ("Window %p appears to be in drawing mode (oldPixmap %p) but ex-pixmap %p not winRec->pixmap %p!\n", + pWindow, oldPixmap, exPixmap, winRec->pixmap); if (oldPixmap == winRec->pixmap) - RL_DEBUG_MSG("Window %p's oldPixmap %p is winRec->pixmap, which has just been freed!\n", pWindow, oldPixmap); + RL_DEBUG_MSG + ("Window %p's oldPixmap %p is winRec->pixmap, which has just been freed!\n", + pWindow, oldPixmap); pScreen->SetWindowPixmap(pWindow, oldPixmap); - dixSetPrivate(&pWindow->devPrivates, rootlessWindowOldPixmapPrivateKey, NULL); + dixSetPrivate(&pWindow->devPrivates, rootlessWindowOldPixmapPrivateKey, + NULL); } return WT_WALKCHILDREN; } -void RootlessStopDrawing(WindowPtr pWindow, Bool flush) +void +RootlessStopDrawing(WindowPtr pWindow, Bool flush) { ScreenPtr pScreen = pWindow->drawable.pScreen; WindowPtr top = TopLevelParent(pWindow); @@ -237,7 +249,7 @@ void RootlessStopDrawing(WindowPtr pWindow, Bool flush) SCREENREC(pScreen)->imp->StopDrawing(winRec->wid, flush); FreeScratchPixmapHeader(winRec->pixmap); - TraverseTree(top, RestorePreDrawingPixmapVisitor, (pointer)winRec); + TraverseTree(top, RestorePreDrawingPixmapVisitor, (pointer) winRec); winRec->pixmap = NULL; winRec->is_drawing = FALSE; @@ -252,7 +264,6 @@ void RootlessStopDrawing(WindowPtr pWindow, Bool flush) } } - /* * RootlessDamageRegion * Mark a damaged region as requiring redisplay to screen. @@ -296,16 +307,20 @@ RootlessDamageRegion(WindowPtr pWindow, RegionPtr pRegion) /* Damaged region only has a single rect, so we can just compare that against the region */ - in = RegionContainsRect(&pWindow->borderClip, - RegionRects (pRegion)); + in = RegionContainsRect(&pWindow->borderClip, RegionRects(pRegion)); if (in == rgnIN) { - /* clip totally contains pRegion */ - - SCREENREC(pWindow->drawable.pScreen)->imp-> - DamageRects(winRec->wid, - RegionNumRects(pRegion), - RegionRects(pRegion), - -winRec->x, -winRec->y); + /* clip totally contains pRegion */ + + SCREENREC(pWindow->drawable.pScreen)->imp->DamageRects(winRec-> + wid, + RegionNumRects + (pRegion), + RegionRects + (pRegion), + -winRec-> + x, + -winRec-> + y); RootlessQueueRedisplay(pTop->drawable.pScreen); goto out; @@ -322,24 +337,26 @@ RootlessDamageRegion(WindowPtr pWindow, RegionPtr pRegion) RegionNull(&clipped); RegionIntersect(&clipped, &pWindow->borderClip, pRegion); - SCREENREC(pWindow->drawable.pScreen)->imp-> - DamageRects(winRec->wid, - RegionNumRects(&clipped), - RegionRects(&clipped), - -winRec->x, -winRec->y); + SCREENREC(pWindow->drawable.pScreen)->imp->DamageRects(winRec->wid, + RegionNumRects + (&clipped), + RegionRects + (&clipped), + -winRec->x, + -winRec->y); RegionUninit(&clipped); RootlessQueueRedisplay(pTop->drawable.pScreen); } -out: + out: #ifdef ROOTLESSDEBUG { BoxRec *box = RegionRects(pRegion), *end; int numBox = RegionNumRects(pRegion); - for (end = box+numBox; box < end; box++) { + for (end = box + numBox; box < end; box++) { RL_DEBUG_MSG("Damage rect: %i, %i, %i, %i\n", box->x1, box->x2, box->y1, box->y2); } @@ -348,7 +365,6 @@ out: return; } - /* * RootlessDamageBox * Mark a damaged box as requiring redisplay to screen. @@ -363,10 +379,9 @@ RootlessDamageBox(WindowPtr pWindow, BoxPtr pBox) RootlessDamageRegion(pWindow, ®ion); - RegionUninit(®ion); /* no-op */ + RegionUninit(®ion); /* no-op */ } - /* * RootlessDamageRect * Mark a damaged rectangle as requiring redisplay to screen. @@ -390,10 +405,9 @@ RootlessDamageRect(WindowPtr pWindow, int x, int y, int w, int h) RootlessDamageRegion(pWindow, ®ion); - RegionUninit(®ion); /* no-op */ + RegionUninit(®ion); /* no-op */ } - /* * RootlessRedisplay * Stop drawing and redisplay the damaged region of a window. @@ -404,7 +418,6 @@ RootlessRedisplay(WindowPtr pWindow) RootlessStopDrawing(pWindow, TRUE); } - /* * RootlessRepositionWindows * Reposition all windows on a screen to their correct positions. @@ -425,7 +438,6 @@ RootlessRepositionWindows(ScreenPtr pScreen) } } - /* * RootlessRedisplayScreen * Walk every window on a screen and redisplay the damaged regions. diff --git a/miext/rootless/rootlessCommon.h b/miext/rootless/rootlessCommon.h index 6faf1febd..fd9c941f4 100644 --- a/miext/rootless/rootlessCommon.h +++ b/miext/rootless/rootlessCommon.h @@ -44,7 +44,6 @@ #include "picturestr.h" - // Debug output, or not. #ifdef ROOTLESSDEBUG #define RL_DEBUG_MSG ErrorF @@ -52,20 +51,22 @@ #define RL_DEBUG_MSG(a, ...) #endif - // Global variables extern DevPrivateKeyRec rootlessGCPrivateKeyRec; + #define rootlessGCPrivateKey (&rootlessGCPrivateKeyRec) extern DevPrivateKeyRec rootlessScreenPrivateKeyRec; + #define rootlessScreenPrivateKey (&rootlessScreenPrivateKeyRec) extern DevPrivateKeyRec rootlessWindowPrivateKeyRec; + #define rootlessWindowPrivateKey (&rootlessWindowPrivateKeyRec) extern DevPrivateKeyRec rootlessWindowOldPixmapPrivateKeyRec; -#define rootlessWindowOldPixmapPrivateKey (&rootlessWindowOldPixmapPrivateKeyRec) +#define rootlessWindowOldPixmapPrivateKey (&rootlessWindowOldPixmapPrivateKeyRec) // RootlessGCRec: private per-gc data typedef struct { @@ -73,7 +74,6 @@ typedef struct { GCOps *originalOps; } RootlessGCRec; - // RootlessScreenRec: per-screen private data typedef struct _RootlessScreenRec { // Rootless implementation functions @@ -118,10 +118,10 @@ typedef struct _RootlessScreenRec { ColormapPtr colormap; void *redisplay_timer; - unsigned int redisplay_timer_set :1; - unsigned int redisplay_queued :1; - unsigned int redisplay_expired :1; - unsigned int colormap_changed :1; + unsigned int redisplay_timer_set:1; + unsigned int redisplay_queued:1; + unsigned int redisplay_expired:1; + unsigned int colormap_changed:1; } RootlessScreenRec, *RootlessScreenPtr; // "Definition of the Porting Layer for the X11 Sample Server" says @@ -135,7 +135,6 @@ typedef struct _RootlessScreenRec { SCREENREC(screen)->fn = screen->fn; \ screen->fn = Rootless##fn - // Accessors for screen and window privates #define SCREENREC(pScreen) ((RootlessScreenRec *) \ @@ -158,7 +157,6 @@ typedef struct _RootlessScreenRec { SCREENREC(pScreen)->frameProcs.proc params; \ } - // BoxRec manipulators // Copied from shadowfb @@ -185,7 +183,6 @@ typedef struct _RootlessScreenRec { #define BOX_NOT_EMPTY(box) \ (((box.x2 - box.x1) > 0) && ((box.y2 - box.y1) > 0)) - // HUGE_ROOT and NORMAL_ROOT // We don't want to clip windows to the edge of the screen. // HUGE_ROOT temporarily makes the root window really big. @@ -212,7 +209,6 @@ extern RegionRec rootlessHugeRoot; w->winSize = saveRoot; \ } while (0) - // Returns TRUE if this window is a top-level window (i.e. child of the root) // The root is not a top-level window. #define IsTopLevel(pWin) \ @@ -222,7 +218,6 @@ extern RegionRec rootlessHugeRoot; #define IsRoot(pWin) \ ((pWin) == (pWin)->drawable.pScreen->root) - /* * SetPixmapBaseToScreen * Move the given pixmap's base address to where pixel (0, 0) @@ -245,7 +240,6 @@ extern RegionRec rootlessHugeRoot; } \ } - // Returns TRUE if this window is visible inside a frame // (e.g. it is visible and has a top-level or root parent) Bool IsFramedWindow(WindowPtr pWin); @@ -262,14 +256,14 @@ void RootlessRedisplayScreen(ScreenPtr pScreen); void RootlessQueueRedisplay(ScreenPtr pScreen); /* Return the colormap currently installed on the given screen. */ -ColormapPtr RootlessGetColormap (ScreenPtr pScreen); +ColormapPtr RootlessGetColormap(ScreenPtr pScreen); /* Convert colormap to ARGB. */ -Bool RootlessResolveColormap (ScreenPtr pScreen, int first_color, - int n_colors, uint32_t *colors); +Bool RootlessResolveColormap(ScreenPtr pScreen, int first_color, + int n_colors, uint32_t * colors); -void RootlessFlushWindowColormap (WindowPtr pWin); -void RootlessFlushScreenColormaps (ScreenPtr pScreen); +void RootlessFlushWindowColormap(WindowPtr pWin); +void RootlessFlushScreenColormaps(ScreenPtr pScreen); // Move a window to its proper location on the screen. void RootlessRepositionWindow(WindowPtr pWin); @@ -277,14 +271,14 @@ void RootlessRepositionWindow(WindowPtr pWin); // Move the window to it's correct place in the physical stacking order. void RootlessReorderWindow(WindowPtr pWin); -void RootlessScreenExpose (ScreenPtr pScreen); -void RootlessHideAllWindows (void); -void RootlessShowAllWindows (void); -void RootlessUpdateRooted (Bool state); +void RootlessScreenExpose(ScreenPtr pScreen); +void RootlessHideAllWindows(void); +void RootlessShowAllWindows(void); +void RootlessUpdateRooted(Bool state); -void RootlessEnableRoot (ScreenPtr pScreen); -void RootlessDisableRoot (ScreenPtr pScreen); +void RootlessEnableRoot(ScreenPtr pScreen); +void RootlessDisableRoot(ScreenPtr pScreen); void RootlessSetPixmapOfAncestors(WindowPtr pWin); -#endif /* _ROOTLESSCOMMON_H */ +#endif /* _ROOTLESSCOMMON_H */ diff --git a/miext/rootless/rootlessConfig.h b/miext/rootless/rootlessConfig.h index a6c0d25ea..d39ae63d2 100644 --- a/miext/rootless/rootlessConfig.h +++ b/miext/rootless/rootlessConfig.h @@ -36,27 +36,27 @@ #ifdef __APPLE__ -# define ROOTLESS_PROTECT_ALPHA TRUE -# define ROOTLESS_REDISPLAY_DELAY 10 -# define ROOTLESS_RESIZE_GRAVITY TRUE +#define ROOTLESS_PROTECT_ALPHA TRUE +#define ROOTLESS_REDISPLAY_DELAY 10 +#define ROOTLESS_RESIZE_GRAVITY TRUE /*# define ROOTLESSDEBUG*/ /* Bit mask for alpha channel with a particular number of bits per pixel. Note that we only care for 32bpp data. Mac OS X uses planar alpha for 16bpp. */ -# define RootlessAlphaMask(bpp) ((bpp) == 32 ? 0xFF000000 : 0) +#define RootlessAlphaMask(bpp) ((bpp) == 32 ? 0xFF000000 : 0) -#endif /* __APPLE__ */ +#endif /* __APPLE__ */ #if defined(__CYGWIN__) || defined(WIN32) -# define ROOTLESS_PROTECT_ALPHA NO -# define ROOTLESS_REDISPLAY_DELAY 10 -# undef ROOTLESS_RESIZE_GRAVITY +#define ROOTLESS_PROTECT_ALPHA NO +#define ROOTLESS_REDISPLAY_DELAY 10 +#undef ROOTLESS_RESIZE_GRAVITY /*# define ROOTLESSDEBUG*/ -# define RootlessAlphaMask(bpp) ((bpp) == 32 ? 0xFF000000 : 0) +#define RootlessAlphaMask(bpp) ((bpp) == 32 ? 0xFF000000 : 0) -#endif /* __CYGWIN__ */ +#endif /* __CYGWIN__ */ -#endif /* _ROOTLESSCONFIG_H */ +#endif /* _ROOTLESSCONFIG_H */ diff --git a/miext/rootless/rootlessGC.c b/miext/rootless/rootlessGC.c index 68a9dc764..932899591 100644 --- a/miext/rootless/rootlessGC.c +++ b/miext/rootless/rootlessGC.c @@ -33,7 +33,7 @@ #include <dix-config.h> #endif -#include <stddef.h> /* For NULL */ +#include <stddef.h> /* For NULL */ #include "mi.h" #include "scrnintstr.h" #include "gcstruct.h" @@ -49,15 +49,13 @@ #include "rootlessCommon.h" - // GC functions static void RootlessValidateGC(GCPtr pGC, unsigned long changes, DrawablePtr pDrawable); static void RootlessChangeGC(GCPtr pGC, unsigned long mask); static void RootlessCopyGC(GCPtr pGCSrc, unsigned long mask, GCPtr pGCDst); static void RootlessDestroyGC(GCPtr pGC); -static void RootlessChangeClip(GCPtr pGC, int type, pointer pvalue, - int nrects); +static void RootlessChangeClip(GCPtr pGC, int type, pointer pvalue, int nrects); static void RootlessDestroyClip(GCPtr pGC); static void RootlessCopyClip(GCPtr pgcDst, GCPtr pgcSrc); @@ -75,17 +73,16 @@ GCFuncs rootlessGCFuncs = { // GC operations static void RootlessFillSpans(DrawablePtr dst, GCPtr pGC, int nInit, - DDXPointPtr pptInit, int *pwidthInit, - int sorted); + DDXPointPtr pptInit, int *pwidthInit, int sorted); static void RootlessSetSpans(DrawablePtr dst, GCPtr pGC, char *pSrc, - DDXPointPtr pptInit, int *pwidthInit, - int nspans, int sorted); + DDXPointPtr pptInit, int *pwidthInit, + int nspans, int sorted); static void RootlessPutImage(DrawablePtr dst, GCPtr pGC, - int depth, int x, int y, int w, int h, - int leftPad, int format, char *pBits); + int depth, int x, int y, int w, int h, + int leftPad, int format, char *pBits); static RegionPtr RootlessCopyArea(DrawablePtr pSrc, DrawablePtr dst, GCPtr pGC, - int srcx, int srcy, int w, int h, - int dstx, int dsty); + int srcx, int srcy, int w, int h, + int dstx, int dsty); static RegionPtr RootlessCopyPlane(DrawablePtr pSrc, DrawablePtr dst, GCPtr pGC, int srcx, int srcy, int w, int h, int dstx, int dsty, @@ -95,34 +92,33 @@ static void RootlessPolyPoint(DrawablePtr dst, GCPtr pGC, static void RootlessPolylines(DrawablePtr dst, GCPtr pGC, int mode, int npt, DDXPointPtr pptInit); static void RootlessPolySegment(DrawablePtr dst, GCPtr pGC, - int nseg, xSegment *pSeg); + int nseg, xSegment * pSeg); static void RootlessPolyRectangle(DrawablePtr dst, GCPtr pGC, int nRects, xRectangle *pRects); -static void RootlessPolyArc(DrawablePtr dst, GCPtr pGC, int narcs, xArc *parcs); -static void RootlessFillPolygon(DrawablePtr dst, GCPtr pGC, - int shape, int mode, int count, - DDXPointPtr pptInit); -static void RootlessPolyFillRect(DrawablePtr dst, GCPtr pGC, - int nRectsInit, xRectangle *pRectsInit); -static void RootlessPolyFillArc(DrawablePtr dst, GCPtr pGC, - int narcsInit, xArc *parcsInit); -static int RootlessPolyText8(DrawablePtr dst, GCPtr pGC, - int x, int y, int count, char *chars); -static int RootlessPolyText16(DrawablePtr dst, GCPtr pGC, - int x, int y, int count, unsigned short *chars); -static void RootlessImageText8(DrawablePtr dst, GCPtr pGC, - int x, int y, int count, char *chars); -static void RootlessImageText16(DrawablePtr dst, GCPtr pGC, - int x, int y, int count, unsigned short *chars); -static void RootlessImageGlyphBlt(DrawablePtr dst, GCPtr pGC, - int x, int y, unsigned int nglyphInit, - CharInfoPtr *ppciInit, pointer unused); -static void RootlessPolyGlyphBlt(DrawablePtr dst, GCPtr pGC, - int x, int y, unsigned int nglyph, - CharInfoPtr *ppci, pointer pglyphBase); +static void RootlessPolyArc(DrawablePtr dst, GCPtr pGC, int narcs, + xArc * parcs); +static void RootlessFillPolygon(DrawablePtr dst, GCPtr pGC, int shape, int mode, + int count, DDXPointPtr pptInit); +static void RootlessPolyFillRect(DrawablePtr dst, GCPtr pGC, int nRectsInit, + xRectangle *pRectsInit); +static void RootlessPolyFillArc(DrawablePtr dst, GCPtr pGC, int narcsInit, + xArc * parcsInit); +static int RootlessPolyText8(DrawablePtr dst, GCPtr pGC, int x, int y, + int count, char *chars); +static int RootlessPolyText16(DrawablePtr dst, GCPtr pGC, int x, int y, + int count, unsigned short *chars); +static void RootlessImageText8(DrawablePtr dst, GCPtr pGC, int x, int y, + int count, char *chars); +static void RootlessImageText16(DrawablePtr dst, GCPtr pGC, int x, int y, + int count, unsigned short *chars); +static void RootlessImageGlyphBlt(DrawablePtr dst, GCPtr pGC, int x, int y, + unsigned int nglyphInit, + CharInfoPtr * ppciInit, pointer unused); +static void RootlessPolyGlyphBlt(DrawablePtr dst, GCPtr pGC, int x, int y, + unsigned int nglyph, CharInfoPtr * ppci, + pointer pglyphBase); static void RootlessPushPixels(GCPtr pGC, PixmapPtr pBitMap, DrawablePtr dst, - int dx, int dy, int xOrg, int yOrg); - + int dx, int dy, int xOrg, int yOrg); static GCOps rootlessGCOps = { RootlessFillSpans, @@ -233,7 +229,7 @@ static GCOps rootlessGCOps = { } while(0) static RootlessWindowRec * -canAccelBlit (DrawablePtr pDraw, GCPtr pGC) +canAccelBlit(DrawablePtr pDraw, GCPtr pGC) { WindowPtr pTop; RootlessWindowRec *winRec; @@ -269,7 +265,6 @@ canAccelFill(DrawablePtr pDraw, GCPtr pGC) return canAccelBlit(pDraw, pGC); } - /* * Screen function to create a graphics context */ @@ -285,8 +280,8 @@ RootlessCreateGC(GCPtr pGC) result = s->CreateGC(pGC); gcrec = (RootlessGCRec *) - dixLookupPrivate(&pGC->devPrivates, rootlessGCPrivateKey); - gcrec->originalOps = NULL; // don't wrap ops yet + dixLookupPrivate(&pGC->devPrivates, rootlessGCPrivateKey); + gcrec->originalOps = NULL; // don't wrap ops yet gcrec->originalFuncs = pGC->funcs; pGC->funcs = &rootlessGCFuncs; @@ -294,7 +289,6 @@ RootlessCreateGC(GCPtr pGC) return result; } - /* * GC funcs * @@ -321,7 +315,6 @@ RootlessCreateGC(GCPtr pGC) (pGC)->ops = &rootlessGCOps; \ } - static void RootlessValidateGC(GCPtr pGC, unsigned long changes, DrawablePtr pDrawable) { @@ -329,8 +322,7 @@ RootlessValidateGC(GCPtr pGC, unsigned long changes, DrawablePtr pDrawable) gcrec->originalOps = NULL; - if (pDrawable->type == DRAWABLE_WINDOW) - { + if (pDrawable->type == DRAWABLE_WINDOW) { #ifdef ROOTLESS_PROTECT_ALPHA unsigned int depth = pDrawable->depth; @@ -343,56 +335,62 @@ RootlessValidateGC(GCPtr pGC, unsigned long changes, DrawablePtr pDrawable) #else VALIDATE_GC(pGC, changes, pDrawable); #endif - } else { + } + else { pGC->funcs->ValidateGC(pGC, changes, pDrawable); } GCFUNC_WRAP(pGC); } -static void RootlessChangeGC(GCPtr pGC, unsigned long mask) +static void +RootlessChangeGC(GCPtr pGC, unsigned long mask) { GCFUNC_UNWRAP(pGC); pGC->funcs->ChangeGC(pGC, mask); GCFUNC_WRAP(pGC); } -static void RootlessCopyGC(GCPtr pGCSrc, unsigned long mask, GCPtr pGCDst) +static void +RootlessCopyGC(GCPtr pGCSrc, unsigned long mask, GCPtr pGCDst) { GCFUNC_UNWRAP(pGCDst); pGCDst->funcs->CopyGC(pGCSrc, mask, pGCDst); GCFUNC_WRAP(pGCDst); } -static void RootlessDestroyGC(GCPtr pGC) +static void +RootlessDestroyGC(GCPtr pGC) { GCFUNC_UNWRAP(pGC); pGC->funcs->DestroyGC(pGC); GCFUNC_WRAP(pGC); } -static void RootlessChangeClip(GCPtr pGC, int type, pointer pvalue, int nrects) +static void +RootlessChangeClip(GCPtr pGC, int type, pointer pvalue, int nrects) { GCFUNC_UNWRAP(pGC); pGC->funcs->ChangeClip(pGC, type, pvalue, nrects); GCFUNC_WRAP(pGC); } -static void RootlessDestroyClip(GCPtr pGC) +static void +RootlessDestroyClip(GCPtr pGC) { GCFUNC_UNWRAP(pGC); pGC->funcs->DestroyClip(pGC); GCFUNC_WRAP(pGC); } -static void RootlessCopyClip(GCPtr pgcDst, GCPtr pgcSrc) +static void +RootlessCopyClip(GCPtr pgcDst, GCPtr pgcSrc) { GCFUNC_UNWRAP(pgcDst); pgcDst->funcs->CopyClip(pgcDst, pgcSrc); GCFUNC_WRAP(pgcDst); } - /* * GC ops * @@ -424,7 +422,8 @@ RootlessFillSpans(DrawablePtr dst, GCPtr pGC, int nInit, if (nInit <= 0) { pGC->ops->FillSpans(dst, pGC, nInit, pptInit, pwidthInit, sorted); - } else { + } + else { DDXPointPtr ppt = pptInit; int *pwidth = pwidthInit; int i = nInit; @@ -451,8 +450,7 @@ RootlessFillSpans(DrawablePtr dst, GCPtr pGC, int nInit, RootlessStartDrawing((WindowPtr) dst); - if (canAccelFill(dst, pGC)) - { + if (canAccelFill(dst, pGC)) { GC_UNSET_PM(pGC, dst); } @@ -460,7 +458,7 @@ RootlessFillSpans(DrawablePtr dst, GCPtr pGC, int nInit, TRIM_AND_TRANSLATE_BOX(box, dst, pGC); if (BOX_NOT_EMPTY(box)) - RootlessDamageBox ((WindowPtr) dst, &box); + RootlessDamageBox((WindowPtr) dst, &box); } GC_RESTORE(pGC, dst); @@ -470,16 +468,15 @@ RootlessFillSpans(DrawablePtr dst, GCPtr pGC, int nInit, static void RootlessSetSpans(DrawablePtr dst, GCPtr pGC, char *pSrc, - DDXPointPtr pptInit, int *pwidthInit, - int nspans, int sorted) + DDXPointPtr pptInit, int *pwidthInit, int nspans, int sorted) { GCOP_UNWRAP(pGC); RL_DEBUG_MSG("set spans start "); if (nspans <= 0) { - pGC->ops->SetSpans(dst, pGC, pSrc, pptInit, pwidthInit, - nspans, sorted); - } else { + pGC->ops->SetSpans(dst, pGC, pSrc, pptInit, pwidthInit, nspans, sorted); + } + else { DDXPointPtr ppt = pptInit; int *pwidth = pwidthInit; int i = nspans; @@ -505,12 +502,11 @@ RootlessSetSpans(DrawablePtr dst, GCPtr pGC, char *pSrc, box.y2++; RootlessStartDrawing((WindowPtr) dst); - pGC->ops->SetSpans(dst, pGC, pSrc, pptInit, pwidthInit, - nspans, sorted); + pGC->ops->SetSpans(dst, pGC, pSrc, pptInit, pwidthInit, nspans, sorted); TRIM_AND_TRANSLATE_BOX(box, dst, pGC); if (BOX_NOT_EMPTY(box)) - RootlessDamageBox ((WindowPtr) dst, &box); + RootlessDamageBox((WindowPtr) dst, &box); } GCOP_WRAP(pGC); RL_DEBUG_MSG("set spans end\n"); @@ -527,7 +523,7 @@ RootlessPutImage(DrawablePtr dst, GCPtr pGC, RL_DEBUG_MSG("put image start "); RootlessStartDrawing((WindowPtr) dst); - pGC->ops->PutImage(dst, pGC, depth, x,y,w,h, leftPad, format, pBits); + pGC->ops->PutImage(dst, pGC, depth, x, y, w, h, leftPad, format, pBits); box.x1 = x + dst->x; box.x2 = box.x1 + w; @@ -536,7 +532,7 @@ RootlessPutImage(DrawablePtr dst, GCPtr pGC, TRIM_BOX(box, pGC); if (BOX_NOT_EMPTY(box)) - RootlessDamageBox ((WindowPtr) dst, &box); + RootlessDamageBox((WindowPtr) dst, &box); GCOP_WRAP(pGC); RL_DEBUG_MSG("put image end\n"); @@ -545,8 +541,7 @@ RootlessPutImage(DrawablePtr dst, GCPtr pGC, /* changed area is *dest* rect */ static RegionPtr RootlessCopyArea(DrawablePtr pSrc, DrawablePtr dst, GCPtr pGC, - int srcx, int srcy, int w, int h, - int dstx, int dsty) + int srcx, int srcy, int w, int h, int dstx, int dsty) { RegionPtr result; BoxRec box; @@ -556,13 +551,12 @@ RootlessCopyArea(DrawablePtr pSrc, DrawablePtr dst, GCPtr pGC, RL_DEBUG_MSG("copy area start (src 0x%x, dst 0x%x)", pSrc, dst); - if (pSrc->type == DRAWABLE_WINDOW && IsFramedWindow((WindowPtr)pSrc)) { + if (pSrc->type == DRAWABLE_WINDOW && IsFramedWindow((WindowPtr) pSrc)) { /* If both source and dest are windows, and we're doing a simple copy operation, we can remove the alpha-protecting planemask (since source has opaque alpha as well) */ - if (canAccelBlit(pSrc, pGC)) - { + if (canAccelBlit(pSrc, pGC)) { GC_UNSET_PM(pGC, dst); } @@ -578,7 +572,7 @@ RootlessCopyArea(DrawablePtr pSrc, DrawablePtr dst, GCPtr pGC, TRIM_BOX(box, pGC); if (BOX_NOT_EMPTY(box)) - RootlessDamageBox ((WindowPtr) dst, &box); + RootlessDamageBox((WindowPtr) dst, &box); GC_RESTORE(pGC, dst); GCOP_WRAP(pGC); @@ -587,10 +581,10 @@ RootlessCopyArea(DrawablePtr pSrc, DrawablePtr dst, GCPtr pGC, } /* changed area is *dest* rect */ -static RegionPtr RootlessCopyPlane(DrawablePtr pSrc, DrawablePtr dst, - GCPtr pGC, int srcx, int srcy, - int w, int h, int dstx, int dsty, - unsigned long plane) +static RegionPtr +RootlessCopyPlane(DrawablePtr pSrc, DrawablePtr dst, + GCPtr pGC, int srcx, int srcy, + int w, int h, int dstx, int dsty, unsigned long plane) { RegionPtr result; BoxRec box; @@ -599,7 +593,7 @@ static RegionPtr RootlessCopyPlane(DrawablePtr pSrc, DrawablePtr dst, RL_DEBUG_MSG("copy plane start "); - if (pSrc->type == DRAWABLE_WINDOW && IsFramedWindow((WindowPtr)pSrc)) { + if (pSrc->type == DRAWABLE_WINDOW && IsFramedWindow((WindowPtr) pSrc)) { RootlessStartDrawing((WindowPtr) pSrc); } RootlessStartDrawing((WindowPtr) dst); @@ -613,7 +607,7 @@ static RegionPtr RootlessCopyPlane(DrawablePtr pSrc, DrawablePtr dst, TRIM_BOX(box, pGC); if (BOX_NOT_EMPTY(box)) - RootlessDamageBox ((WindowPtr) dst, &box); + RootlessDamageBox((WindowPtr) dst, &box); GCOP_WRAP(pGC); RL_DEBUG_MSG("copy plane end\n"); @@ -628,8 +622,9 @@ static RegionPtr RootlessCopyPlane(DrawablePtr pSrc, DrawablePtr dst, #define abs(a) ((a) > 0 ? (a) : -(a)) /* changed area is box around all points */ -static void RootlessPolyPoint(DrawablePtr dst, GCPtr pGC, - int mode, int npt, DDXPointPtr pptInit) +static void +RootlessPolyPoint(DrawablePtr dst, GCPtr pGC, + int mode, int npt, DDXPointPtr pptInit) { GCOP_UNWRAP(pGC); RL_DEBUG_MSG("polypoint start "); @@ -650,7 +645,7 @@ static void RootlessPolyPoint(DrawablePtr dst, GCPtr pGC, TRIM_AND_TRANSLATE_BOX(box, dst, pGC); if (BOX_NOT_EMPTY(box)) - RootlessDamageBox ((WindowPtr) dst, &box); + RootlessDamageBox((WindowPtr) dst, &box); npt--; pptInit++; @@ -679,7 +674,7 @@ static void RootlessPolyPoint(DrawablePtr dst, GCPtr pGC, TRIM_AND_TRANSLATE_BOX(box, dst, pGC); if (BOX_NOT_EMPTY(box)) - RootlessDamageBox ((WindowPtr) dst, &box); + RootlessDamageBox((WindowPtr) dst, &box); #elif ROOTLESS_CHANGED_AREA==2 // clever(?) method: accumulate point in 20-pixel radius @@ -690,20 +685,24 @@ static void RootlessPolyPoint(DrawablePtr dst, GCPtr pGC, box.y2 = box.y1 = firsty = pptInit->y; while (--npt) { pptInit++; - if (abs(pptInit->x - firstx) > 20 || - abs(pptInit->y - firsty) > 20) { + if (abs(pptInit->x - firstx) > 20 || abs(pptInit->y - firsty) > 20) { box.x2++; box.y2++; TRIM_AND_TRANSLATE_BOX(box, dst, pGC); if (BOX_NOT_EMPTY(box)) - RootlessDamageBox ((WindowPtr) dst, &box); + RootlessDamageBox((WindowPtr) dst, &box); box.x2 = box.x1 = firstx = pptInit->x; box.y2 = box.y1 = firsty = pptInit->y; - } else { - if (box.x1 > pptInit->x) box.x1 = pptInit->x; - else if (box.x2 < pptInit->x) box.x2 = pptInit->x; - if (box.y1 > pptInit->y) box.y1 = pptInit->y; - else if (box.y2 < pptInit->y) box.y2 = pptInit->y; + } + else { + if (box.x1 > pptInit->x) + box.x1 = pptInit->x; + else if (box.x2 < pptInit->x) + box.x2 = pptInit->x; + if (box.y1 > pptInit->y) + box.y1 = pptInit->y; + else if (box.y2 < pptInit->y) + box.y2 = pptInit->y; } } box.x2++; @@ -711,7 +710,7 @@ static void RootlessPolyPoint(DrawablePtr dst, GCPtr pGC, TRIM_AND_TRANSLATE_BOX(box, dst, pGC); if (BOX_NOT_EMPTY(box)) RootlessDamageBox((WindowPtr) dst, &box); -#endif /* ROOTLESS_CHANGED_AREA */ +#endif /* ROOTLESS_CHANGED_AREA */ } GCOP_WRAP(pGC); @@ -721,8 +720,9 @@ static void RootlessPolyPoint(DrawablePtr dst, GCPtr pGC, #undef ROOTLESS_CHANGED_AREA /* changed area is box around each line */ -static void RootlessPolylines(DrawablePtr dst, GCPtr pGC, - int mode, int npt, DDXPointPtr pptInit) +static void +RootlessPolylines(DrawablePtr dst, GCPtr pGC, + int mode, int npt, DDXPointPtr pptInit) { GCOP_UNWRAP(pGC); RL_DEBUG_MSG("poly lines start "); @@ -761,7 +761,8 @@ static void RootlessPolylines(DrawablePtr dst, GCPtr pGC, else if (box.y2 < y) box.y2 = y; } - } else { + } + else { while (--npt) { pptInit++; if (box.x1 > pptInit->x) @@ -787,7 +788,7 @@ static void RootlessPolylines(DrawablePtr dst, GCPtr pGC, TRIM_AND_TRANSLATE_BOX(box, dst, pGC); if (BOX_NOT_EMPTY(box)) - RootlessDamageBox ((WindowPtr) dst, &box); + RootlessDamageBox((WindowPtr) dst, &box); } GCOP_WRAP(pGC); @@ -795,8 +796,8 @@ static void RootlessPolylines(DrawablePtr dst, GCPtr pGC, } /* changed area is box around each line segment */ -static void RootlessPolySegment(DrawablePtr dst, GCPtr pGC, - int nseg, xSegment *pSeg) +static void +RootlessPolySegment(DrawablePtr dst, GCPtr pGC, int nseg, xSegment * pSeg) { GCOP_UNWRAP(pGC); RL_DEBUG_MSG("poly segment start (win 0x%x)", dst); @@ -809,12 +810,13 @@ static void RootlessPolySegment(DrawablePtr dst, GCPtr pGC, int extra = pGC->lineWidth; if (pGC->capStyle != CapProjecting) - extra >>= 1; + extra >>= 1; if (pSeg->x2 > pSeg->x1) { box.x1 = pSeg->x1; box.x2 = pSeg->x2; - } else { + } + else { box.x2 = pSeg->x1; box.x1 = pSeg->x2; } @@ -822,7 +824,8 @@ static void RootlessPolySegment(DrawablePtr dst, GCPtr pGC, if (pSeg->y2 > pSeg->y1) { box.y1 = pSeg->y1; box.y2 = pSeg->y2; - } else { + } + else { box.y2 = pSeg->y1; box.y1 = pSeg->y2; } @@ -830,18 +833,28 @@ static void RootlessPolySegment(DrawablePtr dst, GCPtr pGC, while (--nseg) { pSeg++; if (pSeg->x2 > pSeg->x1) { - if (pSeg->x1 < box.x1) box.x1 = pSeg->x1; - if (pSeg->x2 > box.x2) box.x2 = pSeg->x2; - } else { - if (pSeg->x2 < box.x1) box.x1 = pSeg->x2; - if (pSeg->x1 > box.x2) box.x2 = pSeg->x1; + if (pSeg->x1 < box.x1) + box.x1 = pSeg->x1; + if (pSeg->x2 > box.x2) + box.x2 = pSeg->x2; + } + else { + if (pSeg->x2 < box.x1) + box.x1 = pSeg->x2; + if (pSeg->x1 > box.x2) + box.x2 = pSeg->x1; } if (pSeg->y2 > pSeg->y1) { - if (pSeg->y1 < box.y1) box.y1 = pSeg->y1; - if (pSeg->y2 > box.y2) box.y2 = pSeg->y2; - } else { - if (pSeg->y2 < box.y1) box.y1 = pSeg->y2; - if (pSeg->y1 > box.y2) box.y2 = pSeg->y1; + if (pSeg->y1 < box.y1) + box.y1 = pSeg->y1; + if (pSeg->y2 > box.y2) + box.y2 = pSeg->y2; + } + else { + if (pSeg->y2 < box.y1) + box.y1 = pSeg->y2; + if (pSeg->y1 > box.y2) + box.y2 = pSeg->y1; } } @@ -857,7 +870,7 @@ static void RootlessPolySegment(DrawablePtr dst, GCPtr pGC, TRIM_AND_TRANSLATE_BOX(box, dst, pGC); if (BOX_NOT_EMPTY(box)) - RootlessDamageBox ((WindowPtr) dst, &box); + RootlessDamageBox((WindowPtr) dst, &box); } GCOP_WRAP(pGC); @@ -865,8 +878,9 @@ static void RootlessPolySegment(DrawablePtr dst, GCPtr pGC, } /* changed area is box around each line (not entire rects) */ -static void RootlessPolyRectangle(DrawablePtr dst, GCPtr pGC, - int nRects, xRectangle *pRects) +static void +RootlessPolyRectangle(DrawablePtr dst, GCPtr pGC, + int nRects, xRectangle *pRects) { GCOP_UNWRAP(pGC); RL_DEBUG_MSG("poly rectangle start "); @@ -879,7 +893,8 @@ static void RootlessPolyRectangle(DrawablePtr dst, GCPtr pGC, int offset1, offset2, offset3; offset2 = pGC->lineWidth; - if (!offset2) offset2 = 1; + if (!offset2) + offset2 = 1; offset1 = offset2 >> 1; offset3 = offset2 - offset1; @@ -890,7 +905,7 @@ static void RootlessPolyRectangle(DrawablePtr dst, GCPtr pGC, box.y2 = box.y1 + offset2; TRIM_AND_TRANSLATE_BOX(box, dst, pGC); if (BOX_NOT_EMPTY(box)) - RootlessDamageBox ((WindowPtr) dst, &box); + RootlessDamageBox((WindowPtr) dst, &box); box.x1 = pRects->x - offset1; box.y1 = pRects->y + offset3; @@ -898,7 +913,7 @@ static void RootlessPolyRectangle(DrawablePtr dst, GCPtr pGC, box.y2 = box.y1 + pRects->height - offset2; TRIM_AND_TRANSLATE_BOX(box, dst, pGC); if (BOX_NOT_EMPTY(box)) - RootlessDamageBox ((WindowPtr) dst, &box); + RootlessDamageBox((WindowPtr) dst, &box); box.x1 = pRects->x + pRects->width - offset1; box.y1 = pRects->y + offset3; @@ -906,7 +921,7 @@ static void RootlessPolyRectangle(DrawablePtr dst, GCPtr pGC, box.y2 = box.y1 + pRects->height - offset2; TRIM_AND_TRANSLATE_BOX(box, dst, pGC); if (BOX_NOT_EMPTY(box)) - RootlessDamageBox ((WindowPtr) dst, &box); + RootlessDamageBox((WindowPtr) dst, &box); box.x1 = pRects->x - offset1; box.y1 = pRects->y + pRects->height - offset1; @@ -914,7 +929,7 @@ static void RootlessPolyRectangle(DrawablePtr dst, GCPtr pGC, box.y2 = box.y1 + offset2; TRIM_AND_TRANSLATE_BOX(box, dst, pGC); if (BOX_NOT_EMPTY(box)) - RootlessDamageBox ((WindowPtr) dst, &box); + RootlessDamageBox((WindowPtr) dst, &box); pRects++; } @@ -924,9 +939,9 @@ static void RootlessPolyRectangle(DrawablePtr dst, GCPtr pGC, RL_DEBUG_MSG("poly rectangle end\n"); } - /* changed area is box around each arc (assumes all arcs are 360 degrees) */ -static void RootlessPolyArc(DrawablePtr dst, GCPtr pGC, int narcs, xArc *parcs) +static void +RootlessPolyArc(DrawablePtr dst, GCPtr pGC, int narcs, xArc * parcs) { GCOP_UNWRAP(pGC); RL_DEBUG_MSG("poly arc start "); @@ -969,18 +984,17 @@ static void RootlessPolyArc(DrawablePtr dst, GCPtr pGC, int narcs, xArc *parcs) TRIM_AND_TRANSLATE_BOX(box, dst, pGC); if (BOX_NOT_EMPTY(box)) - RootlessDamageBox ((WindowPtr) dst, &box); + RootlessDamageBox((WindowPtr) dst, &box); } GCOP_WRAP(pGC); RL_DEBUG_MSG("poly arc end\n"); } - /* changed area is box around each poly */ -static void RootlessFillPolygon(DrawablePtr dst, GCPtr pGC, - int shape, int mode, int count, - DDXPointPtr pptInit) +static void +RootlessFillPolygon(DrawablePtr dst, GCPtr pGC, + int shape, int mode, int count, DDXPointPtr pptInit) { GC_SAVE(pGC); GCOP_UNWRAP(pGC); @@ -989,7 +1003,8 @@ static void RootlessFillPolygon(DrawablePtr dst, GCPtr pGC, if (count <= 2) { pGC->ops->FillPolygon(dst, pGC, shape, mode, count, pptInit); - } else { + } + else { DDXPointPtr ppt = pptInit; int i = count; BoxRec box; @@ -1014,7 +1029,8 @@ static void RootlessFillPolygon(DrawablePtr dst, GCPtr pGC, else if (box.y2 < y) box.y2 = y; } - } else { + } + else { while (--i) { ppt++; if (box.x1 > ppt->x) @@ -1033,8 +1049,7 @@ static void RootlessFillPolygon(DrawablePtr dst, GCPtr pGC, RootlessStartDrawing((WindowPtr) dst); - if (canAccelFill(dst, pGC)) - { + if (canAccelFill(dst, pGC)) { GC_UNSET_PM(pGC, dst); } @@ -1042,7 +1057,7 @@ static void RootlessFillPolygon(DrawablePtr dst, GCPtr pGC, TRIM_AND_TRANSLATE_BOX(box, dst, pGC); if (BOX_NOT_EMPTY(box)) - RootlessDamageBox ((WindowPtr) dst, &box); + RootlessDamageBox((WindowPtr) dst, &box); } GC_RESTORE(pGC, dst); @@ -1051,8 +1066,9 @@ static void RootlessFillPolygon(DrawablePtr dst, GCPtr pGC, } /* changed area is the rects */ -static void RootlessPolyFillRect(DrawablePtr dst, GCPtr pGC, - int nRectsInit, xRectangle *pRectsInit) +static void +RootlessPolyFillRect(DrawablePtr dst, GCPtr pGC, + int nRectsInit, xRectangle *pRectsInit) { GC_SAVE(pGC); GCOP_UNWRAP(pGC); @@ -1061,7 +1077,8 @@ static void RootlessPolyFillRect(DrawablePtr dst, GCPtr pGC, if (nRectsInit <= 0) { pGC->ops->PolyFillRect(dst, pGC, nRectsInit, pRectsInit); - } else { + } + else { BoxRec box; xRectangle *pRects = pRectsInit; int nRects = nRectsInit; @@ -1084,17 +1101,16 @@ static void RootlessPolyFillRect(DrawablePtr dst, GCPtr pGC, } RootlessStartDrawing((WindowPtr) dst); - - if (canAccelFill(dst, pGC)) - { + + if (canAccelFill(dst, pGC)) { GC_UNSET_PM(pGC, dst); } - pGC->ops->PolyFillRect(dst, pGC, nRectsInit, pRectsInit); + pGC->ops->PolyFillRect(dst, pGC, nRectsInit, pRectsInit); TRIM_AND_TRANSLATE_BOX(box, dst, pGC); if (BOX_NOT_EMPTY(box)) - RootlessDamageBox ((WindowPtr) dst, &box); + RootlessDamageBox((WindowPtr) dst, &box); } GC_RESTORE(pGC, dst); @@ -1102,10 +1118,9 @@ static void RootlessPolyFillRect(DrawablePtr dst, GCPtr pGC, RL_DEBUG_MSG("fill rect end\n"); } - /* changed area is box around each arc (assuming arcs are all 360 degrees) */ -static void RootlessPolyFillArc(DrawablePtr dst, GCPtr pGC, - int narcsInit, xArc *parcsInit) +static void +RootlessPolyFillArc(DrawablePtr dst, GCPtr pGC, int narcsInit, xArc * parcsInit) { GC_SAVE(pGC); GCOP_UNWRAP(pGC); @@ -1137,8 +1152,7 @@ static void RootlessPolyFillArc(DrawablePtr dst, GCPtr pGC, RootlessStartDrawing((WindowPtr) dst); - if (canAccelFill(dst, pGC)) - { + if (canAccelFill(dst, pGC)) { GC_UNSET_PM(pGC, dst); } @@ -1146,8 +1160,9 @@ static void RootlessPolyFillArc(DrawablePtr dst, GCPtr pGC, TRIM_AND_TRANSLATE_BOX(box, dst, pGC); if (BOX_NOT_EMPTY(box)) - RootlessDamageBox ((WindowPtr) dst, &box); - } else { + RootlessDamageBox((WindowPtr) dst, &box); + } + else { pGC->ops->PolyFillArc(dst, pGC, narcsInit, parcsInit); } @@ -1156,9 +1171,9 @@ static void RootlessPolyFillArc(DrawablePtr dst, GCPtr pGC, RL_DEBUG_MSG("fill arc end\n"); } - -static void RootlessImageText8(DrawablePtr dst, GCPtr pGC, - int x, int y, int count, char *chars) +static void +RootlessImageText8(DrawablePtr dst, GCPtr pGC, + int x, int y, int count, char *chars) { GC_SAVE(pGC); GCOP_UNWRAP(pGC); @@ -1172,23 +1187,22 @@ static void RootlessImageText8(DrawablePtr dst, GCPtr pGC, bot = max(FONTMAXBOUNDS(pGC->font, descent), FONTDESCENT(pGC->font)); Min = count * FONTMINBOUNDS(pGC->font, characterWidth); - if (Min > 0) Min = 0; + if (Min > 0) + Min = 0; Max = count * FONTMAXBOUNDS(pGC->font, characterWidth); - if (Max < 0) Max = 0; + if (Max < 0) + Max = 0; /* ugh */ - box.x1 = dst->x + x + Min + - FONTMINBOUNDS(pGC->font, leftSideBearing); - box.x2 = dst->x + x + Max + - FONTMAXBOUNDS(pGC->font, rightSideBearing); + box.x1 = dst->x + x + Min + FONTMINBOUNDS(pGC->font, leftSideBearing); + box.x2 = dst->x + x + Max + FONTMAXBOUNDS(pGC->font, rightSideBearing); box.y1 = dst->y + y - top; box.y2 = dst->y + y + bot; RootlessStartDrawing((WindowPtr) dst); - if (canAccelFill(dst, pGC)) - { + if (canAccelFill(dst, pGC)) { GC_UNSET_PM(pGC, dst); } @@ -1196,8 +1210,9 @@ static void RootlessImageText8(DrawablePtr dst, GCPtr pGC, TRIM_BOX(box, pGC); if (BOX_NOT_EMPTY(box)) - RootlessDamageBox ((WindowPtr) dst, &box); - } else { + RootlessDamageBox((WindowPtr) dst, &box); + } + else { pGC->ops->ImageText8(dst, pGC, x, y, count, chars); } @@ -1206,10 +1221,11 @@ static void RootlessImageText8(DrawablePtr dst, GCPtr pGC, RL_DEBUG_MSG("imagetext8 end\n"); } -static int RootlessPolyText8(DrawablePtr dst, GCPtr pGC, - int x, int y, int count, char *chars) +static int +RootlessPolyText8(DrawablePtr dst, GCPtr pGC, + int x, int y, int count, char *chars) { - int width; // the result, sorta + int width; // the result, sorta GCOP_UNWRAP(pGC); @@ -1227,8 +1243,10 @@ static int RootlessPolyText8(DrawablePtr dst, GCPtr pGC, box.x2 = dst->x + x + FONTMAXBOUNDS(pGC->font, rightSideBearing); if (count > 1) { - if (width > 0) box.x2 += width; - else box.x1 += width; + if (width > 0) + box.x2 += width; + else + box.x1 += width; } box.y1 = dst->y + y - FONTMAXBOUNDS(pGC->font, ascent); @@ -1236,7 +1254,7 @@ static int RootlessPolyText8(DrawablePtr dst, GCPtr pGC, TRIM_BOX(box, pGC); if (BOX_NOT_EMPTY(box)) - RootlessDamageBox ((WindowPtr) dst, &box); + RootlessDamageBox((WindowPtr) dst, &box); } GCOP_WRAP(pGC); @@ -1244,8 +1262,9 @@ static int RootlessPolyText8(DrawablePtr dst, GCPtr pGC, return width + x; } -static void RootlessImageText16(DrawablePtr dst, GCPtr pGC, - int x, int y, int count, unsigned short *chars) +static void +RootlessImageText16(DrawablePtr dst, GCPtr pGC, + int x, int y, int count, unsigned short *chars) { GC_SAVE(pGC); GCOP_UNWRAP(pGC); @@ -1259,23 +1278,22 @@ static void RootlessImageText16(DrawablePtr dst, GCPtr pGC, bot = max(FONTMAXBOUNDS(pGC->font, descent), FONTDESCENT(pGC->font)); Min = count * FONTMINBOUNDS(pGC->font, characterWidth); - if (Min > 0) Min = 0; + if (Min > 0) + Min = 0; Max = count * FONTMAXBOUNDS(pGC->font, characterWidth); - if (Max < 0) Max = 0; + if (Max < 0) + Max = 0; /* ugh */ - box.x1 = dst->x + x + Min + - FONTMINBOUNDS(pGC->font, leftSideBearing); - box.x2 = dst->x + x + Max + - FONTMAXBOUNDS(pGC->font, rightSideBearing); + box.x1 = dst->x + x + Min + FONTMINBOUNDS(pGC->font, leftSideBearing); + box.x2 = dst->x + x + Max + FONTMAXBOUNDS(pGC->font, rightSideBearing); box.y1 = dst->y + y - top; box.y2 = dst->y + y + bot; RootlessStartDrawing((WindowPtr) dst); - if (canAccelFill(dst, pGC)) - { + if (canAccelFill(dst, pGC)) { GC_UNSET_PM(pGC, dst); } @@ -1283,8 +1301,9 @@ static void RootlessImageText16(DrawablePtr dst, GCPtr pGC, TRIM_BOX(box, pGC); if (BOX_NOT_EMPTY(box)) - RootlessDamageBox ((WindowPtr) dst, &box); - } else { + RootlessDamageBox((WindowPtr) dst, &box); + } + else { pGC->ops->ImageText16(dst, pGC, x, y, count, chars); } @@ -1293,10 +1312,11 @@ static void RootlessImageText16(DrawablePtr dst, GCPtr pGC, RL_DEBUG_MSG("imagetext16 end\n"); } -static int RootlessPolyText16(DrawablePtr dst, GCPtr pGC, - int x, int y, int count, unsigned short *chars) +static int +RootlessPolyText16(DrawablePtr dst, GCPtr pGC, + int x, int y, int count, unsigned short *chars) { - int width; // the result, sorta + int width; // the result, sorta GCOP_UNWRAP(pGC); @@ -1314,8 +1334,10 @@ static int RootlessPolyText16(DrawablePtr dst, GCPtr pGC, box.x2 = dst->x + x + FONTMAXBOUNDS(pGC->font, rightSideBearing); if (count > 1) { - if (width > 0) box.x2 += width; - else box.x1 += width; + if (width > 0) + box.x2 += width; + else + box.x1 += width; } box.y1 = dst->y + y - FONTMAXBOUNDS(pGC->font, ascent); @@ -1323,7 +1345,7 @@ static int RootlessPolyText16(DrawablePtr dst, GCPtr pGC, TRIM_BOX(box, pGC); if (BOX_NOT_EMPTY(box)) - RootlessDamageBox ((WindowPtr) dst, &box); + RootlessDamageBox((WindowPtr) dst, &box); } GCOP_WRAP(pGC); @@ -1331,9 +1353,10 @@ static int RootlessPolyText16(DrawablePtr dst, GCPtr pGC, return width + x; } -static void RootlessImageGlyphBlt(DrawablePtr dst, GCPtr pGC, - int x, int y, unsigned int nglyphInit, - CharInfoPtr *ppciInit, pointer unused) +static void +RootlessImageGlyphBlt(DrawablePtr dst, GCPtr pGC, + int x, int y, unsigned int nglyphInit, + CharInfoPtr * ppciInit, pointer unused) { GC_SAVE(pGC); GCOP_UNWRAP(pGC); @@ -1349,10 +1372,12 @@ static void RootlessImageGlyphBlt(DrawablePtr dst, GCPtr pGC, bot = max(FONTMAXBOUNDS(pGC->font, descent), FONTDESCENT(pGC->font)); box.x1 = ppci[0]->metrics.leftSideBearing; - if (box.x1 > 0) box.x1 = 0; + if (box.x1 > 0) + box.x1 = 0; box.x2 = ppci[nglyph - 1]->metrics.rightSideBearing - ppci[nglyph - 1]->metrics.characterWidth; - if (box.x2 < 0) box.x2 = 0; + if (box.x2 < 0) + box.x2 = 0; box.x2 += dst->x + x; box.x1 += dst->x + x; @@ -1372,8 +1397,7 @@ static void RootlessImageGlyphBlt(DrawablePtr dst, GCPtr pGC, RootlessStartDrawing((WindowPtr) dst); - if (canAccelFill(dst, pGC)) - { + if (canAccelFill(dst, pGC)) { GC_UNSET_PM(pGC, dst); } @@ -1381,8 +1405,9 @@ static void RootlessImageGlyphBlt(DrawablePtr dst, GCPtr pGC, TRIM_BOX(box, pGC); if (BOX_NOT_EMPTY(box)) - RootlessDamageBox ((WindowPtr) dst, &box); - } else { + RootlessDamageBox((WindowPtr) dst, &box); + } + else { pGC->ops->ImageGlyphBlt(dst, pGC, x, y, nglyphInit, ppciInit, unused); } @@ -1391,9 +1416,10 @@ static void RootlessImageGlyphBlt(DrawablePtr dst, GCPtr pGC, RL_DEBUG_MSG("imageglyph end\n"); } -static void RootlessPolyGlyphBlt(DrawablePtr dst, GCPtr pGC, - int x, int y, unsigned int nglyph, - CharInfoPtr *ppci, pointer pglyphBase) +static void +RootlessPolyGlyphBlt(DrawablePtr dst, GCPtr pGC, + int x, int y, unsigned int nglyph, + CharInfoPtr * ppci, pointer pglyphBase) { GCOP_UNWRAP(pGC); RL_DEBUG_MSG("polyglyph start "); @@ -1416,8 +1442,10 @@ static void RootlessPolyGlyphBlt(DrawablePtr dst, GCPtr pGC, ppci++; } - if (width > 0) box.x2 += width; - else box.x1 += width; + if (width > 0) + box.x2 += width; + else + box.x1 += width; } box.y1 = dst->y + y - FONTMAXBOUNDS(pGC->font, ascent); @@ -1425,14 +1453,13 @@ static void RootlessPolyGlyphBlt(DrawablePtr dst, GCPtr pGC, TRIM_BOX(box, pGC); if (BOX_NOT_EMPTY(box)) - RootlessDamageBox ((WindowPtr) dst, &box); + RootlessDamageBox((WindowPtr) dst, &box); } GCOP_WRAP(pGC); RL_DEBUG_MSG("polyglyph end\n"); } - /* changed area is in dest */ static void RootlessPushPixels(GCPtr pGC, PixmapPtr pBitMap, DrawablePtr dst, @@ -1453,7 +1480,7 @@ RootlessPushPixels(GCPtr pGC, PixmapPtr pBitMap, DrawablePtr dst, TRIM_BOX(box, pGC); if (BOX_NOT_EMPTY(box)) - RootlessDamageBox ((WindowPtr) dst, &box); + RootlessDamageBox((WindowPtr) dst, &box); GCOP_WRAP(pGC); RL_DEBUG_MSG("push pixels end\n"); diff --git a/miext/rootless/rootlessScreen.c b/miext/rootless/rootlessScreen.c index c8557066e..ecc72ea92 100644 --- a/miext/rootless/rootlessScreen.c +++ b/miext/rootless/rootlessScreen.c @@ -29,7 +29,6 @@ * use or other dealings in this Software without prior written authorization. */ - #ifdef HAVE_DIX_CONFIG_H #include <dix-config.h> #endif @@ -83,10 +82,10 @@ RootlessUpdateScreenPixmap(ScreenPtr pScreen) PixmapPtr pPix; unsigned int rowbytes; - pPix = (*pScreen->GetScreenPixmap)(pScreen); + pPix = (*pScreen->GetScreenPixmap) (pScreen); if (pPix == NULL) { - pPix = (*pScreen->CreatePixmap)(pScreen, 0, 0, pScreen->rootDepth, 0); - (*pScreen->SetScreenPixmap)(pPix); + pPix = (*pScreen->CreatePixmap) (pScreen, 0, 0, pScreen->rootDepth, 0); + (*pScreen->SetScreenPixmap) (pPix); } rowbytes = PixmapBytePad(pScreen->width, pScreen->rootDepth); @@ -111,7 +110,6 @@ RootlessUpdateScreenPixmap(ScreenPtr pScreen) } } - /* * RootlessCreateScreenResources * Rootless implementations typically set a null framebuffer pointer, which @@ -125,7 +123,7 @@ RootlessCreateScreenResources(ScreenPtr pScreen) SCREEN_UNWRAP(pScreen, CreateScreenResources); if (pScreen->CreateScreenResources != NULL) - ret = (*pScreen->CreateScreenResources)(pScreen); + ret = (*pScreen->CreateScreenResources) (pScreen); SCREEN_WRAP(pScreen, CreateScreenResources); @@ -139,7 +137,6 @@ RootlessCreateScreenResources(ScreenPtr pScreen) return ret; } - static Bool RootlessCloseScreen(int i, ScreenPtr pScreen) { @@ -160,12 +157,12 @@ RootlessCloseScreen(int i, ScreenPtr pScreen) return pScreen->CloseScreen(i, pScreen); } - static void RootlessGetImage(DrawablePtr pDrawable, int sx, int sy, int w, int h, unsigned int format, unsigned long planeMask, char *pdstLine) { ScreenPtr pScreen = pDrawable->pScreen; + SCREEN_UNWRAP(pScreen, GetImage); if (pDrawable->type == DRAWABLE_WINDOW) { @@ -177,7 +174,7 @@ RootlessGetImage(DrawablePtr pDrawable, int sx, int sy, int w, int h, RootlessRedisplayScreen(pScreen); // RedisplayScreen stops drawing, so we need to start it again - RootlessStartDrawing((WindowPtr)pDrawable); + RootlessStartDrawing((WindowPtr) pDrawable); /* Check that we have some place to read from. */ winRec = WINREC(TopLevelParent((WindowPtr) pDrawable)); @@ -194,10 +191,10 @@ RootlessGetImage(DrawablePtr pDrawable, int sx, int sy, int w, int h, x1 = x0 + w; y1 = y0 + h; - x0 = max (x0, winRec->x); - y0 = max (y0, winRec->y); - x1 = min (x1, winRec->x + winRec->width); - y1 = min (y1, winRec->y + winRec->height); + x0 = max(x0, winRec->x); + y0 = max(y0, winRec->y); + x1 = min(x1, winRec->x + winRec->width); + y1 = min(y1, winRec->y + winRec->height); sx = x0 - pDrawable->x; sy = y0 - pDrawable->y; @@ -210,11 +207,10 @@ RootlessGetImage(DrawablePtr pDrawable, int sx, int sy, int w, int h, pScreen->GetImage(pDrawable, sx, sy, w, h, format, planeMask, pdstLine); -out: + out: SCREEN_WRAP(pScreen, GetImage); } - /* * RootlessSourceValidate * CopyArea and CopyPlane use a GC tied to the destination drawable. @@ -228,48 +224,50 @@ RootlessSourceValidate(DrawablePtr pDrawable, int x, int y, int w, int h, { SCREEN_UNWRAP(pDrawable->pScreen, SourceValidate); if (pDrawable->type == DRAWABLE_WINDOW) { - WindowPtr pWin = (WindowPtr)pDrawable; + WindowPtr pWin = (WindowPtr) pDrawable; + RootlessStartDrawing(pWin); } if (pDrawable->pScreen->SourceValidate) { - pDrawable->pScreen->SourceValidate(pDrawable, x, y, w, h, subWindowMode); + pDrawable->pScreen->SourceValidate(pDrawable, x, y, w, h, + subWindowMode); } SCREEN_WRAP(pDrawable->pScreen, SourceValidate); } static void RootlessComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst, - INT16 xSrc, INT16 ySrc, INT16 xMask, INT16 yMask, + INT16 xSrc, INT16 ySrc, INT16 xMask, INT16 yMask, INT16 xDst, INT16 yDst, CARD16 width, CARD16 height) { ScreenPtr pScreen = pDst->pDrawable->pScreen; PictureScreenPtr ps = GetPictureScreen(pScreen); WindowPtr srcWin, dstWin, maskWin = NULL; - if (pMask) { // pMask can be NULL - maskWin = (pMask->pDrawable && pMask->pDrawable->type == DRAWABLE_WINDOW) ? - (WindowPtr)pMask->pDrawable : NULL; + if (pMask) { // pMask can be NULL + maskWin = (pMask->pDrawable && + pMask->pDrawable->type == + DRAWABLE_WINDOW) ? (WindowPtr) pMask->pDrawable : NULL; } - srcWin = (pSrc->pDrawable && pSrc->pDrawable->type == DRAWABLE_WINDOW) ? - (WindowPtr)pSrc->pDrawable : NULL; - dstWin = (pDst->pDrawable->type == DRAWABLE_WINDOW) ? - (WindowPtr)pDst->pDrawable : NULL; + srcWin = (pSrc->pDrawable && pSrc->pDrawable->type == DRAWABLE_WINDOW) ? + (WindowPtr) pSrc->pDrawable : NULL; + dstWin = (pDst->pDrawable->type == DRAWABLE_WINDOW) ? + (WindowPtr) pDst->pDrawable : NULL; // SCREEN_UNWRAP(ps, Composite); ps->Composite = SCREENREC(pScreen)->Composite; - if (srcWin && IsFramedWindow(srcWin)) + if (srcWin && IsFramedWindow(srcWin)) RootlessStartDrawing(srcWin); if (maskWin && IsFramedWindow(maskWin)) RootlessStartDrawing(maskWin); - if (dstWin && IsFramedWindow(dstWin)) + if (dstWin && IsFramedWindow(dstWin)) RootlessStartDrawing(dstWin); ps->Composite(op, pSrc, pMask, pDst, - xSrc, ySrc, xMask, yMask, - xDst, yDst, width, height); + xSrc, ySrc, xMask, yMask, xDst, yDst, width, height); - if (dstWin && IsFramedWindow(dstWin)) { + if (dstWin && IsFramedWindow(dstWin)) { RootlessDamageRect(dstWin, xDst, yDst, width, height); } @@ -277,11 +275,10 @@ RootlessComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst, // SCREEN_WRAP(ps, Composite); } - static void RootlessGlyphs(CARD8 op, PicturePtr pSrc, PicturePtr pDst, PictFormatPtr maskFormat, INT16 xSrc, INT16 ySrc, - int nlist, GlyphListPtr list, GlyphPtr *glyphs) + int nlist, GlyphListPtr list, GlyphPtr * glyphs) { ScreenPtr pScreen = pDst->pDrawable->pScreen; PictureScreenPtr ps = GetPictureScreen(pScreen); @@ -291,12 +288,14 @@ RootlessGlyphs(CARD8 op, PicturePtr pSrc, PicturePtr pDst, WindowPtr srcWin, dstWin; srcWin = (pSrc->pDrawable && pSrc->pDrawable->type == DRAWABLE_WINDOW) ? - (WindowPtr)pSrc->pDrawable : NULL; + (WindowPtr) pSrc->pDrawable : NULL; dstWin = (pDst->pDrawable->type == DRAWABLE_WINDOW) ? - (WindowPtr)pDst->pDrawable : NULL; + (WindowPtr) pDst->pDrawable : NULL; - if (srcWin && IsFramedWindow(srcWin)) RootlessStartDrawing(srcWin); - if (dstWin && IsFramedWindow(dstWin)) RootlessStartDrawing(dstWin); + if (srcWin && IsFramedWindow(srcWin)) + RootlessStartDrawing(srcWin); + if (dstWin && IsFramedWindow(dstWin)) + RootlessStartDrawing(dstWin); //SCREEN_UNWRAP(ps, Glyphs); ps->Glyphs = SCREENREC(pScreen)->Glyphs; @@ -340,10 +339,10 @@ RootlessGlyphs(CARD8 op, PicturePtr pSrc, PicturePtr pDst, x2 = x1 + glyph->info.width; y2 = y1 + glyph->info.height; - box.x1 = max (box.x1, x1); - box.y1 = max (box.y1, y1); - box.x2 = max (box.x2, x2); - box.y2 = max (box.y2, y2); + box.x1 = max(box.x1, x1); + box.y1 = max(box.y1, y1); + box.x2 = max(box.x2, x2); + box.y2 = max(box.y2, y2); x += glyph->info.xOff; y += glyph->info.yOff; @@ -356,7 +355,6 @@ RootlessGlyphs(CARD8 op, PicturePtr pSrc, PicturePtr pDst, } } - /* * RootlessValidateTree * ValidateTree is modified in two ways: @@ -378,7 +376,8 @@ RootlessValidateTree(WindowPtr pParent, WindowPtr pChild, VTKind kind) if (IsRoot(pParent)) { RL_DEBUG_MSG("custom "); result = RootlessMiValidateTree(pParent, pChild, kind); - } else { + } + else { HUGE_ROOT(pParent); result = pScreen->ValidateTree(pParent, pChild, kind); NORMAL_ROOT(pParent); @@ -390,7 +389,6 @@ RootlessValidateTree(WindowPtr pParent, WindowPtr pChild, VTKind kind) return result; } - /* * RootlessMarkOverlappedWindows * MarkOverlappedWindows is modified to ignore overlapping @@ -403,6 +401,7 @@ RootlessMarkOverlappedWindows(WindowPtr pWin, WindowPtr pFirst, RegionRec saveRoot; Bool result; ScreenPtr pScreen = pWin->drawable.pScreen; + SCREEN_UNWRAP(pScreen, MarkOverlappedWindows); RL_DEBUG_MSG("MARKOVERLAPPEDWINDOWS start "); @@ -412,7 +411,7 @@ RootlessMarkOverlappedWindows(WindowPtr pWin, WindowPtr pFirst, RL_DEBUG_MSG("is root not marking "); result = FALSE; } - else if (! IsTopLevel(pWin)) { + else if (!IsTopLevel(pWin)) { // not top-level window - mark normally result = pScreen->MarkOverlappedWindows(pWin, pFirst, ppLayerWin); } @@ -426,7 +425,8 @@ RootlessMarkOverlappedWindows(WindowPtr pWin, WindowPtr pFirst, RL_DEBUG_MSG("is top level! "); /* single layered systems are easy */ - if (ppLayerWin) *ppLayerWin = pWin; + if (ppLayerWin) + *ppLayerWin = pWin; if (pWin == pFirst) { /* Blindly mark pWin and all of its inferiors. This is a slight @@ -437,10 +437,10 @@ RootlessMarkOverlappedWindows(WindowPtr pWin, WindowPtr pFirst, while (1) { if (pChild->viewable) { if (RegionBroken(&pChild->winSize)) - SetWinSize (pChild); + SetWinSize(pChild); if (RegionBroken(&pChild->borderSize)) - SetBorderSize (pChild); - (* MarkWindow)(pChild); + SetBorderSize(pChild); + (*MarkWindow) (pChild); if (pChild->firstChild) { pChild = pChild->firstChild; continue; @@ -455,7 +455,7 @@ RootlessMarkOverlappedWindows(WindowPtr pWin, WindowPtr pFirst, anyMarked = TRUE; } if (anyMarked) - (* MarkWindow)(pWin->parent); + (*MarkWindow) (pWin->parent); result = anyMarked; } NORMAL_ROOT(pWin); @@ -465,94 +465,94 @@ RootlessMarkOverlappedWindows(WindowPtr pWin, WindowPtr pFirst, return result; } -static void expose_1 (WindowPtr pWin) { +static void +expose_1(WindowPtr pWin) +{ WindowPtr pChild; - + if (!pWin->realized) return; - + miPaintWindow(pWin, &pWin->borderClip, PW_BACKGROUND); - + /* FIXME: comments in windowstr.h indicate that borderClip doesn't - include subwindow visibility. But I'm not so sure.. so we may - be exposing too much.. */ - - miSendExposures (pWin, &pWin->borderClip, - pWin->drawable.x, pWin->drawable.y); - + include subwindow visibility. But I'm not so sure.. so we may + be exposing too much.. */ + + miSendExposures(pWin, &pWin->borderClip, + pWin->drawable.x, pWin->drawable.y); + for (pChild = pWin->firstChild; pChild != NULL; pChild = pChild->nextSib) - expose_1 (pChild); + expose_1(pChild); } void -RootlessScreenExpose (ScreenPtr pScreen) +RootlessScreenExpose(ScreenPtr pScreen) { - expose_1 (pScreen->root); + expose_1(pScreen->root); } - ColormapPtr -RootlessGetColormap (ScreenPtr pScreen) +RootlessGetColormap(ScreenPtr pScreen) { - RootlessScreenRec *s = SCREENREC (pScreen); + RootlessScreenRec *s = SCREENREC(pScreen); - return s->colormap; + return s->colormap; } static void -RootlessInstallColormap (ColormapPtr pMap) +RootlessInstallColormap(ColormapPtr pMap) { - ScreenPtr pScreen = pMap->pScreen; - RootlessScreenRec *s = SCREENREC (pScreen); + ScreenPtr pScreen = pMap->pScreen; + RootlessScreenRec *s = SCREENREC(pScreen); - SCREEN_UNWRAP(pScreen, InstallColormap); + SCREEN_UNWRAP(pScreen, InstallColormap); - if (s->colormap != pMap) { - s->colormap = pMap; - s->colormap_changed = TRUE; - RootlessQueueRedisplay (pScreen); - } + if (s->colormap != pMap) { + s->colormap = pMap; + s->colormap_changed = TRUE; + RootlessQueueRedisplay(pScreen); + } - pScreen->InstallColormap (pMap); + pScreen->InstallColormap(pMap); - SCREEN_WRAP (pScreen, InstallColormap); + SCREEN_WRAP(pScreen, InstallColormap); } static void -RootlessUninstallColormap (ColormapPtr pMap) +RootlessUninstallColormap(ColormapPtr pMap) { - ScreenPtr pScreen = pMap->pScreen; - RootlessScreenRec *s = SCREENREC (pScreen); + ScreenPtr pScreen = pMap->pScreen; + RootlessScreenRec *s = SCREENREC(pScreen); - SCREEN_UNWRAP(pScreen, UninstallColormap); + SCREEN_UNWRAP(pScreen, UninstallColormap); - if (s->colormap == pMap) - s->colormap = NULL; + if (s->colormap == pMap) + s->colormap = NULL; - pScreen->UninstallColormap (pMap); + pScreen->UninstallColormap(pMap); - SCREEN_WRAP(pScreen, UninstallColormap); + SCREEN_WRAP(pScreen, UninstallColormap); } static void -RootlessStoreColors (ColormapPtr pMap, int ndef, xColorItem *pdef) +RootlessStoreColors(ColormapPtr pMap, int ndef, xColorItem * pdef) { - ScreenPtr pScreen = pMap->pScreen; - RootlessScreenRec *s = SCREENREC (pScreen); + ScreenPtr pScreen = pMap->pScreen; + RootlessScreenRec *s = SCREENREC(pScreen); - SCREEN_UNWRAP(pScreen, StoreColors); + SCREEN_UNWRAP(pScreen, StoreColors); - if (s->colormap == pMap && ndef > 0) { - s->colormap_changed = TRUE; - RootlessQueueRedisplay (pScreen); - } + if (s->colormap == pMap && ndef > 0) { + s->colormap_changed = TRUE; + RootlessQueueRedisplay(pScreen); + } - pScreen->StoreColors (pMap, ndef, pdef); + pScreen->StoreColors(pMap, ndef, pdef); - SCREEN_WRAP(pScreen, StoreColors); + SCREEN_WRAP(pScreen, StoreColors); } - static CARD32 RootlessRedisplayCallback(OsTimerPtr timer, CARD32 time, void *arg) { @@ -576,7 +576,6 @@ RootlessRedisplayCallback(OsTimerPtr timer, CARD32 time, void *arg) return ROOTLESS_REDISPLAY_DELAY; } - /* * RootlessQueueRedisplay * Queue a redisplay after a timer delay to ensure we do not redisplay @@ -594,12 +593,10 @@ RootlessQueueRedisplay(ScreenPtr pScreen) screenRec->redisplay_timer = TimerSet(screenRec->redisplay_timer, 0, ROOTLESS_REDISPLAY_DELAY, - RootlessRedisplayCallback, - screenRec); + RootlessRedisplayCallback, screenRec); screenRec->redisplay_timer_set = TRUE; } - /* * RootlessBlockHandler * If the redisplay timer has expired, flush drawing before blocking @@ -618,30 +615,31 @@ RootlessBlockHandler(pointer pbdata, OSTimePtr pTimeout, pointer pReadmask) } } - static void RootlessWakeupHandler(pointer data, int i, pointer LastSelectMask) { // nothing here } - static Bool RootlessAllocatePrivates(ScreenPtr pScreen) { RootlessScreenRec *s; - if (!dixRegisterPrivateKey(&rootlessGCPrivateKeyRec, PRIVATE_GC, sizeof(RootlessGCRec))) + if (!dixRegisterPrivateKey + (&rootlessGCPrivateKeyRec, PRIVATE_GC, sizeof(RootlessGCRec))) return FALSE; if (!dixRegisterPrivateKey(&rootlessScreenPrivateKeyRec, PRIVATE_SCREEN, 0)) return FALSE; if (!dixRegisterPrivateKey(&rootlessWindowPrivateKeyRec, PRIVATE_WINDOW, 0)) return FALSE; - if (!dixRegisterPrivateKey(&rootlessWindowOldPixmapPrivateKeyRec, PRIVATE_WINDOW, 0)) + if (!dixRegisterPrivateKey + (&rootlessWindowOldPixmapPrivateKeyRec, PRIVATE_WINDOW, 0)) return FALSE; s = malloc(sizeof(RootlessScreenRec)); - if (! s) return FALSE; + if (!s) + return FALSE; SETSCREENREC(pScreen, s); s->pixmap_data = NULL; @@ -653,7 +651,6 @@ RootlessAllocatePrivates(ScreenPtr pScreen) return TRUE; } - static void RootlessWrap(ScreenPtr pScreen) { @@ -696,6 +693,7 @@ RootlessWrap(ScreenPtr pScreen) { // Composite and Glyphs don't use normal screen wrapping PictureScreenPtr ps = GetPictureScreen(pScreen); + s->Composite = ps->Composite; ps->Composite = RootlessComposite; s->Glyphs = ps->Glyphs; @@ -707,13 +705,13 @@ RootlessWrap(ScreenPtr pScreen) #undef WRAP } - /* * RootlessInit * Called by the rootless implementation to initialize the rootless layer. * Rootless wraps lots of stuff and needs a bunch of devPrivates. */ -Bool RootlessInit(ScreenPtr pScreen, RootlessFrameProcsPtr procs) +Bool +RootlessInit(ScreenPtr pScreen, RootlessFrameProcsPtr procs) { RootlessScreenRec *s; @@ -730,25 +728,24 @@ Bool RootlessInit(ScreenPtr pScreen, RootlessFrameProcsPtr procs) if (!RegisterBlockAndWakeupHandlers(RootlessBlockHandler, RootlessWakeupHandler, - (pointer) pScreen)) - { + (pointer) pScreen)) { return FALSE; } return TRUE; } -void RootlessUpdateRooted (Bool state) { +void +RootlessUpdateRooted(Bool state) +{ int i; - - if (!state) - { + + if (!state) { for (i = 0; i < screenInfo.numScreens; i++) - RootlessDisableRoot (screenInfo.screens[i]); + RootlessDisableRoot(screenInfo.screens[i]); } - else - { + else { for (i = 0; i < screenInfo.numScreens; i++) - RootlessEnableRoot (screenInfo.screens[i]); + RootlessEnableRoot(screenInfo.screens[i]); } } diff --git a/miext/rootless/rootlessValTree.c b/miext/rootless/rootlessValTree.c index 9aa881423..730d2917e 100644 --- a/miext/rootless/rootlessValTree.c +++ b/miext/rootless/rootlessValTree.c @@ -86,14 +86,14 @@ Equipment Corporation. * Summer '89: Joel McCormack -- so fast you wouldn't believe it possible. * In particular, much improved code for window mapping and * circulating. - * Bob Scheifler -- avoid miComputeClips for unmapped windows, - * valdata changes + * Bob Scheifler -- avoid miComputeClips for unmapped windows, + * valdata changes */ #ifdef HAVE_DIX_CONFIG_H #include <dix-config.h> #endif -#include <stddef.h> /* For NULL */ +#include <stddef.h> /* For NULL */ #include <X11/X.h> #include "scrnintstr.h" #include "validate.h" @@ -104,65 +104,63 @@ Equipment Corporation. #include "globals.h" -int RootlessMiValidateTree (WindowPtr pRoot, WindowPtr pChild, VTKind kind); +int RootlessMiValidateTree(WindowPtr pRoot, WindowPtr pChild, VTKind kind); /* * Compute the visibility of a shaped window */ static int -RootlessShapedWindowIn (RegionPtr universe, - RegionPtr bounding, BoxPtr rect, int x, int y) +RootlessShapedWindowIn(RegionPtr universe, + RegionPtr bounding, BoxPtr rect, int x, int y) { - BoxRec box; - register BoxPtr boundBox; - int nbox; - Bool someIn, someOut; + BoxRec box; + register BoxPtr boundBox; + int nbox; + Bool someIn, someOut; register int t, x1, y1, x2, y2; - nbox = RegionNumRects (bounding); - boundBox = RegionRects (bounding); + nbox = RegionNumRects(bounding); + boundBox = RegionRects(bounding); someIn = someOut = FALSE; x1 = rect->x1; y1 = rect->y1; x2 = rect->x2; y2 = rect->y2; - while (nbox--) - { - if ((t = boundBox->x1 + x) < x1) - t = x1; - box.x1 = t; - if ((t = boundBox->y1 + y) < y1) - t = y1; - box.y1 = t; - if ((t = boundBox->x2 + x) > x2) - t = x2; - box.x2 = t; - if ((t = boundBox->y2 + y) > y2) - t = y2; - box.y2 = t; - if (box.x1 > box.x2) - box.x2 = box.x1; - if (box.y1 > box.y2) - box.y2 = box.y1; - switch (RegionContainsRect(universe, &box)) - { - case rgnIN: - if (someOut) - return rgnPART; - someIn = TRUE; - break; - case rgnOUT: - if (someIn) - return rgnPART; - someOut = TRUE; - break; - default: - return rgnPART; - } - boundBox++; + while (nbox--) { + if ((t = boundBox->x1 + x) < x1) + t = x1; + box.x1 = t; + if ((t = boundBox->y1 + y) < y1) + t = y1; + box.y1 = t; + if ((t = boundBox->x2 + x) > x2) + t = x2; + box.x2 = t; + if ((t = boundBox->y2 + y) > y2) + t = y2; + box.y2 = t; + if (box.x1 > box.x2) + box.x2 = box.x1; + if (box.y1 > box.y2) + box.y2 = box.y1; + switch (RegionContainsRect(universe, &box)) { + case rgnIN: + if (someOut) + return rgnPART; + someIn = TRUE; + break; + case rgnOUT: + if (someIn) + return rgnPART; + someOut = TRUE; + break; + default: + return rgnPART; + } + boundBox++; } if (someIn) - return rgnIN; + return rgnIN; return rgnOUT; } @@ -170,7 +168,6 @@ RootlessShapedWindowIn (RegionPtr universe, HasBorder(w) && \ (w)->backgroundState == ParentRelative) - /* *----------------------------------------------------------------------- * RootlessComputeClips -- @@ -188,18 +185,18 @@ RootlessShapedWindowIn (RegionPtr universe, *----------------------------------------------------------------------- */ static void -RootlessComputeClips (WindowPtr pParent, ScreenPtr pScreen, - RegionPtr universe, VTKind kind, RegionPtr exposed) +RootlessComputeClips(WindowPtr pParent, ScreenPtr pScreen, + RegionPtr universe, VTKind kind, RegionPtr exposed) { - int dx, - dy; - RegionRec childUniverse; - register WindowPtr pChild; - int oldVis, newVis; - BoxRec borderSize; - RegionRec childUnion; - Bool overlap; - RegionPtr borderVisible; + int dx, dy; + RegionRec childUniverse; + register WindowPtr pChild; + int oldVis, newVis; + BoxRec borderSize; + RegionRec childUnion; + Bool overlap; + RegionPtr borderVisible; + /* * Figure out the new visibility of this window. * The extent of the universe should be the same as the extent of @@ -210,52 +207,52 @@ RootlessComputeClips (WindowPtr pParent, ScreenPtr pScreen, */ borderSize.x1 = pParent->drawable.x - wBorderWidth(pParent); borderSize.y1 = pParent->drawable.y - wBorderWidth(pParent); - dx = (int) pParent->drawable.x + (int) pParent->drawable.width + wBorderWidth(pParent); + dx = (int) pParent->drawable.x + (int) pParent->drawable.width + + wBorderWidth(pParent); if (dx > 32767) - dx = 32767; + dx = 32767; borderSize.x2 = dx; - dy = (int) pParent->drawable.y + (int) pParent->drawable.height + wBorderWidth(pParent); + dy = (int) pParent->drawable.y + (int) pParent->drawable.height + + wBorderWidth(pParent); if (dy > 32767) - dy = 32767; + dy = 32767; borderSize.y2 = dy; oldVis = pParent->visibility; - switch (RegionContainsRect(universe, &borderSize)) - { + switch (RegionContainsRect(universe, &borderSize)) { case rgnIN: - newVis = VisibilityUnobscured; - break; - case rgnPART: - newVis = VisibilityPartiallyObscured; - { - RegionPtr pBounding; - - if ((pBounding = wBoundingShape (pParent))) - { - switch (RootlessShapedWindowIn (universe, - pBounding, &borderSize, - pParent->drawable.x, - pParent->drawable.y)) - { - case rgnIN: - newVis = VisibilityUnobscured; - break; - case rgnOUT: - newVis = VisibilityFullyObscured; - break; - } - } - } - break; - default: - newVis = VisibilityFullyObscured; - break; + newVis = VisibilityUnobscured; + break; + case rgnPART: + newVis = VisibilityPartiallyObscured; + { + RegionPtr pBounding; + + if ((pBounding = wBoundingShape(pParent))) { + switch (RootlessShapedWindowIn(universe, + pBounding, &borderSize, + pParent->drawable.x, + pParent->drawable.y)) { + case rgnIN: + newVis = VisibilityUnobscured; + break; + case rgnOUT: + newVis = VisibilityFullyObscured; + break; + } + } + } + break; + default: + newVis = VisibilityFullyObscured; + break; } pParent->visibility = newVis; if (oldVis != newVis && - ((pParent->eventMask | wOtherEventMasks(pParent)) & VisibilityChangeMask)) - SendVisibilityNotify(pParent); + ((pParent-> + eventMask | wOtherEventMasks(pParent)) & VisibilityChangeMask)) + SendVisibilityNotify(pParent); dx = pParent->drawable.x - pParent->valdata->before.oldAbsCorner.x; dy = pParent->drawable.y - pParent->valdata->before.oldAbsCorner.y; @@ -268,74 +265,64 @@ RootlessComputeClips (WindowPtr pParent, ScreenPtr pScreen, case VTMap: case VTStack: case VTUnmap: - break; + break; case VTMove: - if ((oldVis == newVis) && - ((oldVis == VisibilityFullyObscured) || - (oldVis == VisibilityUnobscured))) - { - pChild = pParent; - while (1) - { - if (pChild->viewable) - { - if (pChild->visibility != VisibilityFullyObscured) - { - RegionTranslate(&pChild->borderClip, - dx, dy); - RegionTranslate(&pChild->clipList, - dx, dy); - pChild->drawable.serialNumber = NEXT_SERIAL_NUMBER; - if (pScreen->ClipNotify) - (* pScreen->ClipNotify) (pChild, dx, dy); - - } - if (pChild->valdata) - { - RegionNull(&pChild->valdata->after.borderExposed); - if (HasParentRelativeBorder(pChild)) - { - RegionSubtract(&pChild->valdata->after.borderExposed, - &pChild->borderClip, - &pChild->winSize); - } - RegionNull(&pChild->valdata->after.exposed); - } - if (pChild->firstChild) - { - pChild = pChild->firstChild; - continue; - } - } - while (!pChild->nextSib && (pChild != pParent)) - pChild = pChild->parent; - if (pChild == pParent) - break; - pChild = pChild->nextSib; - } - return; - } - /* fall through */ + if ((oldVis == newVis) && + ((oldVis == VisibilityFullyObscured) || + (oldVis == VisibilityUnobscured))) { + pChild = pParent; + while (1) { + if (pChild->viewable) { + if (pChild->visibility != VisibilityFullyObscured) { + RegionTranslate(&pChild->borderClip, dx, dy); + RegionTranslate(&pChild->clipList, dx, dy); + pChild->drawable.serialNumber = NEXT_SERIAL_NUMBER; + if (pScreen->ClipNotify) + (*pScreen->ClipNotify) (pChild, dx, dy); + + } + if (pChild->valdata) { + RegionNull(&pChild->valdata->after.borderExposed); + if (HasParentRelativeBorder(pChild)) { + RegionSubtract(&pChild->valdata->after. + borderExposed, &pChild->borderClip, + &pChild->winSize); + } + RegionNull(&pChild->valdata->after.exposed); + } + if (pChild->firstChild) { + pChild = pChild->firstChild; + continue; + } + } + while (!pChild->nextSib && (pChild != pParent)) + pChild = pChild->parent; + if (pChild == pParent) + break; + pChild = pChild->nextSib; + } + return; + } + /* fall through */ default: - /* - * To calculate exposures correctly, we have to translate the old - * borderClip and clipList regions to the window's new location so there - * is a correspondence between pieces of the new and old clipping regions. - */ - if (dx || dy) - { - /* - * We translate the old clipList because that will be exposed or copied - * if gravity is right. - */ - RegionTranslate(&pParent->borderClip, dx, dy); - RegionTranslate(&pParent->clipList, dx, dy); - } - break; + /* + * To calculate exposures correctly, we have to translate the old + * borderClip and clipList regions to the window's new location so there + * is a correspondence between pieces of the new and old clipping regions. + */ + if (dx || dy) { + /* + * We translate the old clipList because that will be exposed or copied + * if gravity is right. + */ + RegionTranslate(&pParent->borderClip, dx, dy); + RegionTranslate(&pParent->clipList, dx, dy); + } + break; case VTBroken: - RegionEmpty(&pParent->borderClip); - RegionEmpty(&pParent->clipList); - break; + RegionEmpty(&pParent->borderClip); + RegionEmpty(&pParent->clipList); + break; } borderVisible = pParent->valdata->before.borderVisible; @@ -351,104 +338,91 @@ RootlessComputeClips (WindowPtr pParent, ScreenPtr pScreen, * This leaves a region of pieces that weren't exposed before. */ - if (HasBorder (pParent)) - { - if (borderVisible) - { - /* - * when the border changes shape, the old visible portions - * of the border will be saved by DIX in borderVisible -- - * use that region and destroy it - */ - RegionSubtract(exposed, universe, borderVisible); - RegionDestroy(borderVisible); - } - else - { - RegionSubtract(exposed, universe, &pParent->borderClip); - } - if (HasParentRelativeBorder(pParent) && (dx || dy)) { - RegionSubtract(&pParent->valdata->after.borderExposed, - universe, - &pParent->winSize); - } else { - RegionSubtract(&pParent->valdata->after.borderExposed, - exposed, &pParent->winSize); - } - - RegionCopy(&pParent->borderClip, universe); - - /* - * To get the right clipList for the parent, and to make doubly sure - * that no child overlaps the parent's border, we remove the parent's - * border from the universe before proceeding. - */ - - RegionIntersect(universe, universe, &pParent->winSize); + if (HasBorder(pParent)) { + if (borderVisible) { + /* + * when the border changes shape, the old visible portions + * of the border will be saved by DIX in borderVisible -- + * use that region and destroy it + */ + RegionSubtract(exposed, universe, borderVisible); + RegionDestroy(borderVisible); + } + else { + RegionSubtract(exposed, universe, &pParent->borderClip); + } + if (HasParentRelativeBorder(pParent) && (dx || dy)) { + RegionSubtract(&pParent->valdata->after.borderExposed, + universe, &pParent->winSize); + } + else { + RegionSubtract(&pParent->valdata->after.borderExposed, + exposed, &pParent->winSize); + } + + RegionCopy(&pParent->borderClip, universe); + + /* + * To get the right clipList for the parent, and to make doubly sure + * that no child overlaps the parent's border, we remove the parent's + * border from the universe before proceeding. + */ + + RegionIntersect(universe, universe, &pParent->winSize); } else - RegionCopy(&pParent->borderClip, universe); - - if ((pChild = pParent->firstChild) && pParent->mapped) - { - RegionNull(&childUniverse); - RegionNull(&childUnion); - if ((pChild->drawable.y < pParent->lastChild->drawable.y) || - ((pChild->drawable.y == pParent->lastChild->drawable.y) && - (pChild->drawable.x < pParent->lastChild->drawable.x))) - { - for (; pChild; pChild = pChild->nextSib) - { - if (pChild->viewable) - RegionAppend(&childUnion, &pChild->borderSize); - } - } - else - { - for (pChild = pParent->lastChild; pChild; pChild = pChild->prevSib) - { - if (pChild->viewable) - RegionAppend(&childUnion, &pChild->borderSize); - } - } - RegionValidate(&childUnion, &overlap); - - for (pChild = pParent->firstChild; - pChild; - pChild = pChild->nextSib) - { - if (pChild->viewable) { - /* - * If the child is viewable, we want to remove its extents - * from the current universe, but we only re-clip it if - * it's been marked. - */ - if (pChild->valdata) { - /* - * Figure out the new universe from the child's - * perspective and recurse. - */ - RegionIntersect(&childUniverse, - universe, - &pChild->borderSize); - RootlessComputeClips (pChild, pScreen, &childUniverse, - kind, exposed); - } - /* - * Once the child has been processed, we remove its extents - * from the current universe, thus denying its space to any - * other sibling. - */ - if (overlap) - RegionSubtract(universe, universe, - &pChild->borderSize); - } - } - if (!overlap) - RegionSubtract(universe, universe, &childUnion); - RegionUninit(&childUnion); - RegionUninit(&childUniverse); - } /* if any children */ + RegionCopy(&pParent->borderClip, universe); + + if ((pChild = pParent->firstChild) && pParent->mapped) { + RegionNull(&childUniverse); + RegionNull(&childUnion); + if ((pChild->drawable.y < pParent->lastChild->drawable.y) || + ((pChild->drawable.y == pParent->lastChild->drawable.y) && + (pChild->drawable.x < pParent->lastChild->drawable.x))) { + for (; pChild; pChild = pChild->nextSib) { + if (pChild->viewable) + RegionAppend(&childUnion, &pChild->borderSize); + } + } + else { + for (pChild = pParent->lastChild; pChild; pChild = pChild->prevSib) { + if (pChild->viewable) + RegionAppend(&childUnion, &pChild->borderSize); + } + } + RegionValidate(&childUnion, &overlap); + + for (pChild = pParent->firstChild; pChild; pChild = pChild->nextSib) { + if (pChild->viewable) { + /* + * If the child is viewable, we want to remove its extents + * from the current universe, but we only re-clip it if + * it's been marked. + */ + if (pChild->valdata) { + /* + * Figure out the new universe from the child's + * perspective and recurse. + */ + RegionIntersect(&childUniverse, + universe, &pChild->borderSize); + RootlessComputeClips(pChild, pScreen, &childUniverse, + kind, exposed); + } + /* + * Once the child has been processed, we remove its extents + * from the current universe, thus denying its space to any + * other sibling. + */ + if (overlap) + RegionSubtract(universe, universe, &pChild->borderSize); + } + } + if (!overlap) + RegionSubtract(universe, universe, &childUnion); + RegionUninit(&childUnion); + RegionUninit(&childUniverse); + } /* if any children */ /* * 'universe' now contains the new clipList for the parent window. @@ -457,25 +431,22 @@ RootlessComputeClips (WindowPtr pParent, ScreenPtr pScreen, * new, just as for the border. */ - if (oldVis == VisibilityFullyObscured || - oldVis == VisibilityNotViewable) - { - RegionCopy(&pParent->valdata->after.exposed, universe); + if (oldVis == VisibilityFullyObscured || oldVis == VisibilityNotViewable) { + RegionCopy(&pParent->valdata->after.exposed, universe); } else if (newVis != VisibilityFullyObscured && - newVis != VisibilityNotViewable) - { - RegionSubtract(&pParent->valdata->after.exposed, - universe, &pParent->clipList); + newVis != VisibilityNotViewable) { + RegionSubtract(&pParent->valdata->after.exposed, + universe, &pParent->clipList); } /* HACK ALERT - copying contents of regions, instead of regions */ { - RegionRec tmp; + RegionRec tmp; - tmp = pParent->clipList; - pParent->clipList = *universe; - *universe = tmp; + tmp = pParent->clipList; + pParent->clipList = *universe; + *universe = tmp; } #ifdef NOTDEF @@ -485,35 +456,33 @@ RootlessComputeClips (WindowPtr pParent, ScreenPtr pScreen, pParent->drawable.serialNumber = NEXT_SERIAL_NUMBER; if (pScreen->ClipNotify) - (* pScreen->ClipNotify) (pParent, dx, dy); + (*pScreen->ClipNotify) (pParent, dx, dy); } static void RootlessTreeObscured(WindowPtr pParent) { register WindowPtr pChild; - register int oldVis; + register int oldVis; pChild = pParent; - while (1) - { - if (pChild->viewable) - { - oldVis = pChild->visibility; - if (oldVis != (pChild->visibility = VisibilityFullyObscured) && - ((pChild->eventMask | wOtherEventMasks(pChild)) & VisibilityChangeMask)) - SendVisibilityNotify(pChild); - if (pChild->firstChild) - { - pChild = pChild->firstChild; - continue; - } - } - while (!pChild->nextSib && (pChild != pParent)) - pChild = pChild->parent; - if (pChild == pParent) - break; - pChild = pChild->nextSib; + while (1) { + if (pChild->viewable) { + oldVis = pChild->visibility; + if (oldVis != (pChild->visibility = VisibilityFullyObscured) && + ((pChild-> + eventMask | wOtherEventMasks(pChild)) & VisibilityChangeMask)) + SendVisibilityNotify(pChild); + if (pChild->firstChild) { + pChild = pChild->firstChild; + continue; + } + } + while (!pChild->nextSib && (pChild != pParent)) + pChild = pChild->parent; + if (pChild == pParent) + break; + pChild = pChild->nextSib; } } @@ -551,31 +520,30 @@ RootlessTreeObscured(WindowPtr pParent) We need to make sure top-level windows don't clip each other, and that top-level windows aren't clipped to the root window. */ -/*ARGSUSED*/ + /*ARGSUSED*/ // fixme this is ugly // Xprint/ValTree.c doesn't work, but maybe that method can? -int -RootlessMiValidateTree (WindowPtr pRoot, /* Parent to validate */ - WindowPtr pChild, /* First child of pRoot that was - * affected */ - VTKind kind /* What kind of configuration caused call */) + int +RootlessMiValidateTree(WindowPtr pRoot, /* Parent to validate */ + WindowPtr pChild, /* First child of pRoot that was + * affected */ + VTKind kind /* What kind of configuration caused call */ + ) { - RegionRec childClip; /* The new borderClip for the current - * child */ - RegionRec exposed; /* For intermediate calculations */ - register ScreenPtr pScreen; - register WindowPtr pWin; + RegionRec childClip; /* The new borderClip for the current + * child */ + RegionRec exposed; /* For intermediate calculations */ + register ScreenPtr pScreen; + register WindowPtr pWin; pScreen = pRoot->drawable.pScreen; if (pChild == NullWindow) - pChild = pRoot->firstChild; + pChild = pRoot->firstChild; RegionNull(&childClip); RegionNull(&exposed); - if (RegionBroken(&pRoot->clipList) && - !RegionBroken(&pRoot->borderClip)) - { + if (RegionBroken(&pRoot->clipList) && !RegionBroken(&pRoot->borderClip)) { // fixme this might not work, but hopefully doesn't happen anyway. kind = VTBroken; RegionEmpty(&pRoot->clipList); @@ -588,22 +556,21 @@ RootlessMiValidateTree (WindowPtr pRoot, /* Parent to validate */ * childClip is always reset to that child's size. */ - for (pWin = pChild; - pWin != NullWindow; - pWin = pWin->nextSib) - { + for (pWin = pChild; pWin != NullWindow; pWin = pWin->nextSib) { if (pWin->viewable) { if (pWin->valdata) { RegionCopy(&childClip, &pWin->borderSize); - RootlessComputeClips (pWin, pScreen, &childClip, kind, &exposed); - } else if (pWin->visibility == VisibilityNotViewable) { + RootlessComputeClips(pWin, pScreen, &childClip, kind, &exposed); + } + else if (pWin->visibility == VisibilityNotViewable) { RootlessTreeObscured(pWin); } - } else { + } + else { if (pWin->valdata) { RegionEmpty(&pWin->clipList); if (pScreen->ClipNotify) - (* pScreen->ClipNotify) (pWin, 0, 0); + (*pScreen->ClipNotify) (pWin, 0, 0); RegionEmpty(&pWin->borderClip); pWin->valdata = NULL; } diff --git a/miext/rootless/rootlessWindow.c b/miext/rootless/rootlessWindow.c index c4a32aa0d..cfcb6e558 100644 --- a/miext/rootless/rootlessWindow.c +++ b/miext/rootless/rootlessWindow.c @@ -33,8 +33,8 @@ #include <dix-config.h> #endif -#include <stddef.h> /* For NULL */ -#include <limits.h> /* For CHAR_BIT */ +#include <stddef.h> /* For NULL */ +#include <limits.h> /* For CHAR_BIT */ #include <assert.h> #include <X11/Xatom.h> #ifdef __APPLE__ @@ -67,9 +67,10 @@ extern Bool no_configure_window; return atom; \ } -DEFINE_ATOM_HELPER (xa_native_window_id, "_NATIVE_WINDOW_ID") +DEFINE_ATOM_HELPER(xa_native_window_id, "_NATIVE_WINDOW_ID") static Bool windows_hidden; + // TODO - abstract xp functions #ifdef __APPLE__ @@ -78,56 +79,64 @@ static Bool windows_hidden; #define MAKE_WINDOW_ID(x) ((xp_window_id)((size_t)(x))) void -RootlessNativeWindowStateChanged (WindowPtr pWin, unsigned int state) +RootlessNativeWindowStateChanged(WindowPtr pWin, unsigned int state) { - RootlessWindowRec *winRec; + RootlessWindowRec *winRec; - if (pWin == NULL) return; + if (pWin == NULL) + return; - winRec = WINREC (pWin); - if (winRec == NULL) return; + winRec = WINREC(pWin); + if (winRec == NULL) + return; - winRec->is_offscreen = ((state & XP_WINDOW_STATE_OFFSCREEN) != 0); - winRec->is_obscured = ((state & XP_WINDOW_STATE_OBSCURED) != 0); - pWin->rootlessUnhittable = winRec->is_offscreen; + winRec->is_offscreen = ((state & XP_WINDOW_STATE_OFFSCREEN) != 0); + winRec->is_obscured = ((state & XP_WINDOW_STATE_OBSCURED) != 0); + pWin->rootlessUnhittable = winRec->is_offscreen; } -void RootlessNativeWindowMoved (WindowPtr pWin) { +void +RootlessNativeWindowMoved(WindowPtr pWin) +{ xp_box bounds; int sx, sy, err; XID vlist[2]; Mask mask; ClientPtr pClient; RootlessWindowRec *winRec; - + winRec = WINREC(pWin); - - if (xp_get_window_bounds (MAKE_WINDOW_ID(winRec->wid), &bounds) != Success) return; - + + if (xp_get_window_bounds(MAKE_WINDOW_ID(winRec->wid), &bounds) != Success) + return; + sx = pWin->drawable.pScreen->x + darwinMainScreenX; sy = pWin->drawable.pScreen->y + darwinMainScreenY; - + /* Fake up a ConfigureWindow packet to resize the window to the current bounds. */ vlist[0] = (INT16) bounds.x1 - sx; vlist[1] = (INT16) bounds.y1 - sy; mask = CWX | CWY; - + /* pretend we're the owner of the window! */ - err = dixLookupClient(&pClient, pWin->drawable.id, serverClient, DixUnknownAccess); - if(err != Success) { - ErrorF("RootlessNativeWindowMoved(): Failed to lookup window: 0x%x\n", (unsigned int)pWin->drawable.id); + err = + dixLookupClient(&pClient, pWin->drawable.id, serverClient, + DixUnknownAccess); + if (err != Success) { + ErrorF("RootlessNativeWindowMoved(): Failed to lookup window: 0x%x\n", + (unsigned int) pWin->drawable.id); return; } - + /* Don't want to do anything to the physical window (avoids - notification-response feedback loops) */ - + notification-response feedback loops) */ + no_configure_window = TRUE; - ConfigureWindow (pWin, mask, vlist, pClient); + ConfigureWindow(pWin, mask, vlist, pClient); no_configure_window = FALSE; } -#endif /* __APPLE__ */ +#endif /* __APPLE__ */ /* * RootlessCreateWindow @@ -166,7 +175,6 @@ RootlessCreateWindow(WindowPtr pWin) return result; } - /* * RootlessDestroyFrame * Destroy the physical window associated with the given window. @@ -179,7 +187,6 @@ RootlessDestroyFrame(WindowPtr pWin, RootlessWindowPtr winRec) SETWINREC(pWin, NULL); } - /* * RootlessDestroyWindow * Destroy the physical window associated with the given window. @@ -201,8 +208,6 @@ RootlessDestroyWindow(WindowPtr pWin) return result; } - - static Bool RootlessGetShape(WindowPtr pWin, RegionPtr pShape) { @@ -219,12 +224,12 @@ RootlessGetShape(WindowPtr pWin, RegionPtr pShape) return TRUE; } - /* * RootlessReshapeFrame * Set the frame shape. */ -static void RootlessReshapeFrame(WindowPtr pWin) +static void +RootlessReshapeFrame(WindowPtr pWin) { RootlessWindowRec *winRec = WINREC(pWin); RegionRec newShape; @@ -248,7 +253,8 @@ static void RootlessReshapeFrame(WindowPtr pWin) RegionNumRects(&newShape), newShape.extents.x1, newShape.extents.y1, newShape.extents.x2, newShape.extents.y2); - } else { + } + else { RL_DEBUG_MSG("no shape "); } #endif @@ -259,7 +265,6 @@ static void RootlessReshapeFrame(WindowPtr pWin) RegionUninit(&newShape); } - /* * RootlessSetShape * Shape is usually set before a window is mapped and the window will @@ -278,8 +283,6 @@ RootlessSetShape(WindowPtr pWin, int kind) RootlessReshapeFrame(pWin); } - - /* Disallow ParentRelative background on top-level windows because the root window doesn't really have the right background. */ @@ -299,6 +302,7 @@ RootlessChangeWindowAttributes(WindowPtr pWin, unsigned long vmask) // disallow ParentRelative background state if (pWin->backgroundState == ParentRelative) { XID pixel = 0; + ChangeWindowAttributes(pWin, CWBackPixel, &pixel, serverClient); } } @@ -307,7 +311,6 @@ RootlessChangeWindowAttributes(WindowPtr pWin, unsigned long vmask) return result; } - /* * RootlessPositionWindow * This is a hook for when DIX moves or resizes a window. @@ -342,7 +345,6 @@ RootlessPositionWindow(WindowPtr pWin, int x, int y) return result; } - /* * RootlessInitializeFrame * Initialize some basic attributes of the frame. Note that winRec @@ -350,7 +352,7 @@ RootlessPositionWindow(WindowPtr pWin, int x, int y) * valuable. */ static void -RootlessInitializeFrame(WindowPtr pWin, RootlessWindowRec *winRec) +RootlessInitializeFrame(WindowPtr pWin, RootlessWindowRec * winRec) { DrawablePtr d = &pWin->drawable; int bw = wBorderWidth(pWin); @@ -359,8 +361,8 @@ RootlessInitializeFrame(WindowPtr pWin, RootlessWindowRec *winRec) winRec->x = d->x - bw; winRec->y = d->y - bw; - winRec->width = d->width + 2*bw; - winRec->height = d->height + 2*bw; + winRec->width = d->width + 2 * bw; + winRec->height = d->height + 2 * bw; winRec->borderWidth = bw; } @@ -411,8 +413,7 @@ RootlessEnsureFrame(WindowPtr pWin) if (!SCREENREC(pScreen)->imp->CreateFrame(winRec, pScreen, winRec->x + SCREEN_TO_GLOBAL_X, winRec->y + SCREEN_TO_GLOBAL_Y, - pShape)) - { + pShape)) { RL_DEBUG_MSG("implementation failed to create frame!\n"); free(winRec); SETWINREC(pWin, NULL); @@ -420,7 +421,7 @@ RootlessEnsureFrame(WindowPtr pWin) } if (pWin->drawable.depth == 8) - RootlessFlushWindowColormap(pWin); + RootlessFlushWindowColormap(pWin); if (pShape != NULL) RegionUninit(&shape); @@ -428,7 +429,6 @@ RootlessEnsureFrame(WindowPtr pWin) return winRec; } - /* * RootlessRealizeWindow * The frame is usually created here and not in CreateWindow so that @@ -458,21 +458,23 @@ RootlessRealizeWindow(WindowPtr pWin) // This might have been set before the window was mapped. if (pWin->backgroundState == ParentRelative) { XID pixel = 0; + ChangeWindowAttributes(pWin, CWBackPixel, &pixel, serverClient); } } - if (!IsRoot(pWin)) HUGE_ROOT(pWin); + if (!IsRoot(pWin)) + HUGE_ROOT(pWin); SCREEN_UNWRAP(pScreen, RealizeWindow); result = pScreen->RealizeWindow(pWin); SCREEN_WRAP(pScreen, RealizeWindow); - if (!IsRoot(pWin)) NORMAL_ROOT(pWin); + if (!IsRoot(pWin)) + NORMAL_ROOT(pWin); RL_DEBUG_MSG("realizewindow end\n"); return result; } - /* * RootlessFrameForWindow * Returns the frame ID for the physical window displaying the given window. @@ -500,7 +502,6 @@ RootlessFrameForWindow(WindowPtr pWin, Bool create) return winRec->wid; } - /* * RootlessUnrealizeWindow * Unmap the physical window. @@ -530,7 +531,6 @@ RootlessUnrealizeWindow(WindowPtr pWin) return result; } - /* * RootlessReorderWindow * Reorder the frame associated with the given window so that it's @@ -541,7 +541,8 @@ RootlessReorderWindow(WindowPtr pWin) { RootlessWindowRec *winRec = WINREC(pWin); - if (pWin->realized && winRec != NULL && !winRec->is_reorder_pending && !windows_hidden) { + if (pWin->realized && winRec != NULL && !winRec->is_reorder_pending && + !windows_hidden) { WindowPtr newPrevW; RootlessWindowRec *newPrev; RootlessFrameID newPrevID; @@ -566,7 +567,9 @@ RootlessReorderWindow(WindowPtr pWin) */ newPrevW = pWin->prevSib; - while (newPrevW && (WINREC(newPrevW) == NULL || !newPrevW->realized || newPrevW->rootlessUnhittable != pWin->rootlessUnhittable)) + while (newPrevW && + (WINREC(newPrevW) == NULL || !newPrevW->realized || + newPrevW->rootlessUnhittable != pWin->rootlessUnhittable)) newPrevW = newPrevW->prevSib; newPrev = newPrevW != NULL ? WINREC(newPrevW) : NULL; @@ -583,7 +586,6 @@ RootlessReorderWindow(WindowPtr pWin) } } - /* * RootlessRestackWindow * This is a hook for when DIX changes the window stacking order. @@ -625,7 +627,8 @@ RootlessRestackWindow(WindowPtr pWin, WindowPtr pOldNextSib) // Globals needed during window resize and move. static pointer gResizeDeathBits = NULL; static int gResizeDeathCount = 0; -static PixmapPtr gResizeDeathPix[2] = {NULL, NULL}; +static PixmapPtr gResizeDeathPix[2] = { NULL, NULL }; + static BoxRec gResizeDeathBounds[2]; static CopyWindowProcPtr gResizeOldCopyWindowProc = NULL; @@ -635,8 +638,7 @@ static CopyWindowProcPtr gResizeOldCopyWindowProc = NULL; * top-level windows. */ static void -RootlessNoCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, - RegionPtr prgnSrc) +RootlessNoCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc) { // some code expects the region to be translated int dx = ptOldOrg.x - pWin->drawable.x; @@ -647,7 +649,6 @@ RootlessNoCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionTranslate(prgnSrc, -dx, -dy); } - /* * RootlessResizeCopyWindow * CopyWindow used during ResizeWindow for gravity moves. Based on @@ -660,8 +661,8 @@ RootlessResizeCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc) { ScreenPtr pScreen = pWin->drawable.pScreen; - RegionRec rgnDst; - int dx, dy; + RegionRec rgnDst; + int dx, dy; RL_DEBUG_MSG("resizecopywindowFB start (win 0x%x) ", pWin); @@ -716,7 +717,6 @@ RootlessResizeCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RL_DEBUG_MSG("resizecopywindowFB end\n"); } - /* * RootlessCopyWindow * Update *new* location of window. Old location is redrawn with @@ -728,8 +728,8 @@ void RootlessCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc) { ScreenPtr pScreen = pWin->drawable.pScreen; - RegionRec rgnDst; - int dx, dy; + RegionRec rgnDst; + int dx, dy; BoxPtr extents; int area; @@ -750,8 +750,7 @@ RootlessCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc) /* If the area exceeds threshold, use the implementation's accelerated version. */ if (area > rootless_CopyWindow_threshold && - SCREENREC(pScreen)->imp->CopyWindow) - { + SCREENREC(pScreen)->imp->CopyWindow) { RootlessWindowRec *winRec; WindowPtr top; @@ -774,8 +773,7 @@ RootlessCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc) SCREENREC(pScreen)->imp->CopyWindow(winRec->wid, RegionNumRects(&rgnDst), - RegionRects(&rgnDst), - dx, dy); + RegionRects(&rgnDst), dx, dy); } else { RootlessStartDrawing(pWin); @@ -787,7 +785,7 @@ RootlessCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc) RootlessDamageRegion(pWin, prgnSrc); } -out: + out: RegionUninit(&rgnDst); fbValidateDrawable(&pWin->drawable); @@ -796,7 +794,6 @@ out: RL_DEBUG_MSG("copywindowFB end\n"); } - /* * Window resize procedures */ @@ -806,7 +803,6 @@ enum { HEIGHT_SMALLER = 2, }; - /* * ResizeWeighting * Choose gravity to avoid local copies. Do that by looking for @@ -835,7 +831,6 @@ ResizeWeighting(int oldX1, int oldY1, int oldX2, int oldY2, int oldBW, #endif } - /* * StartFrameResize * Prepare to resize a top-level window. The old window's pixels are @@ -871,8 +866,7 @@ StartFrameResize(WindowPtr pWin, Bool gravity, RL_DEBUG_MSG("RESIZE TOPLEVEL WINDOW with gravity %i ", gravity); RL_DEBUG_MSG("%d %d %d %d %d %d %d %d %d %d\n", - oldX, oldY, oldW, oldH, oldBW, - newX, newY, newW, newH, newBW); + oldX, oldY, oldW, oldH, oldBW, newX, newY, newW, newH, newBW); RootlessRedisplay(pWin); @@ -903,8 +897,8 @@ StartFrameResize(WindowPtr pWin, Bool gravity, need_window_source = TRUE; /* These comparisons were chosen to avoid setting bits when the sizes - are the same. (So the fastest case automatically gets taken when - dimensions are unchanging.) */ + are the same. (So the fastest case automatically gets taken when + dimensions are unchanging.) */ if (newW < oldW) code |= WIDTH_SMALLER; @@ -955,28 +949,33 @@ StartFrameResize(WindowPtr pWin, Bool gravity, copy_rect_width = copy_rect.x2 - copy_rect.x1; copy_rect_height = copy_rect.y2 - copy_rect.y1; copy_rowbytes = ((copy_rect_width * Bpp) + 31) & ~31; - gResizeDeathBits = malloc(copy_rowbytes - * copy_rect_height); + gResizeDeathBits = malloc(copy_rowbytes * copy_rect_height); if (copy_rect_width * copy_rect_height > - rootless_CopyBytes_threshold && - SCREENREC(pScreen)->imp->CopyBytes) - { - SCREENREC(pScreen)->imp->CopyBytes( - copy_rect_width * Bpp, copy_rect_height, - ((char *) winRec->pixelData) - + ((copy_rect.y1 - oldY) * winRec->bytesPerRow) - + (copy_rect.x1 - oldX) * Bpp, winRec->bytesPerRow, - gResizeDeathBits, copy_rowbytes); - } else { + rootless_CopyBytes_threshold && + SCREENREC(pScreen)->imp->CopyBytes) { + SCREENREC(pScreen)->imp->CopyBytes(copy_rect_width * Bpp, + copy_rect_height, + ((char *) winRec->pixelData) + + + ((copy_rect.y1 - + oldY) * + winRec->bytesPerRow) + + (copy_rect.x1 - + oldX) * Bpp, + winRec->bytesPerRow, + gResizeDeathBits, + copy_rowbytes); + } + else { fbBlt((FbBits *) (winRec->pixelData - + ((copy_rect.y1 - oldY) * winRec->bytesPerRow) - + (copy_rect.x1 - oldX) * Bpp), + + + ((copy_rect.y1 - oldY) * winRec->bytesPerRow) + + (copy_rect.x1 - oldX) * Bpp), winRec->bytesPerRow / sizeof(FbBits), 0, (FbBits *) gResizeDeathBits, - copy_rowbytes / sizeof(FbBits), 0, - copy_rect_width * Bpp, copy_rect_height, - GXcopy, FB_ALLONES, Bpp, 0, 0); + copy_rowbytes / sizeof(FbBits), 0, copy_rect_width * Bpp, + copy_rect_height, GXcopy, FB_ALLONES, Bpp, 0, 0); } gResizeDeathBounds[1] = copy_rect; @@ -1004,7 +1003,8 @@ StartFrameResize(WindowPtr pWin, Bool gravity, memcpy(gResizeDeathBits, winRec->pixelData, winRec->bytesPerRow * winRec->height); - gResizeDeathBounds[0] = (BoxRec) {oldX, oldY, oldX2, oldY2}; + gResizeDeathBounds[0] = (BoxRec) { + oldX, oldY, oldX2, oldY2}; gResizeDeathPix[0] = GetScratchPixmapHeader(pScreen, winRec->width, winRec->height, @@ -1041,7 +1041,8 @@ StartFrameResize(WindowPtr pWin, Bool gravity, window bits. */ if (need_window_source) { - gResizeDeathBounds[0] = (BoxRec) {oldX, oldY, oldX2, oldY2}; + gResizeDeathBounds[0] = (BoxRec) { + oldX, oldY, oldX2, oldY2}; gResizeDeathPix[0] = GetScratchPixmapHeader(pScreen, oldW, oldH, winRec->win->drawable.depth, @@ -1100,7 +1101,6 @@ StartFrameResize(WindowPtr pWin, Bool gravity, return resize_after; } - static void FinishFrameResize(WindowPtr pWin, Bool gravity, int oldX, int oldY, unsigned int oldW, unsigned int oldH, unsigned int oldBW, @@ -1148,7 +1148,6 @@ FinishFrameResize(WindowPtr pWin, Bool gravity, int oldX, int oldY, } } - /* * RootlessMoveWindow * If kind==VTOther, window border is resizing (and borderWidth is @@ -1174,7 +1173,8 @@ RootlessMoveWindow(WindowPtr pWin, int x, int y, WindowPtr pSib, VTKind kind) oldY = winRec->y; RootlessRedisplay(pWin); RootlessStartDrawing(pWin); - } else { + } + else { RL_DEBUG_MSG("movewindow border resizing "); oldBW = winRec->borderWidth; @@ -1186,8 +1186,8 @@ RootlessMoveWindow(WindowPtr pWin, int x, int y, WindowPtr pSib, VTKind kind) newBW = wBorderWidth(pWin); newX = x; newY = y; - newW = pWin->drawable.width + 2*newBW; - newH = pWin->drawable.height + 2*newBW; + newW = pWin->drawable.width + 2 * newBW; + newH = pWin->drawable.height + 2 * newBW; resize_after = StartFrameResize(pWin, FALSE, oldX, oldY, oldW, oldH, oldBW, @@ -1218,7 +1218,8 @@ RootlessMoveWindow(WindowPtr pWin, int x, int y, WindowPtr pSib, VTKind kind) SCREENREC(pScreen)->imp->MoveFrame(winRec->wid, pScreen, x + SCREEN_TO_GLOBAL_X, y + SCREEN_TO_GLOBAL_Y); - } else { + } + else { FinishFrameResize(pWin, FALSE, oldX, oldY, oldW, oldH, oldBW, newX, newY, newW, newH, newBW, resize_after); } @@ -1227,7 +1228,6 @@ RootlessMoveWindow(WindowPtr pWin, int x, int y, WindowPtr pSib, VTKind kind) RL_DEBUG_MSG("movewindow end\n"); } - /* * RootlessResizeWindow * Note: (x, y, w, h) as passed to this procedure don't match the frame @@ -1248,8 +1248,8 @@ RootlessResizeWindow(WindowPtr pWin, int x, int y, RegionRec saveRoot; RL_DEBUG_MSG("resizewindow start (win 0x%x) ", pWin); - - if(pWin->parent) { + + if (pWin->parent) { if (winRec) { oldBW = winRec->borderWidth; oldX = winRec->x; @@ -1260,8 +1260,8 @@ RootlessResizeWindow(WindowPtr pWin, int x, int y, newBW = oldBW; newX = x; newY = y; - newW = w + 2*newBW; - newH = h + 2*newBW; + newW = w + 2 * newBW; + newH = h + 2 * newBW; resize_after = StartFrameResize(pWin, TRUE, oldX, oldY, oldW, oldH, oldBW, @@ -1278,7 +1278,8 @@ RootlessResizeWindow(WindowPtr pWin, int x, int y, FinishFrameResize(pWin, TRUE, oldX, oldY, oldW, oldH, oldBW, newX, newY, newW, newH, newBW, resize_after); } - } else { + } + else { /* Special case for resizing the root window */ BoxRec box; @@ -1287,8 +1288,10 @@ RootlessResizeWindow(WindowPtr pWin, int x, int y, pWin->drawable.width = w; pWin->drawable.height = h; - box.x1 = x; box.y1 = y; - box.x2 = x + w; box.y2 = y + h; + box.x1 = x; + box.y1 = y; + box.x2 = x + w; + box.y2 = y + h; RegionUninit(&pWin->winSize); RegionInit(&pWin->winSize, &box, 1); RegionCopy(&pWin->borderSize, &pWin->winSize); @@ -1303,13 +1306,12 @@ RootlessResizeWindow(WindowPtr pWin, int x, int y, } miSendExposures(pWin, &pWin->borderClip, - pWin->drawable.x, pWin->drawable.y); + pWin->drawable.x, pWin->drawable.y); } RL_DEBUG_MSG("resizewindow end\n"); } - /* * RootlessRepositionWindow * Called by the implementation when a window needs to be repositioned to @@ -1334,7 +1336,6 @@ RootlessRepositionWindow(WindowPtr pWin) RootlessReorderWindow(pWin); } - /* * RootlessReparentWindow * Called after a window has been reparented. Generally windows are not @@ -1353,8 +1354,7 @@ RootlessReparentWindow(WindowPtr pWin, WindowPtr pPriorParent) /* Check that window is not top-level now, but used to be. */ if (IsRoot(pWin) || IsRoot(pWin->parent) - || IsTopLevel(pWin) || winRec == NULL) - { + || IsTopLevel(pWin) || winRec == NULL) { goto out; } @@ -1364,15 +1364,16 @@ RootlessReparentWindow(WindowPtr pWin, WindowPtr pPriorParent) pTopWin = TopLevelParent(pWin); assert(pTopWin != pWin); - + pWin->rootlessUnhittable = FALSE; - - DeleteProperty (serverClient, pWin, xa_native_window_id ()); + + DeleteProperty(serverClient, pWin, xa_native_window_id()); if (WINREC(pTopWin) != NULL) { /* We're screwed. */ RootlessDestroyFrame(pWin, winRec); - } else { + } + else { if (!pTopWin->realized && pWin->realized) { SCREENREC(pScreen)->imp->UnmapFrame(winRec->wid); } @@ -1399,7 +1400,7 @@ RootlessReparentWindow(WindowPtr pWin, WindowPtr pPriorParent) winRec->is_reorder_pending = TRUE; } -out: + out: if (SCREENREC(pScreen)->ReparentWindow) { SCREEN_UNWRAP(pScreen, ReparentWindow); pScreen->ReparentWindow(pWin, pPriorParent); @@ -1407,20 +1408,19 @@ out: } } - void -RootlessFlushWindowColormap (WindowPtr pWin) +RootlessFlushWindowColormap(WindowPtr pWin) { - RootlessWindowRec *winRec = WINREC (pWin); - ScreenPtr pScreen = pWin->drawable.pScreen; + RootlessWindowRec *winRec = WINREC(pWin); + ScreenPtr pScreen = pWin->drawable.pScreen; - if (winRec == NULL) - return; + if (winRec == NULL) + return; - RootlessStopDrawing (pWin, FALSE); + RootlessStopDrawing(pWin, FALSE); - if (SCREENREC(pScreen)->imp->UpdateColormap) - SCREENREC(pScreen)->imp->UpdateColormap(winRec->wid, pScreen); + if (SCREENREC(pScreen)->imp->UpdateColormap) + SCREENREC(pScreen)->imp->UpdateColormap(winRec->wid, pScreen); } /* @@ -1453,8 +1453,8 @@ RootlessChangeBorderWidth(WindowPtr pWin, unsigned int width) newBW = width; newX = pWin->drawable.x - newBW; newY = pWin->drawable.y - newBW; - newW = pWin->drawable.width + 2*newBW; - newH = pWin->drawable.height + 2*newBW; + newW = pWin->drawable.width + 2 * newBW; + newH = pWin->drawable.height + 2 * newBW; resize_after = StartFrameResize(pWin, FALSE, oldX, oldY, oldW, oldH, oldBW, @@ -1482,131 +1482,132 @@ RootlessChangeBorderWidth(WindowPtr pWin, unsigned int width) * (i.e in front of Aqua windows) -- called when X11.app is given focus */ void -RootlessOrderAllWindows (Bool include_unhitable) +RootlessOrderAllWindows(Bool include_unhitable) { int i; WindowPtr pWin; if (windows_hidden) - return; + return; RL_DEBUG_MSG("RootlessOrderAllWindows() "); for (i = 0; i < screenInfo.numScreens; i++) { - if (screenInfo.screens[i] == NULL) continue; - pWin = screenInfo.screens[i]->root; - if (pWin == NULL) continue; - - for (pWin = pWin->firstChild; pWin != NULL; pWin = pWin->nextSib) { - if (!pWin->realized) continue; - if (RootlessEnsureFrame(pWin) == NULL) continue; - if (!include_unhitable && pWin->rootlessUnhittable) continue; - RootlessReorderWindow (pWin); - } + if (screenInfo.screens[i] == NULL) + continue; + pWin = screenInfo.screens[i]->root; + if (pWin == NULL) + continue; + + for (pWin = pWin->firstChild; pWin != NULL; pWin = pWin->nextSib) { + if (!pWin->realized) + continue; + if (RootlessEnsureFrame(pWin) == NULL) + continue; + if (!include_unhitable && pWin->rootlessUnhittable) + continue; + RootlessReorderWindow(pWin); + } } RL_DEBUG_MSG("RootlessOrderAllWindows() done"); } void -RootlessEnableRoot (ScreenPtr pScreen) +RootlessEnableRoot(ScreenPtr pScreen) { WindowPtr pRoot; + pRoot = pScreen->root; - - RootlessEnsureFrame (pRoot); + + RootlessEnsureFrame(pRoot); (*pScreen->ClearToBackground) (pRoot, 0, 0, 0, 0, TRUE); - RootlessReorderWindow (pRoot); + RootlessReorderWindow(pRoot); } void -RootlessDisableRoot (ScreenPtr pScreen) +RootlessDisableRoot(ScreenPtr pScreen) { WindowPtr pRoot; RootlessWindowRec *winRec; pRoot = pScreen->root; - winRec = WINREC (pRoot); + winRec = WINREC(pRoot); if (NULL == winRec) - return; - - RootlessDestroyFrame (pRoot, winRec); - DeleteProperty (serverClient, pRoot, xa_native_window_id ()); + return; + + RootlessDestroyFrame(pRoot, winRec); + DeleteProperty(serverClient, pRoot, xa_native_window_id()); } void -RootlessHideAllWindows (void) +RootlessHideAllWindows(void) { int i; ScreenPtr pScreen; WindowPtr pWin; RootlessWindowRec *winRec; - + if (windows_hidden) return; - + windows_hidden = TRUE; - - for (i = 0; i < screenInfo.numScreens; i++) - { + + for (i = 0; i < screenInfo.numScreens; i++) { pScreen = screenInfo.screens[i]; - if (pScreen == NULL) - continue; - pWin = pScreen->root; - if (pWin == NULL) + if (pScreen == NULL) continue; - - for (pWin = pWin->firstChild; pWin != NULL; pWin = pWin->nextSib) - { + pWin = pScreen->root; + if (pWin == NULL) + continue; + + for (pWin = pWin->firstChild; pWin != NULL; pWin = pWin->nextSib) { if (!pWin->realized) continue; - - RootlessStopDrawing (pWin, FALSE); - - winRec = WINREC (pWin); - if (winRec != NULL) - { - if (SCREENREC(pScreen)->imp->HideWindow) - SCREENREC(pScreen)->imp->HideWindow(winRec->wid); + + RootlessStopDrawing(pWin, FALSE); + + winRec = WINREC(pWin); + if (winRec != NULL) { + if (SCREENREC(pScreen)->imp->HideWindow) + SCREENREC(pScreen)->imp->HideWindow(winRec->wid); } } } } void -RootlessShowAllWindows (void) +RootlessShowAllWindows(void) { int i; ScreenPtr pScreen; WindowPtr pWin; RootlessWindowRec *winRec; - + if (!windows_hidden) return; - + windows_hidden = FALSE; - - for (i = 0; i < screenInfo.numScreens; i++) - { + + for (i = 0; i < screenInfo.numScreens; i++) { pScreen = screenInfo.screens[i]; - if (pScreen == NULL) - continue; - pWin = pScreen->root; - if (pWin == NULL) + if (pScreen == NULL) continue; - - for (pWin = pWin->firstChild; pWin != NULL; pWin = pWin->nextSib) - { + pWin = pScreen->root; + if (pWin == NULL) + continue; + + for (pWin = pWin->firstChild; pWin != NULL; pWin = pWin->nextSib) { if (!pWin->realized) continue; - - winRec = RootlessEnsureFrame (pWin); + + winRec = RootlessEnsureFrame(pWin); if (winRec == NULL) continue; - - RootlessReorderWindow (pWin); + + RootlessReorderWindow(pWin); } - - RootlessScreenExpose (pScreen); + + RootlessScreenExpose(pScreen); } } @@ -1620,18 +1621,18 @@ RootlessSetPixmapOfAncestors(WindowPtr pWin) ScreenPtr pScreen = pWin->drawable.pScreen; WindowPtr topWin = TopLevelParent(pWin); RootlessWindowRec *topWinRec = WINREC(topWin); - + while (pWin->backgroundState == ParentRelative) { if (pWin == topWin) { // disallow ParentRelative background state on top level XID pixel = 0; + ChangeWindowAttributes(pWin, CWBackPixel, &pixel, serverClient); RL_DEBUG_MSG("Cleared ParentRelative on 0x%x.\n", pWin); break; } - + pWin = pWin->parent; pScreen->SetWindowPixmap(pWin, topWinRec->pixmap); } } - diff --git a/miext/rootless/rootlessWindow.h b/miext/rootless/rootlessWindow.h index 2b018e007..d3955fc89 100644 --- a/miext/rootless/rootlessWindow.h +++ b/miext/rootless/rootlessWindow.h @@ -46,15 +46,18 @@ Bool RootlessPositionWindow(WindowPtr pWin, int x, int y); Bool RootlessRealizeWindow(WindowPtr pWin); Bool RootlessUnrealizeWindow(WindowPtr pWin); void RootlessRestackWindow(WindowPtr pWin, WindowPtr pOldNextSib); -void RootlessCopyWindow(WindowPtr pWin,DDXPointRec ptOldOrg,RegionPtr prgnSrc); -void RootlessMoveWindow(WindowPtr pWin,int x,int y,WindowPtr pSib,VTKind kind); -void RootlessResizeWindow(WindowPtr pWin, int x, int y, - unsigned int w, unsigned int h, WindowPtr pSib); +void RootlessCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, + RegionPtr prgnSrc); +void RootlessMoveWindow(WindowPtr pWin, int x, int y, WindowPtr pSib, + VTKind kind); +void RootlessResizeWindow(WindowPtr pWin, int x, int y, unsigned int w, + unsigned int h, WindowPtr pSib); void RootlessReparentWindow(WindowPtr pWin, WindowPtr pPriorParent); void RootlessChangeBorderWidth(WindowPtr pWin, unsigned int width); + #ifdef __APPLE__ -void RootlessNativeWindowMoved (WindowPtr pWin); -void RootlessNativeWindowStateChanged (WindowPtr pWin, unsigned int state); +void RootlessNativeWindowMoved(WindowPtr pWin); +void RootlessNativeWindowStateChanged(WindowPtr pWin, unsigned int state); #endif #endif |