Rebased ref, commits from common ancestor: commit afd730f57fa1cd3e10ac47666bd6739016d60d55 Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Tue May 11 13:55:55 2010 +1000
xserver 1.8.1 Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> diff --git a/configure.ac b/configure.ac index 0d66ce4..637e610 100644 --- a/configure.ac +++ b/configure.ac @@ -26,8 +26,8 @@ dnl dnl Process this file with autoconf to create configure. AC_PREREQ(2.57) -AC_INIT([xorg-server], 1.8.0.902, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server) -RELEASE_DATE="2010-05-04" +AC_INIT([xorg-server], 1.8.1, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server) +RELEASE_DATE="2010-05-11" AC_CONFIG_SRCDIR([Makefile.am]) AM_INIT_AUTOMAKE([foreign dist-bzip2]) AM_MAINTAINER_MODE commit 3ffde1e403666b8c84ce34d46caef6e19b87cf51 Author: Adam Tkac <at...@redhat.com> Date: Fri May 7 17:02:03 2010 +1000 Export XkbCopyDeviceKeymap from Xorg, it is needed by VNC. Signed-off-by: Adam Tkac <at...@redhat.com> Reviewed-by: Peter Hutterer <peter.hutte...@who-t.net> Signed-off-by: Keith Packard <kei...@keithp.com> (cherry picked from commit 626f97688a89dbc5da80390d822d21b1a737de0e) diff --git a/include/xkbsrv.h b/include/xkbsrv.h index 239b7a1..c0cd501 100644 --- a/include/xkbsrv.h +++ b/include/xkbsrv.h @@ -919,7 +919,7 @@ extern Bool XkbCopyKeymap( XkbDescPtr /* dst */, XkbDescPtr /* src */); -extern Bool XkbCopyDeviceKeymap( +extern _X_EXPORT Bool XkbCopyDeviceKeymap( DeviceIntPtr /* dst */, DeviceIntPtr /* src */); commit 7e1f1ed5e99917f65b998eae0202c6c0a51e6819 Author: Julien Cristau <jcris...@debian.org> Date: Tue May 4 15:15:02 2010 +0200 XQuartz: add new localization files to EXTRA_DIST commit 206531f75cd41c034e89fdfbc75ab0910682eef8 added localization files for ar, add them to the Makefile. Signed-off-by: Julien Cristau <jcris...@debian.org> Reviewed-by: Jeremy Huddleston <jerem...@apple.com> (cherry picked from commit 72758287f79a4f1aa8fa388f20947042e3e14693) diff --git a/hw/xquartz/bundle/Makefile.am b/hw/xquartz/bundle/Makefile.am index f8b96d8..c4d77c0 100644 --- a/hw/xquartz/bundle/Makefile.am +++ b/hw/xquartz/bundle/Makefile.am @@ -28,6 +28,10 @@ EXTRA_DIST = \ Info.plist.cpp \ PkgInfo \ $(resource_DATA) \ + Resources/ar.lproj/InfoPlist.strings \ + Resources/ar.lproj/Localizable.strings \ + Resources/ar.lproj/main.nib/designable.nib \ + Resources/ar.lproj/main.nib/keyedobjects.nib \ Resources/da.lproj/InfoPlist.strings \ Resources/da.lproj/Localizable.strings \ Resources/da.lproj/main.nib/keyedobjects.nib \ commit 7af94a816cd89eaf2777b6c38ba8b1d2a8965d65 Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Tue May 4 08:16:21 2010 +1000 xserver 1.8.0.902 Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> diff --git a/configure.ac b/configure.ac index 0b6a965..0d66ce4 100644 --- a/configure.ac +++ b/configure.ac @@ -26,8 +26,8 @@ dnl dnl Process this file with autoconf to create configure. AC_PREREQ(2.57) -AC_INIT([xorg-server], 1.8.0.901, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server) -RELEASE_DATE="2010-04-27" +AC_INIT([xorg-server], 1.8.0.902, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server) +RELEASE_DATE="2010-05-04" AC_CONFIG_SRCDIR([Makefile.am]) AM_INIT_AUTOMAKE([foreign dist-bzip2]) AM_MAINTAINER_MODE commit d57d14d039ecbdbe1c960e0b0b5d029f6dfa4000 Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Tue May 4 08:14:39 2010 +1000 mi: don't thrash resources when displaying the software cursor across screens This changes the DC layer to maintain a persistent set of GCs/pixmaps/pictures for each pScreen instead of failing to thrash between them when changing screens. Signed-off-by: Pierre-Loup A. Griffais <pgriff...@nvidia.com> Reviewed-by: Peter Hutterer <peter.hutte...@who-t.net> Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> Tested-by: Peter Hutterer <peter.hutte...@who-t.net> (cherry picked from commit 518f3b189b6c8aa28b62837d14309fd06163ccbb) Conflicts: mi/midispcur.c Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> diff --git a/mi/midispcur.c b/mi/midispcur.c index 55d65d5..9041630 100644 --- a/mi/midispcur.c +++ b/mi/midispcur.c @@ -59,9 +59,9 @@ static DevPrivateKey miDCScreenKey = &miDCScreenKeyIndex; static Bool miDCCloseScreen(int index, ScreenPtr pScreen); -/* per device private data */ -static int miDCSpriteKeyIndex; -static DevPrivateKey miDCSpriteKey = &miDCSpriteKeyIndex; +/* per device per-screen private data */ +static int miDCSpriteKeyIndex[MAXSCREENS]; +static DevPrivateKey miDCSpriteKey = miDCSpriteKeyIndex; typedef struct { GCPtr pSourceGC, pMaskGC; @@ -75,10 +75,10 @@ typedef struct { #endif } miDCBufferRec, *miDCBufferPtr; -#define MIDCBUFFER(dev) \ +#define MIDCBUFFER(dev, screen) \ ((DevHasCursor(dev)) ? \ - (miDCBufferPtr)dixLookupPrivate(&dev->devPrivates, miDCSpriteKey) : \ - (miDCBufferPtr)dixLookupPrivate(&dev->u.master->devPrivates, miDCSpriteKey)) + (miDCBufferPtr)dixLookupPrivate(&dev->devPrivates, miDCSpriteKey + (screen)->myNum) : \ + (miDCBufferPtr)dixLookupPrivate(&dev->u.master->devPrivates, miDCSpriteKey + (screen)->myNum)) /* * The core pointer buffer will point to the index of the virtual core pointer @@ -158,10 +158,6 @@ miDCInitialize (ScreenPtr pScreen, miPointerScreenFuncPtr screenFuncs) return TRUE; } -#define tossGC(gc) (gc ? FreeGC (gc, (GContext) 0) : 0) -#define tossPix(pix) (pix ? (*pScreen->DestroyPixmap) (pix) : TRUE) -#define tossPict(pict) (pict ? FreePicture (pict, 0) : 0) - static Bool miDCCloseScreen (int index, ScreenPtr pScreen) { @@ -183,7 +179,6 @@ miDCRealizeCursor (ScreenPtr pScreen, CursorPtr pCursor) } #ifdef ARGB_CURSOR -#define EnsurePicture(picture,draw,win) (picture || miDCMakePicture(&picture,draw,win)) static VisualPtr miDCGetWindowVisual (WindowPtr pWin) @@ -415,12 +410,8 @@ miDCPutBits ( (*maskGC->ops->PushPixels) (maskGC, pPriv->maskBits, pDrawable, w, h, x, y); } -#define EnsureGC(gc,win) (gc || miDCMakeGC(&gc, win)) - static GCPtr -miDCMakeGC( - GCPtr *ppGC, - WindowPtr pWin) +miDCMakeGC(WindowPtr pWin) { GCPtr pGC; int status; @@ -431,7 +422,6 @@ miDCMakeGC( pGC = CreateGC((DrawablePtr)pWin, GCSubwindowMode|GCGraphicsExposures, gcvals, &status, (XID)0, serverClient); - *ppGC = pGC; return pGC; } @@ -456,22 +446,11 @@ miDCPutUpCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor, pScreenPriv = (miDCScreenPtr)dixLookupPrivate(&pScreen->devPrivates, miDCScreenKey); pWin = WindowTable[pScreen->myNum]; - pBuffer = MIDCBUFFER(pDev); + pBuffer = MIDCBUFFER(pDev, pScreen); #ifdef ARGB_CURSOR if (pPriv->pPicture) { - /* see comment in miDCPutUpCursor */ - if (pBuffer->pRootPicture && - pBuffer->pRootPicture->pDrawable && - pBuffer->pRootPicture->pDrawable->pScreen != pScreen) - { - tossPict(pBuffer->pRootPicture); - pBuffer->pRootPicture = NULL; - } - - if (!EnsurePicture(pBuffer->pRootPicture, &pWin->drawable, pWin)) - return FALSE; CompositePicture (PictOpOver, pPriv->pPicture, NULL, @@ -484,33 +463,6 @@ miDCPutUpCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor, else #endif { - /** - * XXX: Before MPX, the sourceGC and maskGC were attached to the - * screen, and would switch as the screen switches. With mpx we have - * the GC's attached to the device now, so each time we switch screen - * we need to make sure the GC's are allocated on the new screen. - * This is ... not optimal. (whot) - */ - if (pBuffer->pSourceGC && pScreen != pBuffer->pSourceGC->pScreen) - { - tossGC(pBuffer->pSourceGC); - pBuffer->pSourceGC = NULL; - } - - if (pBuffer->pMaskGC && pScreen != pBuffer->pMaskGC->pScreen) - { - tossGC(pBuffer->pMaskGC); - pBuffer->pMaskGC = NULL; - } - - if (!EnsureGC(pBuffer->pSourceGC, pWin)) - return FALSE; - if (!EnsureGC(pBuffer->pMaskGC, pWin)) - { - FreeGC (pBuffer->pSourceGC, (GContext) 0); - pBuffer->pSourceGC = 0; - return FALSE; - } miDCPutBits ((DrawablePtr)pWin, pPriv, pBuffer->pSourceGC, pBuffer->pMaskGC, x, y, pCursor->bits->width, pCursor->bits->height, @@ -531,7 +483,7 @@ miDCSaveUnderCursor (DeviceIntPtr pDev, ScreenPtr pScreen, pScreenPriv = (miDCScreenPtr)dixLookupPrivate(&pScreen->devPrivates, miDCScreenKey); - pBuffer = MIDCBUFFER(pDev); + pBuffer = MIDCBUFFER(pDev, pScreen); pSave = pBuffer->pSave; pWin = WindowTable[pScreen->myNum]; @@ -544,14 +496,7 @@ miDCSaveUnderCursor (DeviceIntPtr pDev, ScreenPtr pScreen, if (!pSave) return FALSE; } - /* see comment in miDCPutUpCursor */ - if (pBuffer->pSaveGC && pBuffer->pSaveGC->pScreen != pScreen) - { - tossGC(pBuffer->pSaveGC); - pBuffer->pSaveGC = NULL; - } - if (!EnsureGC(pBuffer->pSaveGC, pWin)) - return FALSE; + pGC = pBuffer->pSaveGC; if (pSave->drawable.serialNumber != pGC->serialNumber) ValidateGC ((DrawablePtr) pSave, pGC); @@ -572,20 +517,13 @@ miDCRestoreUnderCursor (DeviceIntPtr pDev, ScreenPtr pScreen, pScreenPriv = (miDCScreenPtr)dixLookupPrivate(&pScreen->devPrivates, miDCScreenKey); - pBuffer = MIDCBUFFER(pDev); + pBuffer = MIDCBUFFER(pDev, pScreen); pSave = pBuffer->pSave; pWin = WindowTable[pScreen->myNum]; if (!pSave) return FALSE; - /* see comment in miDCPutUpCursor */ - if (pBuffer->pRestoreGC && pBuffer->pRestoreGC->pScreen != pScreen) - { - tossGC(pBuffer->pRestoreGC); - pBuffer->pRestoreGC = NULL; - } - if (!EnsureGC(pBuffer->pRestoreGC, pWin)) - return FALSE; + pGC = pBuffer->pRestoreGC; if (pWin->drawable.serialNumber != pGC->serialNumber) ValidateGC ((DrawablePtr) pWin, pGC); @@ -607,7 +545,7 @@ miDCChangeSave (DeviceIntPtr pDev, ScreenPtr pScreen, pScreenPriv = (miDCScreenPtr)dixLookupPrivate(&pScreen->devPrivates, miDCScreenKey); - pBuffer = MIDCBUFFER(pDev); + pBuffer = MIDCBUFFER(pDev, pScreen); pSave = pBuffer->pSave; pWin = WindowTable[pScreen->myNum]; @@ -616,14 +554,7 @@ miDCChangeSave (DeviceIntPtr pDev, ScreenPtr pScreen, */ if (!pSave) return FALSE; - /* see comment in miDCPutUpCursor */ - if (pBuffer->pRestoreGC && pBuffer->pRestoreGC->pScreen != pScreen) - { - tossGC(pBuffer->pRestoreGC); - pBuffer->pRestoreGC = NULL; - } - if (!EnsureGC(pBuffer->pRestoreGC, pWin)) - return FALSE; + pGC = pBuffer->pRestoreGC; if (pWin->drawable.serialNumber != pGC->serialNumber) ValidateGC ((DrawablePtr) pWin, pGC); @@ -662,14 +593,7 @@ miDCChangeSave (DeviceIntPtr pDev, ScreenPtr pScreen, (*pGC->ops->CopyArea) ((DrawablePtr) pSave, (DrawablePtr) pWin, pGC, 0, sourcey, -dx, copyh, x + dx, desty); } - /* see comment in miDCPutUpCursor */ - if (pBuffer->pSaveGC && pBuffer->pSaveGC->pScreen != pScreen) - { - tossGC(pBuffer->pSaveGC); - pBuffer->pSaveGC = NULL; - } - if (!EnsureGC(pBuffer->pSaveGC, pWin)) - return FALSE; + pGC = pBuffer->pSaveGC; if (pSave->drawable.serialNumber != pGC->serialNumber) ValidateGC ((DrawablePtr) pSave, pGC); @@ -766,7 +690,7 @@ miDCMoveCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor, pScreenPriv = (miDCScreenPtr)dixLookupPrivate(&pScreen->devPrivates, miDCScreenKey); pWin = WindowTable[pScreen->myNum]; - pBuffer = MIDCBUFFER(pDev); + pBuffer = MIDCBUFFER(pDev, pScreen); pTemp = pBuffer->pTemp; if (!pTemp || @@ -809,17 +733,9 @@ miDCMoveCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor, #ifdef ARGB_CURSOR if (pPriv->pPicture) { - /* see comment in miDCPutUpCursor */ - if (pBuffer->pTempPicture && - pBuffer->pTempPicture->pDrawable && - pBuffer->pTempPicture->pDrawable->pScreen != pScreen) - { - tossPict(pBuffer->pTempPicture); - pBuffer->pTempPicture = NULL; - } + if (!pBuffer->pTempPicture) + miDCMakePicture(&pBuffer->pTempPicture, &pTemp->drawable, pWin); - if (!EnsurePicture(pBuffer->pTempPicture, &pTemp->drawable, pWin)) - return FALSE; CompositePicture (PictOpOver, pPriv->pPicture, NULL, @@ -832,38 +748,12 @@ miDCMoveCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor, else #endif { - if (!pBuffer->pPixSourceGC) - { - pBuffer->pPixSourceGC = CreateGC ((DrawablePtr)pTemp, - GCGraphicsExposures, &gcval, &status, (XID)0, serverClient); - if (!pBuffer->pPixSourceGC) - return FALSE; - } - if (!pBuffer->pPixMaskGC) - { - pBuffer->pPixMaskGC = CreateGC ((DrawablePtr)pTemp, - GCGraphicsExposures, &gcval, &status, (XID)0, serverClient); - if (!pBuffer->pPixMaskGC) - return FALSE; - } miDCPutBits ((DrawablePtr)pTemp, pPriv, pBuffer->pPixSourceGC, pBuffer->pPixMaskGC, dx, dy, pCursor->bits->width, pCursor->bits->height, source, mask); } - /* see comment in miDCPutUpCursor */ - if (pBuffer->pRestoreGC && pBuffer->pRestoreGC->pScreen != pScreen) - { - tossGC(pBuffer->pRestoreGC); - pBuffer->pRestoreGC = NULL; - } - /* - * copy the temporary pixmap onto the screen - */ - - if (!EnsureGC(pBuffer->pRestoreGC, pWin)) - return FALSE; pGC = pBuffer->pRestoreGC; if (pWin->drawable.serialNumber != pGC->serialNumber) ValidateGC ((DrawablePtr) pWin, pGC); @@ -877,51 +767,108 @@ miDCMoveCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor, static Bool miDCDeviceInitialize(DeviceIntPtr pDev, ScreenPtr pScreen) { - miDCBufferPtr pBuffer; - - pBuffer = xalloc(sizeof(miDCBufferRec)); - dixSetPrivate(&pDev->devPrivates, miDCSpriteKey, pBuffer); - - pBuffer->pSourceGC = - pBuffer->pMaskGC = - pBuffer->pSaveGC = - pBuffer->pRestoreGC = - pBuffer->pMoveGC = - pBuffer->pPixSourceGC = - pBuffer->pPixMaskGC = NULL; + miDCBufferPtr pBuffer; + WindowPtr pWin; + XID gcval = FALSE; + int status; + int i; + + if (!DevHasCursor(pDev)) + return TRUE; + + for (i = 0; i < screenInfo.numScreens; i++) + { + pScreen = screenInfo.screens[i]; + + pBuffer = xalloc(sizeof(miDCBufferRec)); + if (!pBuffer) + goto failure; + + dixSetPrivate(&pDev->devPrivates, miDCSpriteKey + pScreen->myNum, pBuffer); + pWin = WindowTable[pScreen->myNum]; + + pBuffer->pSourceGC = miDCMakeGC(pWin); + if (!pBuffer->pSourceGC) + goto failure; + + pBuffer->pMaskGC = miDCMakeGC(pWin); + if (!pBuffer->pMaskGC) + goto failure; + + pBuffer->pSaveGC = miDCMakeGC(pWin); + if (!pBuffer->pSaveGC) + goto failure; + + pBuffer->pRestoreGC = miDCMakeGC(pWin); + if (!pBuffer->pRestoreGC) + goto failure; + + pBuffer->pMoveGC = CreateGC ((DrawablePtr)pWin, + GCGraphicsExposures, &gcval, &status, (XID)0, serverClient); + if (!pBuffer->pMoveGC) + goto failure; + + pBuffer->pPixSourceGC = CreateGC ((DrawablePtr)pWin, + GCGraphicsExposures, &gcval, &status, (XID)0, serverClient); + if (!pBuffer->pPixSourceGC) + goto failure; + + pBuffer->pPixMaskGC = CreateGC ((DrawablePtr)pWin, + GCGraphicsExposures, &gcval, &status, (XID)0, serverClient); + if (!pBuffer->pPixMaskGC) + goto failure; + #ifdef ARGB_CURSOR - pBuffer->pRootPicture = NULL; - pBuffer->pTempPicture = NULL; + miDCMakePicture(&pBuffer->pRootPicture, &pWin->drawable, pWin); + if (!pBuffer->pRootPicture) + goto failure; + + pBuffer->pTempPicture = NULL; #endif - pBuffer->pSave = pBuffer->pTemp = NULL; + + // these get (re)allocated lazily depending on the cursor size + pBuffer->pSave = pBuffer->pTemp = NULL; + } return TRUE; + +failure: + + miDCDeviceCleanup(pDev, pScreen); + + return FALSE; } static void miDCDeviceCleanup(DeviceIntPtr pDev, ScreenPtr pScreen) { miDCBufferPtr pBuffer; + int i; if (DevHasCursor(pDev)) { - pBuffer = MIDCBUFFER(pDev); - tossGC (pBuffer->pSourceGC); - tossGC (pBuffer->pMaskGC); - tossGC (pBuffer->pSaveGC); - tossGC (pBuffer->pRestoreGC); - tossGC (pBuffer->pMoveGC); - tossGC (pBuffer->pPixSourceGC); - tossGC (pBuffer->pPixMaskGC); - tossPix (pBuffer->pSave); - tossPix (pBuffer->pTemp); -#ifdef ARGB_CURSOR -#if 0 /* This has been free()d before */ - tossPict (pScreenPriv->pRootPicture); -#endif - tossPict (pBuffer->pTempPicture); -#endif - xfree(pBuffer); - dixSetPrivate(&pDev->devPrivates, miDCSpriteKey, NULL); + for (i = 0; i < screenInfo.numScreens; i++) + { + pScreen = screenInfo.screens[i]; + + pBuffer = MIDCBUFFER(pDev, pScreen); + + if (pBuffer) + { + if (pBuffer->pSourceGC) FreeGC(pBuffer->pSourceGC, (GContext) 0); + if (pBuffer->pMaskGC) FreeGC(pBuffer->pMaskGC, (GContext) 0); + if (pBuffer->pSaveGC) FreeGC(pBuffer->pSaveGC, (GContext) 0); + if (pBuffer->pRestoreGC) FreeGC(pBuffer->pRestoreGC, (GContext) 0); + if (pBuffer->pMoveGC) FreeGC(pBuffer->pMoveGC, (GContext) 0); + if (pBuffer->pPixSourceGC) FreeGC(pBuffer->pPixSourceGC, (GContext) 0); + if (pBuffer->pPixMaskGC) FreeGC(pBuffer->pPixMaskGC, (GContext) 0); + + if (pBuffer->pSave) (*pScreen->DestroyPixmap)(pBuffer->pSave); + if (pBuffer->pTemp) (*pScreen->DestroyPixmap)(pBuffer->pTemp); + + xfree(pBuffer); + dixSetPrivate(&pDev->devPrivates, miDCSpriteKey + pScreen->myNum, NULL); + } + } } } commit 2f5b5bc8f4c70dab99dd616064219de5c7fbf244 Author: Pierre-Loup A. Griffais <pgriff...@nvidia.com> Date: Wed Apr 21 18:11:05 2010 -0700 xf86: Don't crash when switching modes through RandR without owning the VT. While VT-switched, FB access is disabled and should remain so. Trying to switch modes in that state would re-enable it, potentially causing crashes if trying to access it before the driver has recovered from the mode switch. Signed-off-by: Pierre-Loup A. Griffais <pgriff...@nvidia.com> Reviewed-by: Adam Jackson <a...@redhat.com> Signed-off-by: Keith Packard <kei...@keithp.com> (cherry picked from commit 41bdb6c003cca3ef0ff88d9c7de318115bab1ba2) diff --git a/hw/xfree86/common/xf86RandR.c b/hw/xfree86/common/xf86RandR.c index 02dcc34..d4beb2c 100644 --- a/hw/xfree86/common/xf86RandR.c +++ b/hw/xfree86/common/xf86RandR.c @@ -163,7 +163,7 @@ xf86RandRSetMode (ScreenPtr pScreen, WindowPtr pRoot = WindowTable[pScreen->myNum]; Bool ret = TRUE; - if (pRoot) + if (pRoot && scrp->vtSema) (*scrp->EnableDisableFBAccess) (pScreen->myNum, FALSE); if (useVirtual) { @@ -229,7 +229,7 @@ xf86RandRSetMode (ScreenPtr pScreen, */ xf86SetViewport (pScreen, pScreen->width, pScreen->height); xf86SetViewport (pScreen, 0, 0); - if (pRoot) + if (pRoot && scrp->vtSema) (*scrp->EnableDisableFBAccess) (pScreen->myNum, TRUE); return ret; } commit 7317dc45bcf2cac0b8313a2703ae7b0bff2f1cd8 Author: Jeremy Huddleston <jerem...@apple.com> Date: Tue Apr 27 13:14:47 2010 -0700 XQuartz GLX: Change around includes for better compatability with different OS versions Signed-off-by: Jeremy Huddleston <jerem...@apple.com> (cherry picked from commit 0efd7b8d82a48793341e27d4c224986e0971687c) diff --git a/hw/xquartz/GL/indirect.c b/hw/xquartz/GL/indirect.c index 70558ed..ad9ebbd 100644 --- a/hw/xquartz/GL/indirect.c +++ b/hw/xquartz/GL/indirect.c @@ -42,6 +42,8 @@ #define GL_GLEXT_WUNDEF_SUPPORT #include <OpenGL/OpenGL.h> +#include <OpenGL/gl.h> +#include <OpenGL/glext.h> #include <OpenGL/CGLContext.h> /* These next few GL_EXT pre-processing blocks are to explicitly define diff --git a/hw/xquartz/GL/visualConfigs.c b/hw/xquartz/GL/visualConfigs.c index bef27f0..cecc902 100644 --- a/hw/xquartz/GL/visualConfigs.c +++ b/hw/xquartz/GL/visualConfigs.c @@ -35,9 +35,10 @@ #include "dri.h" #include <OpenGL/OpenGL.h> +#include <OpenGL/gl.h> +#include <OpenGL/glext.h> #include <OpenGL/CGLContext.h> -#include <GL/gl.h> #include <GL/glxproto.h> #include <windowstr.h> #include <resource.h> commit c0d92b4268094acde2cda548e96c7299dfd393dc Author: Jeremy Huddleston <jerem...@apple.com> Date: Wed Apr 21 08:38:53 2010 -0700 rootless: Add some sanity checking to miPaintWindow This avoids painting the root window when it isn't actually drawable. Signed-off-by: Jeremy Huddleston <jerem...@apple.com> (cherry picked from commit 7b506fdc840aebed6b5acb91437a2cb620b5bddc) diff --git a/mi/miexpose.c b/mi/miexpose.c index 1c9c3a4..f52b492 100644 --- a/mi/miexpose.c +++ b/mi/miexpose.c @@ -552,6 +552,9 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what) DrawablePtr drawable = &pWin->drawable; #ifdef ROOTLESS + if(!drawable || drawable->type == UNDRAWABLE_WINDOW) + return; + if(IsFramedWindow(pWin)) { RootlessStartDrawing(pWin); RootlessDamageRegion(pWin, prgn); commit 11698f7b86a67c1c79a0abbf162b47bc0917f2fb Author: Jeremy Huddleston <jerem...@apple.com> Date: Sun Apr 18 01:22:27 2010 -0700 rootless: Remove an unneeded comment Signed-off-by: Jeremy Huddleston <jerem...@apple.com> (cherry picked from commit 4d3789c9b3fbe6aad32fcacd964353b612640f27) diff --git a/miext/rootless/rootlessWindow.c b/miext/rootless/rootlessWindow.c index e78e2c8..55c7b96 100644 --- a/miext/rootless/rootlessWindow.c +++ b/miext/rootless/rootlessWindow.c @@ -1553,10 +1553,6 @@ RootlessDisableRoot (ScreenPtr pScreen) return; RootlessDestroyFrame (pRoot, winRec); - /* - * gstaplin: I fixed the usage of this DeleteProperty so that it would compile. - * QUESTION: Where is this xa_native_window_id set? - */ DeleteProperty (serverClient, pRoot, xa_native_window_id ()); } commit 523a036bfc8d801b2827633baa92fb588500a6e4 Author: Oliver McFadden <oliver.mcfad...@nokia.com> Date: Thu Apr 22 10:29:44 2010 +0300 x-list.c: null-returning function malloc() was called without checking Signed-off-by: Oliver McFadden <oliver.mcfad...@nokia.com> Reviewed-by: Jeremy Huddleston <jerem...@apple.com> (cherry picked from commit 048d15192af39ba5111882d18a957b6ff4e34cad) diff --git a/hw/xquartz/xpr/x-list.c b/hw/xquartz/xpr/x-list.c index 3596dd3..77c9309 100644 --- a/hw/xquartz/xpr/x-list.c +++ b/hw/xquartz/xpr/x-list.c @@ -97,6 +97,7 @@ X_PFX (list_prepend) (x_list *lst, void *data) int i; b = malloc (sizeof (x_list_block)); + assert(b != NULL); for (i = 0; i < NODES_PER_BLOCK - 1; i++) b->l[i].next = &(b->l[i+1]); commit adcff144cfd21a6381e7ff970711e6524fc4479e Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Wed Apr 21 15:51:20 2010 +1000 Xext: only update the sprite on pointer events. A call to miPointerUpdateSprite for the XTEST keyboard may result in a NULL pointer dereference in miDCPutUpCursor() when the save buffer is NULL. XTS test case: Xlib 11 KeymapNotify Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> (cherry picked from commit af170a4ab76d33254dd4e54a33bb410fa1624739) diff --git a/Xext/xtest.c b/Xext/xtest.c index 5af2b5c..bb52c10 100644 --- a/Xext/xtest.c +++ b/Xext/xtest.c @@ -184,6 +184,7 @@ ProcXTestFakeInput(ClientPtr client) int i; int base = 0; int flags = 0; + int need_ptr_update = 1; nev = (stuff->length << 2) - sizeof(xReq); if ((nev % sizeof(xEvent)) || !nev) @@ -387,6 +388,8 @@ ProcXTestFakeInput(ClientPtr client) client->errorValue = ev->u.u.detail; return BadValue; } + + need_ptr_update = 0; break; case MotionNotify: if (!dev->valuator) @@ -451,7 +454,8 @@ ProcXTestFakeInput(ClientPtr client) for (i = 0; i < nevents; i++) mieqProcessDeviceEvent(dev, (InternalEvent*)(xtest_evlist+i)->event, NULL); - miPointerUpdateSprite(dev); + if (need_ptr_update) + miPointerUpdateSprite(dev); return client->noClientException; } commit 5958ded6f839e61a3e27d38a912468f38b41ba33 Author: Dirk Wallenstein <hals...@t-online.de> Date: Sat Apr 17 21:36:23 2010 +0200 xkb: Fix omissions in geometry initialization #27679 _XkbCopyGeom did not copy all of the data from the source geometry. This resulted in failures when trying to obtain the keymap from a server where the default geometry has not been replaced by a custom configuration. Signed-off-by: Dirk Wallenstein <hals...@t-online.de> Reviewed-by: Daniel Stone <dan...@fooishbar.org> Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> (cherry picked from commit bac1c5f1be4588b2b1eb646ee98a5442e1b767d5) diff --git a/xkb/xkbUtils.c b/xkb/xkbUtils.c index e287997..6d0901a 100644 --- a/xkb/xkbUtils.c +++ b/xkb/xkbUtils.c @@ -1601,6 +1601,7 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst) else { dcolor->spec = xstrdup(scolor->spec); } + dcolor->pixel = scolor->pixel; } dst->geom->num_colors = dst->geom->sz_colors; @@ -1672,6 +1673,8 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst) memcpy(doutline->points, soutline->points, soutline->num_points * sizeof(XkbPointRec)); + + doutline->corner_radius = soutline->corner_radius; } doutline->num_points = soutline->num_points; @@ -1681,6 +1684,36 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst) dshape->num_outlines = sshape->num_outlines; dshape->sz_outlines = sshape->num_outlines; + dshape->name = sshape->name; + dshape->bounds = sshape->bounds; + + dshape->approx = NULL; + if (sshape->approx && sshape->num_outlines > 0) { + + const ptrdiff_t approx_idx = + sshape->approx - sshape->outlines; + + if (approx_idx < dshape->num_outlines) { + dshape->approx = dshape->outlines + approx_idx; + } else { + LogMessage(X_WARNING, "XKB: approx outline " + "index is out of range\n"); + } + } + + dshape->primary = NULL; + if (sshape->primary && sshape->num_outlines > 0) { + + const ptrdiff_t primary_idx = + sshape->primary - sshape->outlines; + + if (primary_idx < dshape->num_outlines) { + dshape->primary = dshape->outlines + primary_idx; + } else { + LogMessage(X_WARNING, "XKB: primary outline " + "index is out of range\n"); + } + } } dst->geom->num_shapes = src->geom->num_shapes; @@ -1784,6 +1817,10 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst) } drow->num_keys = srow->num_keys; drow->sz_keys = srow->num_keys; + drow->top = srow->top; + drow->left = srow->left; + drow->vertical = srow->vertical; + drow->bounds = srow->bounds; } if (ssection->num_doodads) { @@ -1802,6 +1839,7 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst) ddoodad = dsection->doodads; k < ssection->num_doodads; k++, sdoodad++, ddoodad++) { + memcpy(ddoodad , sdoodad, sizeof(XkbDoodadRec)); if (sdoodad->any.type == XkbTextDoodad) { if (sdoodad->text.text) ddoodad->text.text = @@ -1815,7 +1853,6 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst) ddoodad->logo.logo_name = xstrdup(sdoodad->logo.logo_name); } - ddoodad->any.type = sdoodad->any.type; } dsection->overlays = NULL; dsection->sz_overlays = 0; @@ -1880,7 +1917,7 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst) ddoodad = dst->geom->doodads; i < src->geom->num_doodads; i++, sdoodad++, ddoodad++) { - ddoodad->any.type = sdoodad->any.type; + memcpy(ddoodad , sdoodad, sizeof(XkbDoodadRec)); if (sdoodad->any.type == XkbTextDoodad) { if (sdoodad->text.text) ddoodad->text.text = xstrdup(sdoodad->text.text); commit c61bceee7a507f84770a4d7a0eced8faa2d48393 Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Thu Apr 29 09:48:37 2010 +1000 xfree86: a missing input driver is not an error. We call NIDR on all devices that make it through the config backend. Including some that have no driver assigned to them (/dev/input/mouse0 for example). Those ones then simply get ignored by NIDR, but this should not be noted as an error in the log file. X_INFO is sufficient, and it may just prevent some bugreports. Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> Acked-by: Julien Cristau <jcris...@debian.org> Reviewed-by: Dan Nicholson <dbn.li...@gmail.com> (cherry picked from commit 02e86221b851e5423a95782aa7e297ea051022ca) diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c index dba3370..a1a5527 100644 --- a/hw/xfree86/common/xf86Xinput.c +++ b/hw/xfree86/common/xf86Xinput.c @@ -825,7 +825,7 @@ NewInputDeviceRequest (InputOption *options, InputAttributes *attrs, } if (!idev->driver || !idev->identifier) { - xf86Msg(X_ERROR, "No input driver/identifier specified (ignoring)\n"); + xf86Msg(X_INFO, "No input driver/identifier specified (ignoring)\n"); rval = BadRequest; goto unwind; } commit 799dbb8bbab0db5c4ecb5ad8b68d1669d74abf74 Author: Rami Ylimäki <ext-rami.ylim...@nokia.com> Date: Tue Apr 27 14:04:47 2010 +0300 test: Fix linking of wrapped functions in XI2 tests. Running "make check" will lead to build problems in scratchbox. Building the first test that wraps dixLookupWindow fails because symbol __real_dixLookupWindow can't be resolved. Defining wrapping options as linker options instead of compiler options makes everything build nicely in scratchbox. Signed-off-by: Rami Ylimäki <ext-rami.ylim...@nokia.com> Reviewed-by: Peter Hutterer <peter.hutte...@who-t.net> Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> (cherry picked from commit 262c2c9031ea60cbe738ed80ddb7faa1b888d137) diff --git a/test/xi2/Makefile.am b/test/xi2/Makefile.am index 0e2de6b..d8dc7e9 100644 --- a/test/xi2/Makefile.am +++ b/test/xi2/Makefile.am @@ -31,14 +31,14 @@ protocol_xiquerypointer_LDADD=$(TEST_LDADD) protocol_xiwarppointer_LDADD=$(TEST_LDADD) protocol_eventconvert_LDADD=$(TEST_LDADD) -protocol_xiqueryversion_CFLAGS=$(AM_CFLAGS) -Wl,-wrap,WriteToClient -protocol_xiquerydevice_CFLAGS=$(AM_CFLAGS) -Wl,-wrap,WriteToClient -protocol_xiselectevents_CFLAGS=$(AM_CFLAGS) -Wl,-wrap,dixLookupWindow -Wl,-wrap,XISetEventMask -protocol_xigetselectedevents_CFLAGS=$(AM_CFLAGS) -Wl,-wrap,WriteToClient -Wl,-wrap,dixLookupWindow -Wl,-wrap,AddResource -protocol_xisetclientpointer_CFLAGS=$(AM_CFLAGS) -Wl,-wrap,dixLookupClient -protocol_xigetclientpointer_CFLAGS=$(AM_CFLAGS) -Wl,-wrap,WriteToClient -Wl,-wrap,dixLookupClient -protocol_xiquerypointer_CFLAGS=$(AM_CFLAGS) -Wl,-wrap,WriteToClient -Wl,-wrap,dixLookupWindow -protocol_xiwarppointer_CFLAGS=$(AM_CFLAGS) -Wl,-wrap,WriteToClient -Wl,-wrap,dixLookupWindow +protocol_xiqueryversion_LDFLAGS=$(AM_LDFLAGS) -Wl,-wrap,WriteToClient +protocol_xiquerydevice_LDFLAGS=$(AM_LDFLAGS) -Wl,-wrap,WriteToClient +protocol_xiselectevents_LDFLAGS=$(AM_LDFLAGS) -Wl,-wrap,dixLookupWindow -Wl,-wrap,XISetEventMask +protocol_xigetselectedevents_LDFLAGS=$(AM_LDFLAGS) -Wl,-wrap,WriteToClient -Wl,-wrap,dixLookupWindow -Wl,-wrap,AddResource +protocol_xisetclientpointer_LDFLAGS=$(AM_LDFLAGS) -Wl,-wrap,dixLookupClient +protocol_xigetclientpointer_LDFLAGS=$(AM_LDFLAGS) -Wl,-wrap,WriteToClient -Wl,-wrap,dixLookupClient +protocol_xiquerypointer_LDFLAGS=$(AM_LDFLAGS) -Wl,-wrap,WriteToClient -Wl,-wrap,dixLookupWindow +protocol_xiwarppointer_LDFLAGS=$(AM_LDFLAGS) -Wl,-wrap,WriteToClient -Wl,-wrap,dixLookupWindow protocol_xiqueryversion_SOURCES=$(COMMON_SOURCES) protocol-xiqueryversion.c protocol_xiquerydevice_SOURCES=$(COMMON_SOURCES) protocol-xiquerydevice.c commit 6fbb51466ca2345e185f68e5eb990e087f4c8239 Author: Yaakov Selkowitz <yselkow...@users.sourceforge.net> Date: Mon Apr 26 11:39:19 2010 -0500 Clarify help strings for disabled features in configure Features which are disabled by default use the --enable-* syntax to show how they need to be passed to override the default. Signed-off-by: Yaakov Selkowitz <yselkow...@users.sourceforge.net> Reviewed-by: Mikhail Gusarov <dotted...@dottedmag.net> Reviewed-by: Dan Nicholson <dbn.li...@gmail.com> Reviewed-by: Gaetan Nadon <mems...@videotron.ca> (cherry picked from commit d073e51beeed2e702fa5c7534b1345360bc302f2) diff --git a/configure.ac b/configure.ac index d593452..0b6a965 100644 --- a/configure.ac +++ b/configure.ac @@ -628,13 +628,13 @@ AC_ARG_ENABLE(dri2, AS_HELP_STRING([--enable-dri2], [Build DRI2 extens AC_ARG_ENABLE(xinerama, AS_HELP_STRING([--disable-xinerama], [Build Xinerama extension (default: enabled)]), [XINERAMA=$enableval], [XINERAMA=yes]) AC_ARG_ENABLE(xf86vidmode, AS_HELP_STRING([--disable-xf86vidmode], [Build XF86VidMode extension (default: auto)]), [XF86VIDMODE=$enableval], [XF86VIDMODE=auto]) AC_ARG_ENABLE(xace, AS_HELP_STRING([--disable-xace], [Build X-ACE extension (default: enabled)]), [XACE=$enableval], [XACE=yes]) -AC_ARG_ENABLE(xselinux, AS_HELP_STRING([--disable-xselinux], [Build SELinux extension (default: disabled)]), [XSELINUX=$enableval], [XSELINUX=no]) -AC_ARG_ENABLE(xcsecurity, AS_HELP_STRING([--disable-xcsecurity], [Build Security extension (default: disabled)]), [XCSECURITY=$enableval], [XCSECURITY=no]) +AC_ARG_ENABLE(xselinux, AS_HELP_STRING([--enable-xselinux], [Build SELinux extension (default: disabled)]), [XSELINUX=$enableval], [XSELINUX=no]) +AC_ARG_ENABLE(xcsecurity, AS_HELP_STRING([--enable-xcsecurity], [Build Security extension (default: disabled)]), [XCSECURITY=$enableval], [XCSECURITY=no]) AC_ARG_ENABLE(xcalibrate, AS_HELP_STRING([--enable-xcalibrate], [Build XCalibrate extension (default: disabled)]), [XCALIBRATE=$enableval], [XCALIBRATE=no]) AC_ARG_ENABLE(tslib, AS_HELP_STRING([--enable-tslib], [Build kdrive tslib touchscreen support (default: disabled)]), [TSLIB=$enableval], [TSLIB=no]) AC_ARG_ENABLE(multibuffer, AS_HELP_STRING([--enable-multibuffer], [Build Multibuffer extension (default: disabled)]), [MULTIBUFFER=$enableval], [MULTIBUFFER=no]) AC_ARG_ENABLE(dbe, AS_HELP_STRING([--disable-dbe], [Build DBE extension (default: enabled)]), [DBE=$enableval], [DBE=yes]) -AC_ARG_ENABLE(xf86bigfont, AS_HELP_STRING([--disable-xf86bigfont], [Build XF86 Big Font extension (default: disabled)]), [XF86BIGFONT=$enableval], [XF86BIGFONT=no]) +AC_ARG_ENABLE(xf86bigfont, AS_HELP_STRING([--enable-xf86bigfont], [Build XF86 Big Font extension (default: disabled)]), [XF86BIGFONT=$enableval], [XF86BIGFONT=no]) AC_ARG_ENABLE(dpms, AS_HELP_STRING([--disable-dpms], [Build DPMS extension (default: enabled)]), [DPMSExtension=$enableval], [DPMSExtension=yes]) AC_ARG_ENABLE(config-udev, AS_HELP_STRING([--enable-config-udev], [Build udev support (default: auto)]), [CONFIG_UDEV=$enableval], [CONFIG_UDEV=auto]) AC_ARG_ENABLE(config-dbus, AS_HELP_STRING([--enable-config-dbus], [Build D-BUS API support (default: no)]), [CONFIG_DBUS_API=$enableval], [CONFIG_DBUS_API=no]) commit ecab2625860463c53dd15cb2f1b3beaf31d2e2ea Author: Yaakov Selkowitz <yselkow...@users.sourceforge.net> Date: Wed Apr 14 13:18:28 2010 -0500 Catch when requested SHA1 implementation is missing The other SHA1 implementation detections already error out if specifically requested but were not found. Signed-off-by: Yaakov Selkowitz <yselkow...@users.sourceforge.net> Reviewed-by: Julien Cristau <jcris...@debian.org> (cherry picked from commit 57409af1267f48457f93134922f2450518182e09) diff --git a/configure.ac b/configure.ac index b6b7e2c..d593452 100644 --- a/configure.ac +++ b/configure.ac @@ -1393,6 +1393,9 @@ AC_CHECK_LIB([sha1], [sha1_begin], [HAVE_LIBSHA1=yes]) if test "x$with_sha1" = x && test "x$HAVE_LIBSHA1" = xyes; then with_sha1=libsha1 fi +if test "x$with_sha1" = xlibsha1 && test "x$HAVE_LIBSHA1" != xyes; then + AC_MSG_ERROR([libsha1 requested but not found]) -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1oced4-0004ma...@alioth.debian.org