diff options
Diffstat (limited to 'xorg-server/include/windowstr.h')
-rw-r--r-- | xorg-server/include/windowstr.h | 69 |
1 files changed, 32 insertions, 37 deletions
diff --git a/xorg-server/include/windowstr.h b/xorg-server/include/windowstr.h index f370a25d2..e7f4691d9 100644 --- a/xorg-server/include/windowstr.h +++ b/xorg-server/include/windowstr.h @@ -59,6 +59,7 @@ SOFTWARE. #include "miscstruct.h" #include <X11/Xprotostr.h> #include "opaque.h" +#include "inputstr.h" #define GuaranteeNothing 0 #define GuaranteeVisBack 1 @@ -71,6 +72,31 @@ SOFTWARE. #define SameBorder(as, a, bs, b) \ EqualPixUnion(as, a, bs, b) +/* used as NULL-terminated list */ +typedef struct _DevCursorNode { + CursorPtr cursor; + DeviceIntPtr dev; + struct _DevCursorNode* next; +} DevCursNodeRec, *DevCursNodePtr, *DevCursorList; + +/* Mask structure for GE extension as stored on the window. + * Allows one mask per extension. + * .eventMask - Summary mask for all clients, used for quick checking. + * .geClients - list of clients with their specific mask. + */ +typedef struct _GenericClientMasks { + Mask eventMasks[MAXEXTENSIONS]; + GenericMaskPtr geClients; +} GenericClientMasksRec, *GenericClientMasksPtr; + +typedef struct _WindowAccessRec { + int defaultRule; /* WindowAccessDenyAll */ + DeviceIntPtr* perm; + int nperm; + DeviceIntPtr* deny; + int ndeny; +} WindowAccessRec, *WindowAccessPtr; + typedef struct _WindowOpt { VisualID visual; /* default: same as parent */ CursorPtr cursor; /* default: window.cursorNone */ @@ -82,14 +108,13 @@ typedef struct _WindowOpt { PropertyPtr userProps; /* default: NULL */ unsigned long backingBitPlanes; /* default: ~0L */ unsigned long backingPixel; /* default: 0 */ -#ifdef SHAPE RegionPtr boundingShape; /* default: NULL */ RegionPtr clipShape; /* default: NULL */ RegionPtr inputShape; /* default: NULL */ -#endif -#ifdef XINPUT struct _OtherInputMasks *inputMasks; /* default: NULL */ -#endif + DevCursorList deviceCursors; /* default: NULL */ + struct _GenericClientMasks *geMasks; /* default: NULL */ + WindowAccessRec access; } WindowOptRec, *WindowOptPtr; #define BackgroundPixel 2L @@ -160,6 +185,9 @@ typedef struct _Window { unsigned forcedBS:1; /* system-supplied backingStore */ unsigned redirectDraw:2; /* COMPOSITE rendering redirect */ unsigned forcedBG:1; /* must have an opaque background */ +#ifdef ROOTLESS + unsigned rootlessUnhittable:1; /* doesn't hit-test */ +#endif } WindowRec; /* @@ -182,30 +210,20 @@ extern Mask DontPropagateMasks[]; #define wDontPropagateMask(w) wUseDefault(w, dontPropagateMask, DontPropagateMasks[(w)->dontPropagate]) #define wOtherEventMasks(w) wUseDefault(w, otherEventMasks, 0) #define wOtherClients(w) wUseDefault(w, otherClients, NULL) -#ifdef XINPUT #define wOtherInputMasks(w) wUseDefault(w, inputMasks, NULL) -#else -#define wOtherInputMasks(w) NULL -#endif #define wPassiveGrabs(w) wUseDefault(w, passiveGrabs, NULL) #define wUserProps(w) wUseDefault(w, userProps, NULL) #define wBackingBitPlanes(w) wUseDefault(w, backingBitPlanes, ~0L) #define wBackingPixel(w) wUseDefault(w, backingPixel, 0) -#ifdef SHAPE #define wBoundingShape(w) wUseDefault(w, boundingShape, NULL) #define wClipShape(w) wUseDefault(w, clipShape, NULL) #define wInputShape(w) wUseDefault(w, inputShape, NULL) -#endif #define wClient(w) (clients[CLIENT_ID((w)->drawable.id)]) #define wBorderWidth(w) ((int) (w)->borderWidth) /* true when w needs a border drawn. */ -#ifdef SHAPE #define HasBorder(w) ((w)->borderWidth || wClipShape(w)) -#else -#define HasBorder(w) ((w)->borderWidth) -#endif typedef struct _ScreenSaverStuff { WindowPtr pWindow; @@ -227,27 +245,4 @@ typedef struct _ScreenSaverStuff { extern int screenIsSaved; extern ScreenSaverStuffRec savedScreenInfo[MAXSCREENS]; -/* - * this is the configuration parameter "NO_BACK_SAVE" - * it means that any existant backing store should not - * be used to implement save unders. - */ - -#ifndef NO_BACK_SAVE -#define DO_SAVE_UNDERS(pWin) ((pWin)->drawable.pScreen->saveUnderSupport ==\ - USE_DIX_SAVE_UNDERS) -/* - * saveUnderSupport is set to this magic value when using DIXsaveUnders - */ - -#define USE_DIX_SAVE_UNDERS 0x40 -#endif - -extern int numSaveUndersViewable; -extern int deltaSaveUndersViewable; - -#ifdef XEVIE -extern WindowPtr xeviewin; -#endif - #endif /* WINDOWSTRUCT_H */ |