Unverified Commit a9787fc2 authored by Mihai Moldovan's avatar Mihai Moldovan

Merge branch 'uli42-pr/update_dix' into 3.6.x

parents b40dec98 6dcfcbab
...@@ -52,6 +52,8 @@ SOFTWARE. ...@@ -52,6 +52,8 @@ SOFTWARE.
#include <nx-X11/X.h> #include <nx-X11/X.h>
#include <nx-X11/Xatom.h> #include <nx-X11/Xatom.h>
#include <stdio.h>
#include <string.h>
#include "misc.h" #include "misc.h"
#include "resource.h" #include "resource.h"
#include "dix.h" #include "dix.h"
......
...@@ -52,6 +52,9 @@ SOFTWARE. ...@@ -52,6 +52,9 @@ SOFTWARE.
#include <nx-X11/X.h> #include <nx-X11/X.h>
#include <nx-X11/Xproto.h> #include <nx-X11/Xproto.h>
#include <stdio.h>
#include <string.h>
#include <strings.h>
#include "misc.h" #include "misc.h"
#include "dix.h" #include "dix.h"
#include "colormapst.h" #include "colormapst.h"
...@@ -273,6 +276,13 @@ CreateColormap (Colormap mid, ScreenPtr pScreen, VisualPtr pVisual, ...@@ -273,6 +276,13 @@ CreateColormap (Colormap mid, ScreenPtr pScreen, VisualPtr pVisual,
pmap = (ColormapPtr) malloc(sizebytes); pmap = (ColormapPtr) malloc(sizebytes);
if (!pmap) if (!pmap)
return (BadAlloc); return (BadAlloc);
#if defined(_XSERVER64)
pmap->pad0 = 0;
pmap->pad1 = 0;
#if (X_BYTE_ORDER == X_LITTLE_ENDIAN)
pmap->pad2 = 0;
#endif
#endif
pmap->red = (EntryPtr)((char *)pmap + sizeof(ColormapRec)); pmap->red = (EntryPtr)((char *)pmap + sizeof(ColormapRec));
sizebytes = size * sizeof(Entry); sizebytes = size * sizeof(Entry);
pmap->clientPixelsRed = (Pixel **)((char *)pmap->red + sizebytes); pmap->clientPixelsRed = (Pixel **)((char *)pmap->red + sizebytes);
......
...@@ -74,7 +74,7 @@ SOFTWARE. ...@@ -74,7 +74,7 @@ SOFTWARE.
#include "dixevents.h" #include "dixevents.h"
DeviceIntPtr DeviceIntPtr
_AddInputDevice(DeviceProc deviceProc, Bool autoStart) AddInputDevice(DeviceProc deviceProc, Bool autoStart)
{ {
register DeviceIntPtr dev; register DeviceIntPtr dev;
...@@ -348,7 +348,7 @@ NumMotionEvents() ...@@ -348,7 +348,7 @@ NumMotionEvents()
} }
void void
_RegisterPointerDevice(DeviceIntPtr device) RegisterPointerDevice(DeviceIntPtr device)
{ {
inputInfo.pointer = device; inputInfo.pointer = device;
#ifdef XKB #ifdef XKB
...@@ -371,7 +371,7 @@ _RegisterPointerDevice(DeviceIntPtr device) ...@@ -371,7 +371,7 @@ _RegisterPointerDevice(DeviceIntPtr device)
} }
void void
_RegisterKeyboardDevice(DeviceIntPtr device) RegisterKeyboardDevice(DeviceIntPtr device)
{ {
inputInfo.keyboard = device; inputInfo.keyboard = device;
#ifdef XKB #ifdef XKB
...@@ -1611,38 +1611,3 @@ ProcQueryKeymap(ClientPtr client) ...@@ -1611,38 +1611,3 @@ ProcQueryKeymap(ClientPtr client)
WriteReplyToClient(client, sizeof(xQueryKeymapReply), &rep); WriteReplyToClient(client, sizeof(xQueryKeymapReply), &rep);
return Success; return Success;
} }
/******************************************************************************
* The following entrypoints are provided for binary compatibility with
* previous versions (they make casts, where the current version changes types
* for more stringent prototype checking).
******************************************************************************/
#ifdef AddInputDevice
#undef AddInputDevice
DevicePtr
AddInputDevice(DeviceProc deviceProc, Bool autoStart)
{
return (DevicePtr)_AddInputDevice(deviceProc, autoStart);
}
#endif /* AddInputDevice */
#ifdef RegisterPointerDevice
#undef RegisterPointerDevice
void
RegisterPointerDevice(DevicePtr device)
{
_RegisterPointerDevice((DeviceIntPtr)device);
}
#endif /* RegisterPointerDevice */
#ifdef RegisterKeyboardDevice
#undef RegisterKeyboardDevice
void
RegisterKeyboardDevice(DevicePtr device)
{
_RegisterKeyboardDevice((DeviceIntPtr)device);
}
#endif /* RegisterKeyboardDevice */
...@@ -2453,7 +2453,7 @@ ProcCreateColormap(register ClientPtr client) ...@@ -2453,7 +2453,7 @@ ProcCreateColormap(register ClientPtr client)
return(result); return(result);
} }
client->errorValue = stuff->visual; client->errorValue = stuff->visual;
return(BadValue); return(BadMatch);
} }
int int
...@@ -3608,6 +3608,10 @@ CloseDownRetainedResources() ...@@ -3608,6 +3608,10 @@ CloseDownRetainedResources()
} }
} }
extern int clientPrivateLen;
extern unsigned *clientPrivateSizes;
extern unsigned totalClientSize;
void InitClient(ClientPtr client, int i, void * ospriv) void InitClient(ClientPtr client, int i, void * ospriv)
{ {
client->index = i; client->index = i;
...@@ -3648,10 +3652,6 @@ void InitClient(ClientPtr client, int i, void * ospriv) ...@@ -3648,10 +3652,6 @@ void InitClient(ClientPtr client, int i, void * ospriv)
client->clientIds = NULL; client->clientIds = NULL;
} }
extern int clientPrivateLen;
extern unsigned *clientPrivateSizes;
extern unsigned totalClientSize;
#ifndef NXAGENT_SERVER #ifndef NXAGENT_SERVER
int int
InitClientPrivates(ClientPtr client) InitClientPrivates(ClientPtr client)
...@@ -3685,6 +3685,17 @@ InitClientPrivates(ClientPtr client) ...@@ -3685,6 +3685,17 @@ InitClientPrivates(ClientPtr client)
else else
ppriv->ptr = (void *)NULL; ppriv->ptr = (void *)NULL;
} }
/* Allow registrants to initialize the serverClient devPrivates */
if (!client->index && ClientStateCallback)
{
NewClientInfoRec clientinfo;
clientinfo.client = client;
clientinfo.prefix = (xConnSetupPrefix *)NULL;
clientinfo.setup = (xConnSetup *) NULL;
CallCallbacks((&ClientStateCallback), (void *)&clientinfo);
}
return 1; return 1;
} }
#endif /* NXAGENT_SERVER */ #endif /* NXAGENT_SERVER */
......
...@@ -2837,9 +2837,6 @@ ProcessPointerEvent (register xEvent *xE, register DeviceIntPtr mouse, int count ...@@ -2837,9 +2837,6 @@ ProcessPointerEvent (register xEvent *xE, register DeviceIntPtr mouse, int count
butc->buttonsDown++; butc->buttonsDown++;
butc->motionMask = ButtonMotionMask; butc->motionMask = ButtonMotionMask;
*kptr |= bit; *kptr |= bit;
#if !defined(XFree86Server) || !defined(XINPUT)
xE->u.u.detail = butc->map[key];
#endif
if (xE->u.u.detail == 0) if (xE->u.u.detail == 0)
return; return;
if (xE->u.u.detail <= 5) if (xE->u.u.detail <= 5)
...@@ -2856,9 +2853,6 @@ ProcessPointerEvent (register xEvent *xE, register DeviceIntPtr mouse, int count ...@@ -2856,9 +2853,6 @@ ProcessPointerEvent (register xEvent *xE, register DeviceIntPtr mouse, int count
if (!butc->buttonsDown) if (!butc->buttonsDown)
butc->motionMask = 0; butc->motionMask = 0;
*kptr &= ~bit; *kptr &= ~bit;
#if !defined(XFree86Server) || !defined(XINPUT)
xE->u.u.detail = butc->map[key];
#endif
if (xE->u.u.detail == 0) if (xE->u.u.detail == 0)
return; return;
if (xE->u.u.detail <= 5) if (xE->u.u.detail <= 5)
...@@ -3033,7 +3027,7 @@ EventSuppressForWindow(register WindowPtr pWin, register ClientPtr client, ...@@ -3033,7 +3027,7 @@ EventSuppressForWindow(register WindowPtr pWin, register ClientPtr client,
{ {
register int i, free; register int i, free;
if ((mask & ~PropagateMask) && !permitOldBugs) if (mask & ~PropagateMask)
{ {
client->errorValue = mask; client->errorValue = mask;
return BadValue; return BadValue;
...@@ -3587,7 +3581,7 @@ ProcGrabPointer(ClientPtr client) ...@@ -3587,7 +3581,7 @@ ProcGrabPointer(ClientPtr client)
client->errorValue = stuff->ownerEvents; client->errorValue = stuff->ownerEvents;
return BadValue; return BadValue;
} }
if ((stuff->eventMask & ~PointerGrabMask) && !permitOldBugs) if (stuff->eventMask & ~PointerGrabMask)
{ {
client->errorValue = stuff->eventMask; client->errorValue = stuff->eventMask;
return BadValue; return BadValue;
...@@ -3674,7 +3668,7 @@ ProcChangeActivePointerGrab(ClientPtr client) ...@@ -3674,7 +3668,7 @@ ProcChangeActivePointerGrab(ClientPtr client)
TimeStamp time; TimeStamp time;
REQUEST_SIZE_MATCH(xChangeActivePointerGrabReq); REQUEST_SIZE_MATCH(xChangeActivePointerGrabReq);
if ((stuff->eventMask & ~PointerGrabMask) && !permitOldBugs) if (stuff->eventMask & ~PointerGrabMask)
{ {
client->errorValue = stuff->eventMask; client->errorValue = stuff->eventMask;
return BadValue; return BadValue;
...@@ -3975,13 +3969,12 @@ ProcSendEvent(ClientPtr client) ...@@ -3975,13 +3969,12 @@ ProcSendEvent(ClientPtr client)
if (stuff->event.u.u.type == ClientMessage && if (stuff->event.u.u.type == ClientMessage &&
stuff->event.u.u.detail != 8 && stuff->event.u.u.detail != 8 &&
stuff->event.u.u.detail != 16 && stuff->event.u.u.detail != 16 &&
stuff->event.u.u.detail != 32 && stuff->event.u.u.detail != 32)
!permitOldBugs)
{ {
client->errorValue = stuff->event.u.u.detail; client->errorValue = stuff->event.u.u.detail;
return BadValue; return BadValue;
} }
if ((stuff->eventMask & ~AllEventMasks) && !permitOldBugs) if (stuff->eventMask & ~AllEventMasks)
{ {
client->errorValue = stuff->eventMask; client->errorValue = stuff->eventMask;
return BadValue; return BadValue;
...@@ -4199,12 +4192,10 @@ ProcGrabButton(ClientPtr client) ...@@ -4199,12 +4192,10 @@ ProcGrabButton(ClientPtr client)
grab = CreateGrab(client->index, inputInfo.pointer, pWin, grab = CreateGrab(client->index, inputInfo.pointer, pWin,
permitOldBugs ? (Mask)(stuff->eventMask | (Mask)stuff->eventMask, (Bool)stuff->ownerEvents,
ButtonPressMask | ButtonReleaseMask) : (Bool) stuff->keyboardMode, (Bool)stuff->pointerMode,
(Mask)stuff->eventMask, inputInfo.keyboard, stuff->modifiers, ButtonPress,
(Bool)stuff->ownerEvents, (Bool) stuff->keyboardMode, stuff->button, confineTo, cursor);
(Bool)stuff->pointerMode, inputInfo.keyboard, stuff->modifiers,
ButtonPress, stuff->button, confineTo, cursor);
if (!grab) if (!grab)
return BadAlloc; return BadAlloc;
return AddPassiveGrabToList(grab); return AddPassiveGrabToList(grab);
......
...@@ -75,6 +75,39 @@ int lastEvent = EXTENSION_EVENT_BASE; ...@@ -75,6 +75,39 @@ int lastEvent = EXTENSION_EVENT_BASE;
static int lastError = FirstExtensionError; static int lastError = FirstExtensionError;
static unsigned int NumExtensions = 0; static unsigned int NumExtensions = 0;
extern int extensionPrivateLen;
extern unsigned *extensionPrivateSizes;
extern unsigned totalExtensionSize;
static void
InitExtensionPrivates(ExtensionEntry *ext)
{
register char *ptr;
DevUnion *ppriv;
register unsigned *sizes;
register unsigned size;
register int i;
if (totalExtensionSize == sizeof(ExtensionEntry))
ppriv = (DevUnion *)NULL;
else
ppriv = (DevUnion *)(ext + 1);
ext->devPrivates = ppriv;
sizes = extensionPrivateSizes;
ptr = (char *)(ppriv + extensionPrivateLen);
for (i = extensionPrivateLen; --i >= 0; ppriv++, sizes++)
{
if ( (size = *sizes) )
{
ppriv->ptr = (void *)ptr;
ptr += size;
}
else
ppriv->ptr = (void *)NULL;
}
}
ExtensionEntry * ExtensionEntry *
AddExtension(char *name, int NumEvents, int NumErrors, AddExtension(char *name, int NumEvents, int NumErrors,
int (*MainProc)(ClientPtr c1), int (*MainProc)(ClientPtr c1),
...@@ -91,9 +124,11 @@ AddExtension(char *name, int NumEvents, int NumErrors, ...@@ -91,9 +124,11 @@ AddExtension(char *name, int NumEvents, int NumErrors,
(unsigned)(lastError + NumErrors > LAST_ERROR)) (unsigned)(lastError + NumErrors > LAST_ERROR))
return((ExtensionEntry *) NULL); return((ExtensionEntry *) NULL);
ext = (ExtensionEntry *) malloc(sizeof(ExtensionEntry)); ext = (ExtensionEntry *) malloc(totalExtensionSize);
if (!ext) if (!ext)
return((ExtensionEntry *) NULL); return((ExtensionEntry *) NULL);
bzero(ext, totalExtensionSize);
InitExtensionPrivates(ext);
ext->name = (char *)malloc(strlen(name) + 1); ext->name = (char *)malloc(strlen(name) + 1);
ext->num_aliases = 0; ext->num_aliases = 0;
ext->aliases = (char **)NULL; ext->aliases = (char **)NULL;
...@@ -206,6 +241,20 @@ CheckExtension(const char *extname) ...@@ -206,6 +241,20 @@ CheckExtension(const char *extname)
return NULL; return NULL;
} }
/*
* Added as part of Xace.
*/
ExtensionEntry *
GetExtensionEntry(int major)
{
if (major < EXTENSION_BASE)
return NULL;
major -= EXTENSION_BASE;
if (major >= NumExtensions)
return NULL;
return extensions[major];
}
void void
DeclareExtensionSecurity(char *extname, Bool secure) DeclareExtensionSecurity(char *extname, Bool secure)
{ {
......
...@@ -30,6 +30,8 @@ int ...@@ -30,6 +30,8 @@ int
ffs(int i) ffs(int i)
{ {
int j; int j;
if (i == 0)
return 0;
for (j = 1; (i & 1) == 0; j++) for (j = 1; (i & 1) == 0; j++)
i >>= 1; i >>= 1;
return j; return j;
......
...@@ -103,15 +103,15 @@ int ScreenSaverAllowExposures; ...@@ -103,15 +103,15 @@ int ScreenSaverAllowExposures;
# define DEFAULT_OFF_TIME DEFAULT_SCREEN_SAVER_TIME * 4 # define DEFAULT_OFF_TIME DEFAULT_SCREEN_SAVER_TIME * 4
# endif # endif
# ifndef DEFAULT_DPMS_ENABLED # ifndef DEFAULT_DPMS_ENABLED
# define DEFAULT_DPMS_ENABLED FALSE # define DEFAULT_DPMS_ENABLED TRUE
# endif # endif
CARD32 defaultDPMSStandbyTime = DEFAULT_STANDBY_TIME; CARD32 defaultDPMSStandbyTime = DEFAULT_STANDBY_TIME;
CARD32 defaultDPMSSuspendTime = DEFAULT_SUSPEND_TIME; CARD32 defaultDPMSSuspendTime = DEFAULT_SUSPEND_TIME;
CARD32 defaultDPMSOffTime = DEFAULT_OFF_TIME; CARD32 defaultDPMSOffTime = DEFAULT_OFF_TIME;
CARD16 DPMSPowerLevel = 0; CARD16 DPMSPowerLevel = 0;
Bool defaultDPMSEnabled = DEFAULT_DPMS_ENABLED; Bool defaultDPMSEnabled = DEFAULT_DPMS_ENABLED;
Bool DPMSEnabledSwitch = FALSE; /* these denote the DPMS command line */ Bool DPMSEnabledSwitch = FALSE; /* these denote the DPMS command */
Bool DPMSDisabledSwitch = FALSE; /* switch states */ Bool DPMSDisabledSwitch = FALSE; /* line switch states */
Bool DPMSCapableFlag = FALSE; Bool DPMSCapableFlag = FALSE;
CARD32 DPMSStandbyTime; CARD32 DPMSStandbyTime;
CARD32 DPMSSuspendTime; CARD32 DPMSSuspendTime;
...@@ -140,15 +140,12 @@ FontPtr defaultFont; /* not declared in dix.h to avoid including font.h in ...@@ -140,15 +140,12 @@ FontPtr defaultFont; /* not declared in dix.h to avoid including font.h in
Bool loadableFonts = FALSE; Bool loadableFonts = FALSE;
CursorPtr rootCursor; CursorPtr rootCursor;
Bool blackRoot=FALSE; Bool blackRoot=FALSE;
Bool whiteRoot=FALSE;
ClientPtr requestingClient; /* XXX this should be obsolete now, remove? */ ClientPtr requestingClient; /* XXX this should be obsolete now, remove? */
TimeStamp currentTime; TimeStamp currentTime;
TimeStamp lastDeviceEventTime; TimeStamp lastDeviceEventTime;
Bool permitOldBugs = FALSE; /* turn off some error checking, to permit certain
* old broken clients (like R2/R3 xterms) to work
*/
int defaultColorVisualClass = -1; int defaultColorVisualClass = -1;
int monitorResolution = 0; int monitorResolution = 0;
......
...@@ -167,7 +167,7 @@ ReplyNotSwappd( ...@@ -167,7 +167,7 @@ ReplyNotSwappd(
int int
main(int argc, char *argv[], char *envp[]) main(int argc, char *argv[], char *envp[])
{ {
int i, error; int i;
char *xauthfile; char *xauthfile;
HWEventQueueType alwaysCheckForInput[2]; HWEventQueueType alwaysCheckForInput[2];
...@@ -263,6 +263,7 @@ main(int argc, char *argv[], char *envp[]) ...@@ -263,6 +263,7 @@ main(int argc, char *argv[], char *envp[])
#else #else
InitGlyphCaching(); InitGlyphCaching();
#endif /* of HAS_XFONT2 */ #endif /* of HAS_XFONT2 */
ResetExtensionPrivates();
ResetClientPrivates(); ResetClientPrivates();
ResetScreenPrivates(); ResetScreenPrivates();
ResetWindowPrivates(); ResetWindowPrivates();
......
...@@ -124,6 +124,7 @@ AllocatePixmap(ScreenPtr pScreen, int pixDataSize) ...@@ -124,6 +124,7 @@ AllocatePixmap(ScreenPtr pScreen, int pixDataSize)
* is a quick workaround intended to fix a problem reported * is a quick workaround intended to fix a problem reported
* by Valgrind due to fbBlt() writing just after the end of * by Valgrind due to fbBlt() writing just after the end of
* the pixmap buffer. This may be a RENDER bug. * the pixmap buffer. This may be a RENDER bug.
* This is not included in xorg upstream!
*/ */
pPixmap = (PixmapPtr)calloc(1, pScreen->totalPixmapSize + pixDataSize + 4); pPixmap = (PixmapPtr)calloc(1, pScreen->totalPixmapSize + pixDataSize + 4);
...@@ -146,5 +147,13 @@ AllocatePixmap(ScreenPtr pScreen, int pixDataSize) ...@@ -146,5 +147,13 @@ AllocatePixmap(ScreenPtr pScreen, int pixDataSize)
#else #else
pPixmap = (PixmapPtr)calloc(1, sizeof(PixmapRec) + pixDataSize); pPixmap = (PixmapPtr)calloc(1, sizeof(PixmapRec) + pixDataSize);
#endif #endif
#ifdef _XSERVER64
if (pPixmap) {
pPixmap->drawable.pad0 = 0;
pPixmap->drawable.pad1 = 0;
}
#endif
return pPixmap; return pPixmap;
} }
...@@ -42,6 +42,7 @@ from The Open Group. ...@@ -42,6 +42,7 @@ from The Open Group.
#include "servermd.h" #include "servermd.h"
#include "site.h" #include "site.h"
#include "inputstr.h" #include "inputstr.h"
#include "extnsionst.h"
/* /*
* See the Wrappers and devPrivates section in "Definition of the * See the Wrappers and devPrivates section in "Definition of the
...@@ -50,6 +51,63 @@ from The Open Group. ...@@ -50,6 +51,63 @@ from The Open Group.
*/ */
/* /*
* extension private machinery
*/
static int extensionPrivateCount;
int extensionPrivateLen;
unsigned *extensionPrivateSizes;
unsigned totalExtensionSize;
void
ResetExtensionPrivates()
{
extensionPrivateCount = 0;
extensionPrivateLen = 0;
free(extensionPrivateSizes);
extensionPrivateSizes = (unsigned *)NULL;
totalExtensionSize =
((sizeof(ExtensionEntry) + sizeof(long) - 1) / sizeof(long)) * sizeof(long);
}
int
AllocateExtensionPrivateIndex()
{
return extensionPrivateCount++;
}
Bool
AllocateExtensionPrivate(int index2, unsigned amount)
{
unsigned oldamount;
/* Round up sizes for proper alignment */
amount = ((amount + (sizeof(long) - 1)) / sizeof(long)) * sizeof(long);
if (index2 >= extensionPrivateLen)
{
unsigned *nsizes;
nsizes = (unsigned *)realloc(extensionPrivateSizes,
(index2 + 1) * sizeof(unsigned));
if (!nsizes)
return FALSE;
while (extensionPrivateLen <= index2)
{
nsizes[extensionPrivateLen++] = 0;
totalExtensionSize += sizeof(DevUnion);
}
extensionPrivateSizes = nsizes;
}
oldamount = extensionPrivateSizes[index2];
if (amount > oldamount)
{
extensionPrivateSizes[index2] = amount;
totalExtensionSize += (amount - oldamount);
}
return TRUE;
}
/*
* client private machinery * client private machinery
*/ */
......
...@@ -354,8 +354,7 @@ SQueryKeymapReply(ClientPtr pClient, int size, xQueryKeymapReply *pRep) ...@@ -354,8 +354,7 @@ SQueryKeymapReply(ClientPtr pClient, int size, xQueryKeymapReply *pRep)
WriteToClient(pClient, size, pRep); WriteToClient(pClient, size, pRep);
} }
static static void
void
SwapCharInfo(xCharInfo *pInfo) SwapCharInfo(xCharInfo *pInfo)
{ {
swaps(&pInfo->leftSideBearing); swaps(&pInfo->leftSideBearing);
...@@ -380,8 +379,7 @@ SwapFontInfo(xQueryFontReply *pr) ...@@ -380,8 +379,7 @@ SwapFontInfo(xQueryFontReply *pr)
swapl(&pr->nCharInfos); swapl(&pr->nCharInfos);
} }
static static void
void
SwapFont(xQueryFontReply *pr, Bool hasGlyphs) SwapFont(xQueryFontReply *pr, Bool hasGlyphs)
{ {
unsigned i; unsigned i;
......
...@@ -61,7 +61,6 @@ SOFTWARE. ...@@ -61,7 +61,6 @@ SOFTWARE.
/* Thanks to Jack Palevich for testing and subsequently rewriting all this */ /* Thanks to Jack Palevich for testing and subsequently rewriting all this */
/* Byte swap a list of longs */ /* Byte swap a list of longs */
void void
SwapLongs (register CARD32 *list, register unsigned long count) SwapLongs (register CARD32 *list, register unsigned long count)
{ {
...@@ -86,7 +85,6 @@ SwapLongs (register CARD32 *list, register unsigned long count) ...@@ -86,7 +85,6 @@ SwapLongs (register CARD32 *list, register unsigned long count)
} }
/* Byte swap a list of shorts */ /* Byte swap a list of shorts */
void void
SwapShorts (register short *list, register unsigned long count) SwapShorts (register short *list, register unsigned long count)
{ {
......
/* /*
Copyright (c) 2006, Red Hat, Inc.
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
RED HAT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of Red Hat shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from Red Hat.
Copyright 1987, 1998 The Open Group Copyright 1987, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its Permission to use, copy, modify, distribute, and sell this software and its
...@@ -320,9 +342,6 @@ MakeRootTile(WindowPtr pWin) ...@@ -320,9 +342,6 @@ MakeRootTile(WindowPtr pWin)
for (j = len; j > 0; j--) for (j = len; j > 0; j--)
*to++ = *from; *to++ = *from;
if (blackRoot)
bzero(back, sizeof(back));
(*pGC->ops->PutImage)((DrawablePtr)pWin->background.pixmap, pGC, 1, (*pGC->ops->PutImage)((DrawablePtr)pWin->background.pixmap, pGC, 1,
0, 0, len, 4, 0, XYBitmap, (char *)back); 0, 0, len, 4, 0, XYBitmap, (char *)back);
...@@ -358,6 +377,10 @@ AllocateWindow(ScreenPtr pScreen) ...@@ -358,6 +377,10 @@ AllocateWindow(ScreenPtr pScreen)
else else
ppriv->ptr = (void *)NULL; ppriv->ptr = (void *)NULL;
} }
#if _XSERVER64
pWin->drawable.pad0 = 0;
pWin->drawable.pad1 = 0;
#endif
} }
return pWin; return pWin;
} }
...@@ -481,6 +504,7 @@ void ...@@ -481,6 +504,7 @@ void
InitRootWindow(WindowPtr pWin) InitRootWindow(WindowPtr pWin)
{ {
ScreenPtr pScreen = pWin->drawable.pScreen; ScreenPtr pScreen = pWin->drawable.pScreen;
int backFlag = CWBorderPixel | CWCursor | CWBackingStore;
if (!(*pScreen->CreateWindow)(pWin)) if (!(*pScreen->CreateWindow)(pWin))
return; /* XXX */ return; /* XXX */
...@@ -489,12 +513,23 @@ InitRootWindow(WindowPtr pWin) ...@@ -489,12 +513,23 @@ InitRootWindow(WindowPtr pWin)
pWin->cursorIsNone = FALSE; pWin->cursorIsNone = FALSE;
pWin->optional->cursor = rootCursor; pWin->optional->cursor = rootCursor;
rootCursor->refcnt++; rootCursor->refcnt++;
if (!blackRoot && !whiteRoot) {
MakeRootTile(pWin); MakeRootTile(pWin);
backFlag |= CWBackPixmap;
}
else {
if (blackRoot)
pWin->background.pixel = pScreen->blackPixel;
else
pWin->background.pixel = pScreen->whitePixel;
backFlag |= CWBackPixel;
}
pWin->backingStore = defaultBackingStore; pWin->backingStore = defaultBackingStore;
pWin->forcedBS = (defaultBackingStore != NotUseful); pWin->forcedBS = (defaultBackingStore != NotUseful);
/* We SHOULD check for an error value here XXX */ /* We SHOULD check for an error value here XXX */
(*pScreen->ChangeWindowAttributes)(pWin, (*pScreen->ChangeWindowAttributes)(pWin, backFlag);
CWBackPixmap|CWBorderPixel|CWCursor|CWBackingStore);
MapWindow(pWin, serverClient); MapWindow(pWin, serverClient);
} }
...@@ -2059,7 +2094,7 @@ WhereDoIGoInTheStack( ...@@ -2059,7 +2094,7 @@ WhereDoIGoInTheStack(
else else
return NullWindow; return NullWindow;
case TopIf: case TopIf:
if ((!pWin->mapped || (pSib && !pSib->mapped)) && !permitOldBugs) if ((!pWin->mapped || (pSib && !pSib->mapped)))
return(pWin->nextSib); return(pWin->nextSib);
else if (pSib) else if (pSib)
{ {
...@@ -2074,7 +2109,7 @@ WhereDoIGoInTheStack( ...@@ -2074,7 +2109,7 @@ WhereDoIGoInTheStack(
else else
return(pWin->nextSib); return(pWin->nextSib);
case BottomIf: case BottomIf:
if ((!pWin->mapped || (pSib && !pSib->mapped)) && !permitOldBugs) if ((!pWin->mapped || (pSib && !pSib->mapped)))
return(pWin->nextSib); return(pWin->nextSib);
else if (pSib) else if (pSib)
{ {
...@@ -2089,7 +2124,7 @@ WhereDoIGoInTheStack( ...@@ -2089,7 +2124,7 @@ WhereDoIGoInTheStack(
else else
return(pWin->nextSib); return(pWin->nextSib);
case Opposite: case Opposite:
if ((!pWin->mapped || (pSib && !pSib->mapped)) && !permitOldBugs) if ((!pWin->mapped || (pSib && !pSib->mapped)))
return(pWin->nextSib); return(pWin->nextSib);
else if (pSib) else if (pSib)
{ {
...@@ -2709,7 +2744,7 @@ MapWindow(register WindowPtr pWin, ClientPtr client) ...@@ -2709,7 +2744,7 @@ MapWindow(register WindowPtr pWin, ClientPtr client)
} }
pWin->mapped = TRUE; pWin->mapped = TRUE;
if (SubStrSend(pWin, pParent)) if (SubStrSend(pWin, pParent) && MapUnmapEventsEnabled(pWin))
{ {
memset(&event, 0, sizeof(xEvent)); memset(&event, 0, sizeof(xEvent));
event.u.u.type = MapNotify; event.u.u.type = MapNotify;
...@@ -2968,7 +3003,7 @@ UnmapWindow(register WindowPtr pWin, Bool fromConfigure) ...@@ -2968,7 +3003,7 @@ UnmapWindow(register WindowPtr pWin, Bool fromConfigure)
if ((!pWin->mapped) || (!(pParent = pWin->parent))) if ((!pWin->mapped) || (!(pParent = pWin->parent)))
return(Success); return(Success);
if (SubStrSend(pWin, pParent)) if (SubStrSend(pWin, pParent) && MapUnmapEventsEnabled(pWin))
{ {
memset(&event, 0, sizeof(xEvent)); memset(&event, 0, sizeof(xEvent));
event.u.u.type = UnmapNotify; event.u.u.type = UnmapNotify;
...@@ -3271,6 +3306,29 @@ SendVisibilityNotify(WindowPtr pWin) ...@@ -3271,6 +3306,29 @@ SendVisibilityNotify(WindowPtr pWin)
DeliverEvents(pWin, &event, 1, NullWindow); DeliverEvents(pWin, &event, 1, NullWindow);
} }
static WindowPtr windowDisableMapUnmapEvents;
void
DisableMapUnmapEvents(WindowPtr pWin)
{
assert (windowDisableMapUnmapEvents == NULL);
windowDisableMapUnmapEvents = pWin;
}
void
EnableMapUnmapEvents(WindowPtr pWin)
{
assert (windowDisableMapUnmapEvents != NULL);
windowDisableMapUnmapEvents = NULL;
}
Bool
MapUnmapEventsEnabled(WindowPtr pWin)
{
return pWin != windowDisableMapUnmapEvents;
}
#define RANDOM_WIDTH 32 #define RANDOM_WIDTH 32
......
...@@ -31,6 +31,8 @@ from The Open Group. ...@@ -31,6 +31,8 @@ from The Open Group.
#include "misc.h" #include "misc.h"
#include <X11/fonts/font.h> #include <X11/fonts/font.h>
extern Bool XpClientIsBitmapClient(ClientPtr client);
extern Bool XpClientIsPrintClient(ClientPtr client, FontPathElementPtr fpe);
Bool Bool
XpClientIsBitmapClient( XpClientIsBitmapClient(
......
...@@ -547,13 +547,12 @@ ProcSendEvent(ClientPtr client) ...@@ -547,13 +547,12 @@ ProcSendEvent(ClientPtr client)
if (stuff->event.u.u.type == ClientMessage && if (stuff->event.u.u.type == ClientMessage &&
stuff->event.u.u.detail != 8 && stuff->event.u.u.detail != 8 &&
stuff->event.u.u.detail != 16 && stuff->event.u.u.detail != 16 &&
stuff->event.u.u.detail != 32 && stuff->event.u.u.detail != 32)
!permitOldBugs)
{ {
client->errorValue = stuff->event.u.u.detail; client->errorValue = stuff->event.u.u.detail;
return BadValue; return BadValue;
} }
if ((stuff->eventMask & ~AllEventMasks) && !permitOldBugs) if (stuff->eventMask & ~AllEventMasks)
{ {
client->errorValue = stuff->eventMask; client->errorValue = stuff->eventMask;
return BadValue; return BadValue;
......
...@@ -208,14 +208,11 @@ ChangeWindowProperty(WindowPtr pWin, Atom property, Atom type, int format, ...@@ -208,14 +208,11 @@ ChangeWindowProperty(WindowPtr pWin, Atom property, Atom type, int format,
Bool sendevent) Bool sendevent)
{ {
PropertyPtr pProp; PropertyPtr pProp;
xEvent event;
int sizeInBytes; int sizeInBytes;
int totalSize; int totalSize;
void * data; void * data;
int copySize; int copySize;
memset(&event, 0, sizeof(xEvent));
sizeInBytes = format>>3; sizeInBytes = format>>3;
totalSize = len * sizeInBytes; totalSize = len * sizeInBytes;
...@@ -320,6 +317,8 @@ ChangeWindowProperty(WindowPtr pWin, Atom property, Atom type, int format, ...@@ -320,6 +317,8 @@ ChangeWindowProperty(WindowPtr pWin, Atom property, Atom type, int format,
} }
if (sendevent) if (sendevent)
{ {
xEvent event;
memset(&event, 0, sizeof(xEvent));
event.u.u.type = PropertyNotify; event.u.u.type = PropertyNotify;
event.u.property.window = pWin->drawable.id; event.u.property.window = pWin->drawable.id;
event.u.property.state = PropertyNewValue; event.u.property.state = PropertyNewValue;
...@@ -350,7 +349,6 @@ ProcGetProperty(ClientPtr client) ...@@ -350,7 +349,6 @@ ProcGetProperty(ClientPtr client)
REQUEST(xGetPropertyReq); REQUEST(xGetPropertyReq);
REQUEST_SIZE_MATCH(xGetPropertyReq); REQUEST_SIZE_MATCH(xGetPropertyReq);
if (stuff->delete) if (stuff->delete)
UpdateCurrentTime(); UpdateCurrentTime();
pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
......
...@@ -138,9 +138,7 @@ extern void nxagentSetVersionProperty(WindowPtr pWin); ...@@ -138,9 +138,7 @@ extern void nxagentSetVersionProperty(WindowPtr pWin);
void nxagentClearSplash(WindowPtr pW) void nxagentClearSplash(WindowPtr pW)
{ {
ScreenPtr pScreen; ScreenPtr pScreen = pW->drawable.pScreen;
pScreen = pW->drawable.pScreen;
if (pW->backgroundState == BackgroundPixmap) if (pW->backgroundState == BackgroundPixmap)
{ {
...@@ -189,9 +187,6 @@ MakeRootTile(WindowPtr pWin) ...@@ -189,9 +187,6 @@ MakeRootTile(WindowPtr pWin)
for (j = len; j > 0; j--) for (j = len; j > 0; j--)
*to++ = *from; *to++ = *from;
if (blackRoot)
bzero(back, sizeof(back));
(*pGC->ops->PutImage)((DrawablePtr)pWin->background.pixmap, pGC, 1, (*pGC->ops->PutImage)((DrawablePtr)pWin->background.pixmap, pGC, 1,
0, 0, len, 4, 0, XYBitmap, (char *)back); 0, 0, len, 4, 0, XYBitmap, (char *)back);
...@@ -203,7 +198,8 @@ MakeRootTile(WindowPtr pWin) ...@@ -203,7 +198,8 @@ MakeRootTile(WindowPtr pWin)
void void
InitRootWindow(WindowPtr pWin) InitRootWindow(WindowPtr pWin)
{ {
ScreenPtr pScreen; ScreenPtr pScreen = pWin->drawable.pScreen;
int backFlag = CWBorderPixel | CWCursor | CWBackingStore;
#ifdef TEST #ifdef TEST
fprintf(stderr, "InitRootWindow: Called for window at [%p][%ld] with parent [%p].\n", fprintf(stderr, "InitRootWindow: Called for window at [%p][%ld] with parent [%p].\n",
...@@ -220,8 +216,6 @@ InitRootWindow(WindowPtr pWin) ...@@ -220,8 +216,6 @@ InitRootWindow(WindowPtr pWin)
nxagentRootlessWindow = pWin; nxagentRootlessWindow = pWin;
} }
pScreen = pWin->drawable.pScreen;
/* /*
* A root window is created for each screen by main * A root window is created for each screen by main
* and the pointer is saved in screenInfo.screens as * and the pointer is saved in screenInfo.screens as
...@@ -254,20 +248,34 @@ InitRootWindow(WindowPtr pWin) ...@@ -254,20 +248,34 @@ InitRootWindow(WindowPtr pWin)
pWin->cursorIsNone = FALSE; pWin->cursorIsNone = FALSE;
pWin->optional->cursor = rootCursor; pWin->optional->cursor = rootCursor;
rootCursor->refcnt++; rootCursor->refcnt++;
#ifdef NXAGENT_SPLASH
if (blackRoot)
pWin->background.pixel = pScreen->blackPixel;
else
pWin->background.pixel = pScreen->whitePixel;
backFlag |= CWBackPixel;
MakeRootTile(pWin);
#else
if (!blackRoot && !whiteRoot) {
MakeRootTile(pWin);
backFlag |= CWBackPixmap;
}
else {
if (blackRoot)
pWin->background.pixel = pScreen->blackPixel;
else
pWin->background.pixel = pScreen->whitePixel;
backFlag |= CWBackPixel;
}
#endif
pWin->backingStore = defaultBackingStore; pWin->backingStore = defaultBackingStore;
pWin->forcedBS = (defaultBackingStore != NotUseful); pWin->forcedBS = (defaultBackingStore != NotUseful);
#ifdef NXAGENT_SPLASH
/* We SHOULD check for an error value here XXX */ /* We SHOULD check for an error value here XXX */
pWin -> background.pixel = pScreen -> blackPixel; (*pScreen->ChangeWindowAttributes)(pWin, backFlag);
(*pScreen->ChangeWindowAttributes)(pWin,
CWBackPixel|CWBorderPixel|CWCursor|CWBackingStore);
#else
(*pScreen->ChangeWindowAttributes)(pWin,
CWBackPixmap|CWBorderPixel|CWCursor|CWBackingStore);
#endif
MakeRootTile(pWin);
/* /*
* Map both the root and the default agent window. * Map both the root and the default agent window.
...@@ -310,6 +318,7 @@ DeleteWindow(void * value, XID wid) ...@@ -310,6 +318,7 @@ DeleteWindow(void * value, XID wid)
{ {
register WindowPtr pParent; register WindowPtr pParent;
register WindowPtr pWin = (WindowPtr)value; register WindowPtr pWin = (WindowPtr)value;
xEvent event;
UnmapWindow(pWin, FALSE); UnmapWindow(pWin, FALSE);
...@@ -318,7 +327,7 @@ DeleteWindow(void * value, XID wid) ...@@ -318,7 +327,7 @@ DeleteWindow(void * value, XID wid)
pParent = pWin->parent; pParent = pWin->parent;
if (wid && pParent && SubStrSend(pWin, pParent)) if (wid && pParent && SubStrSend(pWin, pParent))
{ {
xEvent event = {0}; memset(&event, 0, sizeof(xEvent));
event.u.u.type = DestroyNotify; event.u.u.type = DestroyNotify;
event.u.destroyNotify.window = pWin->drawable.id; event.u.destroyNotify.window = pWin->drawable.id;
DeliverEvents(pWin, &event, 1, NullWindow); DeliverEvents(pWin, &event, 1, NullWindow);
...@@ -874,7 +883,7 @@ MapWindow(register WindowPtr pWin, ClientPtr client) ...@@ -874,7 +883,7 @@ MapWindow(register WindowPtr pWin, ClientPtr client)
} }
pWin->mapped = TRUE; pWin->mapped = TRUE;
if (SubStrSend(pWin, pParent)) if (SubStrSend(pWin, pParent) && MapUnmapEventsEnabled(pWin))
{ {
memset(&event, 0, sizeof(xEvent)); memset(&event, 0, sizeof(xEvent));
event.u.u.type = MapNotify; event.u.u.type = MapNotify;
...@@ -945,6 +954,7 @@ int ...@@ -945,6 +954,7 @@ int
UnmapWindow(register WindowPtr pWin, Bool fromConfigure) UnmapWindow(register WindowPtr pWin, Bool fromConfigure)
{ {
register WindowPtr pParent; register WindowPtr pParent;
xEvent event;
Bool wasRealized = (Bool)pWin->realized; Bool wasRealized = (Bool)pWin->realized;
Bool wasViewable = (Bool)pWin->viewable; Bool wasViewable = (Bool)pWin->viewable;
ScreenPtr pScreen = pWin->drawable.pScreen; ScreenPtr pScreen = pWin->drawable.pScreen;
...@@ -960,9 +970,9 @@ UnmapWindow(register WindowPtr pWin, Bool fromConfigure) ...@@ -960,9 +970,9 @@ UnmapWindow(register WindowPtr pWin, Bool fromConfigure)
if ((!pWin->mapped) || (!(pParent = pWin->parent))) if ((!pWin->mapped) || (!(pParent = pWin->parent)))
return(Success); return(Success);
if (SubStrSend(pWin, pParent)) if (SubStrSend(pWin, pParent) && MapUnmapEventsEnabled(pWin))
{ {
xEvent event = {0}; memset(&event, 0, sizeof(xEvent));
event.u.u.type = UnmapNotify; event.u.u.type = UnmapNotify;
event.u.unmapNotify.window = pWin->drawable.id; event.u.unmapNotify.window = pWin->drawable.id;
event.u.unmapNotify.fromConfigure = fromConfigure; event.u.unmapNotify.fromConfigure = fromConfigure;
......
...@@ -139,11 +139,6 @@ specifies a file which contains a collection of authorization records used ...@@ -139,11 +139,6 @@ specifies a file which contains a collection of authorization records used
to authenticate access. See also the \fIxdm\fP(1) and to authenticate access. See also the \fIxdm\fP(1) and
\fIXsecurity\fP(__miscmansuffix__) manual pages. \fIXsecurity\fP(__miscmansuffix__) manual pages.
.TP 8 .TP 8
.B bc
disables certain kinds of error checking, for bug compatibility with
previous releases (e.g., to work around bugs in R2 and R3 xterms and toolkits).
Deprecated.
.TP 8
.B \-bs .B \-bs
disables backing store support on all screens. disables backing store support on all screens.
.TP 8 .TP 8
......
...@@ -48,6 +48,8 @@ SOFTWARE. ...@@ -48,6 +48,8 @@ SOFTWARE.
#ifndef CMAPSTRUCT_H #ifndef CMAPSTRUCT_H
#define CMAPSTRUCT_H 1 #define CMAPSTRUCT_H 1
#include <nx-X11/Xarch.h>
#include "colormap.h" #include "colormap.h"
#include "screenint.h" #include "screenint.h"
...@@ -88,15 +90,26 @@ typedef struct _CMEntry ...@@ -88,15 +90,26 @@ typedef struct _CMEntry
Bool fShared; Bool fShared;
} Entry; } Entry;
/* COLORMAPs can be used for either Direct or Pseudo color. PseudoColor /*
* COLORMAPs can be used for either Direct or Pseudo color. PseudoColor
* only needs one cell table, we arbitrarily pick red. We keep track * only needs one cell table, we arbitrarily pick red. We keep track
* of that table with freeRed, numPixelsRed, and clientPixelsRed */ * of that table with freeRed, numPixelsRed, and clientPixelsRed
*
* The padN variables are unfortunate ABI BC. See fdo bug #6924.
*/
typedef struct _ColormapRec typedef struct _ColormapRec
{ {
VisualPtr pVisual; VisualPtr pVisual;
short class; /* PseudoColor or DirectColor */ short class; /* PseudoColor or DirectColor */
long mid; /* client's name for colormap */ #if defined(_XSERVER64)
short pad0;
XID pad1;
#endif
XID mid; /* client's name for colormap */
#if defined(_XSERVER64) && (X_BYTE_ORDER == X_LITTLE_ENDIAN)
XID pad2;
#endif
ScreenPtr pScreen; /* screen map is associated with */ ScreenPtr pScreen; /* screen map is associated with */
short flags; /* 1 = IsDefault short flags; /* 1 = IsDefault
* 2 = AllAllocated */ * 2 = AllAllocated */
......
...@@ -54,6 +54,18 @@ extern unsigned short StandardMinorOpcode(ClientPtr /*client*/); ...@@ -54,6 +54,18 @@ extern unsigned short StandardMinorOpcode(ClientPtr /*client*/);
extern unsigned short MinorOpcodeOfRequest(ClientPtr /*client*/); extern unsigned short MinorOpcodeOfRequest(ClientPtr /*client*/);
extern Bool EnableDisableExtension(char *name, Bool enable);
extern void EnableDisableExtensionError(char *name, Bool enable);
extern void ResetExtensionPrivates(void);
extern int AllocateExtensionPrivateIndex(void);
extern Bool AllocateExtensionPrivate(
int /*index*/,
unsigned /*amount*/);
extern void InitExtensions(int argc, char **argv); extern void InitExtensions(int argc, char **argv);
extern void InitVisualWrap(void); extern void InitVisualWrap(void);
......
...@@ -48,6 +48,7 @@ SOFTWARE. ...@@ -48,6 +48,7 @@ SOFTWARE.
#ifndef EXTENSIONSTRUCT_H #ifndef EXTENSIONSTRUCT_H
#define EXTENSIONSTRUCT_H #define EXTENSIONSTRUCT_H
#include "dix.h"
#include "misc.h" #include "misc.h"
#include "screenint.h" #include "screenint.h"
#include "extension.h" #include "extension.h"
...@@ -71,6 +72,7 @@ typedef struct _ExtensionEntry { ...@@ -71,6 +72,7 @@ typedef struct _ExtensionEntry {
#ifdef XCSECURITY #ifdef XCSECURITY
Bool secure; /* extension visible to untrusted clients? */ Bool secure; /* extension visible to untrusted clients? */
#endif #endif
DevUnion *devPrivates;
} ExtensionEntry; } ExtensionEntry;
/* /*
...@@ -127,6 +129,7 @@ extern Bool AddExtensionAlias( ...@@ -127,6 +129,7 @@ extern Bool AddExtensionAlias(
ExtensionEntry * /*extension*/); ExtensionEntry * /*extension*/);
extern ExtensionEntry *CheckExtension(const char *extname); extern ExtensionEntry *CheckExtension(const char *extname);
extern ExtensionEntry *GetExtensionEntry(int major);
extern ExtensionLookupProc LookupProc( extern ExtensionLookupProc LookupProc(
char* /*name*/, char* /*name*/,
......
...@@ -72,10 +72,10 @@ extern int limitStackSpace; ...@@ -72,10 +72,10 @@ extern int limitStackSpace;
#ifdef RLIMIT_NOFILE #ifdef RLIMIT_NOFILE
extern int limitNoFile; extern int limitNoFile;
#endif #endif
extern Bool permitOldBugs;
extern Bool defeatAccessControl; extern Bool defeatAccessControl;
extern long maxBigRequestSize; extern long maxBigRequestSize;
extern Bool blackRoot; extern Bool blackRoot;
extern Bool whiteRoot;
extern Bool CoreDump; extern Bool CoreDump;
extern Bool NoListenAll; extern Bool NoListenAll;
......
...@@ -47,16 +47,27 @@ SOFTWARE. ...@@ -47,16 +47,27 @@ SOFTWARE.
#ifndef PIXMAPSTRUCT_H #ifndef PIXMAPSTRUCT_H
#define PIXMAPSTRUCT_H #define PIXMAPSTRUCT_H
#include <nx-X11/Xarch.h>
#include "pixmap.h" #include "pixmap.h"
#include "screenint.h" #include "screenint.h"
#include "regionstr.h" #include "regionstr.h"
/*
* The padN members are unfortunate ABI BC. See fdo bug #6924.
*/
typedef struct _Drawable { typedef struct _Drawable {
unsigned char type; /* DRAWABLE_<type> */ unsigned char type; /* DRAWABLE_<type> */
unsigned char class; /* specific to type */ unsigned char class; /* specific to type */
unsigned char depth; unsigned char depth;
unsigned char bitsPerPixel; unsigned char bitsPerPixel;
unsigned long id; /* resource id */ #if defined(_XSERVER64)
XID pad0;
#endif
XID id; /* resource id */
#if defined(_XSERVER64)
XID pad1;
#endif
short x; /* window: screen absolute, pixmap: 0 */ short x; /* window: screen absolute, pixmap: 0 */
short y; /* window: screen absolute, pixmap: 0 */ short y; /* window: screen absolute, pixmap: 0 */
unsigned short width; unsigned short width;
......
...@@ -264,4 +264,11 @@ extern RegionPtr CreateBoundingShape( ...@@ -264,4 +264,11 @@ extern RegionPtr CreateBoundingShape(
extern RegionPtr CreateClipShape( extern RegionPtr CreateClipShape(
WindowPtr /* pWin */ ); WindowPtr /* pWin */ );
extern void DisableMapUnmapEvents(
WindowPtr /* pWin */ );
extern void EnableMapUnmapEvents(
WindowPtr /* pWin */ );
extern Bool MapUnmapEventsEnabled(
WindowPtr /* pWin */ );
#endif /* WINDOW_H */ #endif /* WINDOW_H */
...@@ -753,8 +753,6 @@ ProcessCommandLine(int argc, char *argv[]) ...@@ -753,8 +753,6 @@ ProcessCommandLine(int argc, char *argv[])
else else
UseMsg(); UseMsg();
} }
else if ( strcmp( argv[i], "bc") == 0)
permitOldBugs = TRUE;
else if ( strcmp( argv[i], "-br") == 0) else if ( strcmp( argv[i], "-br") == 0)
blackRoot = TRUE; blackRoot = TRUE;
else if ( strcmp( argv[i], "+bs") == 0) else if ( strcmp( argv[i], "+bs") == 0)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment