diff options
author | Stuart Kreitman <stuart.kreitman@sun.com> | 2004-07-29 18:16:56 +0000 |
---|---|---|
committer | Stuart Kreitman <stuart.kreitman@sun.com> | 2004-07-29 18:16:56 +0000 |
commit | e1281790bb3d7cdcc5de85829806dd53da67e326 (patch) | |
tree | 7d188aeb287d58dd79686dd3349d4a1cad75e393 | |
parent | d2f798b6dbaebd0300f42c2e083a962c37647620 (diff) |
Integration of DAMAGE-XFIXES branch to trunk
https://freedesktop.org/bugzilla/show_bug.cgi?id=859
Modified Files: cursorstr.h dix.h dixstruct.h regionstr.h window.h
-rw-r--r-- | include/cursorstr.h | 8 | ||||
-rw-r--r-- | include/dix.h | 33 | ||||
-rw-r--r-- | include/dixstruct.h | 24 | ||||
-rw-r--r-- | include/regionstr.h | 53 | ||||
-rw-r--r-- | include/window.h | 6 |
5 files changed, 94 insertions, 30 deletions
diff --git a/include/cursorstr.h b/include/cursorstr.h index 3984245ad..c15eaf134 100644 --- a/include/cursorstr.h +++ b/include/cursorstr.h @@ -77,10 +77,18 @@ typedef struct _Cursor { unsigned short backRed, backGreen, backBlue; /* device-independent color */ int refcnt; pointer devPriv[MAXSCREENS]; /* set by pScr->RealizeCursor*/ +#ifdef XFIXES + CARD32 serialNumber; + Atom name; +#endif } CursorRec; typedef struct _CursorMetric { unsigned short width, height, xhot, yhot; } CursorMetricRec; +typedef struct { + int x, y; + ScreenPtr pScreen; +} HotSpot; #endif /* CURSORSTRUCT_H */ diff --git a/include/dix.h b/include/dix.h index 20a182d2e..3266a30be 100644 --- a/include/dix.h +++ b/include/dix.h @@ -383,6 +383,12 @@ extern void CopyISOLatin1Lowered( unsigned char * /*source*/, int /*length*/); +extern int CompareISOLatin1Lowered( + unsigned char * /*a*/, + int alen, + unsigned char * /*b*/, + int blen); + #ifdef XCSECURITY extern WindowPtr SecurityLookupWindow( @@ -427,12 +433,14 @@ extern ClientPtr LookupClient( extern void NoopDDA(void); -extern int AlterSaveSetForClient( +int AlterSaveSetForClient( ClientPtr /*client*/, WindowPtr /*pWin*/, - unsigned /*mode*/); - -extern void DeleteWindowFromAnySaveSet( + unsigned /*mode*/, + Bool /*toRoot*/, + Bool /*remap*/); + +void DeleteWindowFromAnySaveSet( WindowPtr /*pWin*/); extern void BlockHandler( @@ -789,4 +797,21 @@ typedef struct { int count; } DeviceEventInfoRec; +/* + * SelectionCallback stuff + */ + +extern CallbackListPtr SelectionCallback; + +typedef enum { + SelectionSetOwner, + SelectionWindowDestroy, + SelectionClientClose +} SelectionCallbackKind; + +typedef struct { + struct _Selection *selection; + SelectionCallbackKind kind; +} SelectionInfoRec; + #endif /* DIX_H */ diff --git a/include/dixstruct.h b/include/dixstruct.h index 9c39a8aec..d7d810272 100644 --- a/include/dixstruct.h +++ b/include/dixstruct.h @@ -68,6 +68,28 @@ typedef enum {ClientStateInitial, ClientStateCheckingSecurity, ClientStateCheckedSecurity} ClientState; +#ifdef XFIXES +typedef struct _saveSet { + struct _Window *windowPtr; + Bool toRoot; + Bool remap; +} SaveSetElt; +#define SaveSetWindow(ss) ((ss).windowPtr) +#define SaveSetToRoot(ss) ((ss).toRoot) +#define SaveSetRemap(ss) ((ss).remap) +#define SaveSetAssignWindow(ss,w) ((ss).windowPtr = (w)) +#define SaveSetAssignToRoot(ss,tr) ((ss).toRoot = (tr)) +#define SaveSetAssignRemap(ss,rm) ((ss).remap = (rm)) +#else +typedef struct _Window *SaveSetElt; +#define SaveSetWindow(ss) (ss) +#define SaveSetToRoot(ss) FALSE +#define SaveSetRemap(ss) TRUE +#define SaveSetAssignWindow(ss,w) ((ss) = (w)) +#define SaveSetAssignToRoot(ss,tr) +#define SaveSetAssignRemap(ss,rm) +#endif + typedef struct _Client { int index; Mask clientAsMask; @@ -85,7 +107,7 @@ typedef struct _Client { Drawable lastDrawableID; GCPtr lastGC; GContext lastGCID; - pointer *saveSet; + SaveSetElt *saveSet; int numSaved; pointer screenPrivate[MAXSCREENS]; int (**requestVector) ( diff --git a/include/regionstr.h b/include/regionstr.h index 192983dab..c85116863 100644 --- a/include/regionstr.h +++ b/include/regionstr.h @@ -1,4 +1,4 @@ -/* $XdotOrg: xc/programs/Xserver/include/regionstr.h,v 1.1.4.6 2003/12/06 13:24:29 kaleb Exp $ */ +/* $XdotOrg: xc/programs/Xserver/include/regionstr.h,v 1.1.4.8.2.1 2004/03/30 16:46:23 stukreit Exp $ */ /* $Xorg: regionstr.h,v 1.4 2001/02/09 02:05:15 xorgcvs Exp $ */ /*********************************************************** @@ -95,81 +95,84 @@ extern RegDataRec miBrokenData; #define REGION_END(reg) REGION_BOX(reg, (reg)->data->numRects - 1) #define REGION_SZOF(n) (sizeof(RegDataRec) + ((n) * sizeof(BoxRec))) +/* Keith recommends weaning the region code of pScreen argument */ +#define REG_pScreen screenInfo.screens[0] + #ifdef NEED_SCREEN_REGIONS #define REGION_CREATE(_pScreen, _rect, _size) \ - (*(_pScreen)->RegionCreate)(_rect, _size) + (*(REG_pScreen)->RegionCreate)(_rect, _size) #define REGION_INIT(_pScreen, _pReg, _rect, _size) \ - (*(_pScreen)->RegionInit)(_pReg, _rect, _size) + (*(REG_pScreen)->RegionInit)(_pReg, _rect, _size) #define REGION_COPY(_pScreen, dst, src) \ - (*(_pScreen)->RegionCopy)(dst, src) + (*(REG_pScreen)->RegionCopy)(dst, src) #define REGION_DESTROY(_pScreen, _pReg) \ - (*(_pScreen)->RegionDestroy)(_pReg) + (*(REG_pScreen)->RegionDestroy)(_pReg) #define REGION_UNINIT(_pScreen, _pReg) \ - (*(_pScreen)->RegionUninit)(_pReg) + (*(REG_pScreen)->RegionUninit)(_pReg) #define REGION_INTERSECT(_pScreen, newReg, reg1, reg2) \ - (*(_pScreen)->Intersect)(newReg, reg1, reg2) + (*(REG_pScreen)->Intersect)(newReg, reg1, reg2) #define REGION_UNION(_pScreen, newReg, reg1, reg2) \ - (*(_pScreen)->Union)(newReg, reg1, reg2) + (*(REG_pScreen)->Union)(newReg, reg1, reg2) #define REGION_SUBTRACT(_pScreen, newReg, reg1, reg2) \ - (*(_pScreen)->Subtract)(newReg, reg1, reg2) + (*(REG_pScreen)->Subtract)(newReg, reg1, reg2) #define REGION_INVERSE(_pScreen, newReg, reg1, invRect) \ - (*(_pScreen)->Inverse)(newReg, reg1, invRect) + (*(REG_pScreen)->Inverse)(newReg, reg1, invRect) #define REGION_RESET(_pScreen, _pReg, _pBox) \ - (*(_pScreen)->RegionReset)(_pReg, _pBox) + (*(REG_pScreen)->RegionReset)(_pReg, _pBox) #define REGION_TRANSLATE(_pScreen, _pReg, _x, _y) \ - (*(_pScreen)->TranslateRegion)(_pReg, _x, _y) + (*(REG_pScreen)->TranslateRegion)(_pReg, _x, _y) #define RECT_IN_REGION(_pScreen, _pReg, prect) \ - (*(_pScreen)->RectIn)(_pReg, prect) + (*(REG_pScreen)->RectIn)(_pReg, prect) #define POINT_IN_REGION(_pScreen, _pReg, _x, _y, prect) \ - (*(_pScreen)->PointInRegion)(_pReg, _x, _y, prect) + (*(REG_pScreen)->PointInRegion)(_pReg, _x, _y, prect) #define REGION_NOTEMPTY(_pScreen, _pReg) \ - (*(_pScreen)->RegionNotEmpty)(_pReg) + (*(REG_pScreen)->RegionNotEmpty)(_pReg) #define REGION_EQUAL(_pScreen, _pReg1, _pReg2) \ - (*(_pScreen)->RegionEqual)(_pReg1, _pReg2) + (*(REG_pScreen)->RegionEqual)(_pReg1, _pReg2) #define REGION_BROKEN(_pScreen, _pReg) \ - (*(_pScreen)->RegionBroken)(_pReg) + (*(REG_pScreen)->RegionBroken)(_pReg) #define REGION_BREAK(_pScreen, _pReg) \ - (*(_pScreen)->RegionBreak)(_pReg) + (*(REG_pScreen)->RegionBreak)(_pReg) #define REGION_EMPTY(_pScreen, _pReg) \ - (*(_pScreen)->RegionEmpty)(_pReg) + (*(REG_pScreen)->RegionEmpty)(_pReg) #define REGION_EXTENTS(_pScreen, _pReg) \ - (*(_pScreen)->RegionExtents)(_pReg) + (*(REG_pScreen)->RegionExtents)(_pReg) #define REGION_APPEND(_pScreen, dstrgn, rgn) \ - (*(_pScreen)->RegionAppend)(dstrgn, rgn) + (*(REG_pScreen)->RegionAppend)(dstrgn, rgn) #define REGION_VALIDATE(_pScreen, badreg, pOverlap) \ - (*(_pScreen)->RegionValidate)(badreg, pOverlap) + (*(REG_pScreen)->RegionValidate)(badreg, pOverlap) #define BITMAP_TO_REGION(_pScreen, pPix) \ - (*(_pScreen)->BitmapToRegion)(pPix) + (*(REG_pScreen)->BitmapToRegion)(pPix) #define RECTS_TO_REGION(_pScreen, nrects, prect, ctype) \ - (*(_pScreen)->RectsToRegion)(nrects, prect, ctype) + (*(REG_pScreen)->RectsToRegion)(nrects, prect, ctype) #else /* !NEED_SCREEN_REGIONS */ /* Reference _pScreen macro argument and check its type */ -#define REGION_SCREEN(_pScreen_) (void)((_pScreen_)->myNum) +#define REGION_SCREEN(_pScreen) (void)((REG_pScreen)->myNum) #define REGION_CREATE(_pScreen, _rect, _size) \ (REGION_SCREEN(_pScreen), miRegionCreate(_rect, _size)) diff --git a/include/window.h b/include/window.h index 5056512b8..cf019664a 100644 --- a/include/window.h +++ b/include/window.h @@ -252,4 +252,10 @@ void ResizeChildrenWinSize( int /*dw*/, int /*dh*/); +RegionPtr +CreateBoundingShape (WindowPtr pWin); + +RegionPtr +CreateClipShape (WindowPtr pWin); + #endif /* WINDOW_H */ |