summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2009-06-03 16:11:33 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2009-06-03 16:11:33 +1000
commit6de67d3206f0a4e307070714564c19efc84da2ec (patch)
treeac95c56d8396c52e2ae10c05c5d9649f66c2148a
parentaf4e658401ecbd2f2cc515b4c5abe5aee361cd64 (diff)
parent7f027d9dc0146e229802aeac342ea2dbab63264a (diff)
Merge branch 'master' into xi2
-rw-r--r--configure.ac4
-rw-r--r--doc/Xserver.man.pre3
-rw-r--r--glx/glxcmds.c23
-rw-r--r--glx/glxcmdsswap.c1
-rw-r--r--glx/glxscreens.c2
-rw-r--r--glx/glxserver.h3
-rw-r--r--hw/dmx/glxProxy/glxcmds.c1
-rw-r--r--hw/dmx/glxProxy/glxcmdsswap.c1
-rw-r--r--hw/dmx/glxProxy/glxutil.c1
-rw-r--r--hw/kdrive/linux/mouse.c6
-rw-r--r--hw/kdrive/src/kdrive.h1
-rw-r--r--hw/kdrive/src/kinput.c3
-rw-r--r--hw/vfb/InitOutput.c30
-rw-r--r--hw/xfree86/common/xf86.h7
-rw-r--r--hw/xfree86/common/xf86Helper.c33
-rw-r--r--hw/xfree86/common/xf86Module.h4
-rw-r--r--hw/xfree86/common/xf86str.h15
-rw-r--r--hw/xfree86/loader/loader.c21
-rw-r--r--hw/xfree86/modes/xf86Crtc.c2
-rw-r--r--hw/xquartz/bundle/Resources/English.lproj/main.nib/designable.nib12
-rw-r--r--hw/xquartz/bundle/Resources/English.lproj/main.nib/keyedobjects.nibbin41769 -> 41697 bytes
-rw-r--r--mi/miexpose.c27
-rw-r--r--miext/rootless/rootlessScreen.c3
23 files changed, 62 insertions, 141 deletions
diff --git a/configure.ac b/configure.ac
index 308687c83..fc29bf016 100644
--- a/configure.ac
+++ b/configure.ac
@@ -589,7 +589,7 @@ AC_ARG_ENABLE(dmx, AS_HELP_STRING([--enable-dmx], [Build DMX server (d
AC_ARG_ENABLE(xvfb, AS_HELP_STRING([--enable-xvfb], [Build Xvfb server (default: yes)]), [XVFB=$enableval], [XVFB=yes])
AC_ARG_ENABLE(xnest, AS_HELP_STRING([--enable-xnest], [Build Xnest server (default: no)]), [XNEST=$enableval], [XNEST=no])
AC_ARG_ENABLE(xquartz, AS_HELP_STRING([--enable-xquartz], [Build Xquartz server for OS-X (default: auto)]), [XQUARTZ=$enableval], [XQUARTZ=auto])
-AC_ARG_ENABLE(standalone-xpbproxy, AS_HELP_STRING([--enable-standalone-xpbproxy], [Build a standalone xpbproxy (in addigion to the one integrated into Xquartz as a separate thread) (default: no)]), [STANDALONE_XPBPROXY=$enableval], [STANDALONE_XPBPROXY=no])
+AC_ARG_ENABLE(standalone-xpbproxy, AS_HELP_STRING([--enable-standalone-xpbproxy], [Build a standalone xpbproxy (in addition to the one integrated into Xquartz as a separate thread) (default: no)]), [STANDALONE_XPBPROXY=$enableval], [STANDALONE_XPBPROXY=no])
AC_ARG_ENABLE(xwin, AS_HELP_STRING([--enable-xwin], [Build XWin server (default: auto)]), [XWIN=$enableval], [XWIN=auto])
dnl kdrive and its subsystems
AC_ARG_ENABLE(kdrive, AS_HELP_STRING([--enable-kdrive], [Build kdrive servers (default: no)]), [KDRIVE=$enableval], [KDRIVE=no])
@@ -1666,7 +1666,7 @@ if test "x$XQUARTZ" = xyes; then
AC_CHECK_LIB([Xplugin],[xp_init],[:])
- CFLAGS="${CFLAGS} -DROOTLESS_WORKAROUND -DNO_ALLOCA"
+ CFLAGS="${CFLAGS} -DROOTLESS_WORKAROUND -DROOTLESS_SAFEALPHA -DNO_ALLOCA"
PKG_CHECK_MODULES(XPBPROXY, [applewmproto >= 1.2] [applewm >= 1.2] xfixes fixesproto x11)
diff --git a/doc/Xserver.man.pre b/doc/Xserver.man.pre
index e2673f7be..12b4cd486 100644
--- a/doc/Xserver.man.pre
+++ b/doc/Xserver.man.pre
@@ -560,9 +560,6 @@ Outline font directories
.I /tmp/.X11-unix/X\fBn\fP
Unix domain socket for display number \fBn\fP
.TP 30
-.IR /tmp/rcX\fBn\fP
-Kerberos 5 replay cache for display number \fBn\fP
-.TP 30
.I /usr/adm/X\fBn\fPmsgs
Error log file for display number \fBn\fP if run from \fIinit\fP(__adminmansuffix__)
.TP 30
diff --git a/glx/glxcmds.c b/glx/glxcmds.c
index 1ae31515d..d4ff7daf3 100644
--- a/glx/glxcmds.c
+++ b/glx/glxcmds.c
@@ -28,7 +28,6 @@
* Silicon Graphics, Inc.
*/
-#define FONT_PCF
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
#endif
@@ -877,6 +876,14 @@ int __glXDisp_CopyContext(__GLXclientState *cl, GLbyte *pc)
return Success;
}
+enum {
+ GLX_VIS_CONFIG_UNPAIRED = 18,
+ GLX_VIS_CONFIG_PAIRED = 20
+};
+
+enum {
+ GLX_VIS_CONFIG_TOTAL = GLX_VIS_CONFIG_UNPAIRED + GLX_VIS_CONFIG_PAIRED
+};
int __glXDisp_GetVisualConfigs(__GLXclientState *cl, GLbyte *pc)
{
@@ -885,7 +892,7 @@ int __glXDisp_GetVisualConfigs(__GLXclientState *cl, GLbyte *pc)
xGLXGetVisualConfigsReply reply;
__GLXscreen *pGlxScreen;
__GLXconfig *modes;
- CARD32 buf[__GLX_TOTAL_CONFIG];
+ CARD32 buf[GLX_VIS_CONFIG_TOTAL];
int p, i, err;
__GLX_DECLARE_SWAP_VARIABLES;
__GLX_DECLARE_SWAP_ARRAY_VARIABLES;
@@ -894,8 +901,8 @@ int __glXDisp_GetVisualConfigs(__GLXclientState *cl, GLbyte *pc)
return err;
reply.numVisuals = pGlxScreen->numVisuals;
- reply.numProps = __GLX_TOTAL_CONFIG;
- reply.length = (reply.numVisuals * __GLX_SIZE_CARD32 * __GLX_TOTAL_CONFIG) >> 2;
+ reply.numProps = GLX_VIS_CONFIG_TOTAL;
+ reply.length = (reply.numVisuals * __GLX_SIZE_CARD32 * GLX_VIS_CONFIG_TOTAL) >> 2;
reply.type = X_Reply;
reply.sequenceNumber = client->sequence;
@@ -933,6 +940,8 @@ int __glXDisp_GetVisualConfigs(__GLXclientState *cl, GLbyte *pc)
buf[p++] = modes->stencilBits;
buf[p++] = modes->numAuxBuffers;
buf[p++] = modes->level;
+
+ assert(p == GLX_VIS_CONFIG_UNPAIRED);
/*
** Add token/value pairs for extensions.
*/
@@ -957,11 +966,11 @@ int __glXDisp_GetVisualConfigs(__GLXclientState *cl, GLbyte *pc)
buf[p++] = 0; /* copy over visualSelectGroup (GLX_VISUAL_SELECT_GROUP_SGIX)? */
buf[p++] = 0;
+ assert(p == GLX_VIS_CONFIG_TOTAL);
if (client->swapped) {
- __GLX_SWAP_INT_ARRAY(buf, __GLX_TOTAL_CONFIG);
+ __GLX_SWAP_INT_ARRAY(buf, p);
}
- WriteToClient(client, __GLX_SIZE_CARD32 * __GLX_TOTAL_CONFIG,
- (char *)buf);
+ WriteToClient(client, __GLX_SIZE_CARD32 * p, (char *)buf);
}
return Success;
}
diff --git a/glx/glxcmdsswap.c b/glx/glxcmdsswap.c
index 4132b76bf..f1c0ce69f 100644
--- a/glx/glxcmdsswap.c
+++ b/glx/glxcmdsswap.c
@@ -28,7 +28,6 @@
* Silicon Graphics, Inc.
*/
-#define FONT_PCF
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
#endif
diff --git a/glx/glxscreens.c b/glx/glxscreens.c
index 2b12049fb..3fff26866 100644
--- a/glx/glxscreens.c
+++ b/glx/glxscreens.c
@@ -225,7 +225,7 @@ glxGetScreen(ScreenPtr pScreen)
}
_X_EXPORT void GlxSetVisualConfigs(int nconfigs,
- __GLXvisualConfig *configs, void **privates)
+ void *configs, void **privates)
{
/* We keep this stub around for the DDX drivers that still
* call it. */
diff --git a/glx/glxserver.h b/glx/glxserver.h
index a5ca0a20b..3e44b71fb 100644
--- a/glx/glxserver.h
+++ b/glx/glxserver.h
@@ -55,7 +55,6 @@
#define GL_GLEXT_PROTOTYPES /* we want prototypes */
#include <GL/gl.h>
#include <GL/glxproto.h>
-#include <GL/glxint.h>
/* For glxscreens.h */
typedef struct __GLXdrawable __GLXdrawable;
@@ -93,7 +92,7 @@ extern __GLXclientState *glxGetClient(ClientPtr pClient);
void GlxExtensionInit(void);
void GlxSetVisualConfigs(int nconfigs,
- __GLXvisualConfig *configs, void **privates);
+ void *configs, void **privates);
struct _glapi_table;
void GlxSetRenderTables (struct _glapi_table *table);
diff --git a/hw/dmx/glxProxy/glxcmds.c b/hw/dmx/glxProxy/glxcmds.c
index f19239f31..31fd431e7 100644
--- a/hw/dmx/glxProxy/glxcmds.c
+++ b/hw/dmx/glxProxy/glxcmds.c
@@ -43,7 +43,6 @@
#undef Xrealloc
#undef Xfree
-#define FONT_PCF
#include "glxserver.h"
#include <GL/glxtokens.h>
#include "g_disptab.h"
diff --git a/hw/dmx/glxProxy/glxcmdsswap.c b/hw/dmx/glxProxy/glxcmdsswap.c
index 702479f55..b3720f6f6 100644
--- a/hw/dmx/glxProxy/glxcmdsswap.c
+++ b/hw/dmx/glxProxy/glxcmdsswap.c
@@ -28,7 +28,6 @@
* Silicon Graphics, Inc.
*/
-#define FONT_PCF
#include "glxserver.h"
#include "glxutil.h"
#include <GL/glxtokens.h>
diff --git a/hw/dmx/glxProxy/glxutil.c b/hw/dmx/glxProxy/glxutil.c
index 70f8b74bb..d0ce50486 100644
--- a/hw/dmx/glxProxy/glxutil.c
+++ b/hw/dmx/glxProxy/glxutil.c
@@ -28,7 +28,6 @@
* Silicon Graphics, Inc.
*/
-#define FONT_PCF
#include "glxserver.h"
#include <GL/glxtokens.h>
#include <pixmapstr.h>
diff --git a/hw/kdrive/linux/mouse.c b/hw/kdrive/linux/mouse.c
index 02214b33e..6f399b586 100644
--- a/hw/kdrive/linux/mouse.c
+++ b/hw/kdrive/linux/mouse.c
@@ -961,7 +961,11 @@ MouseInit (KdPointerInfo *pi)
km = (Kmouse *) xalloc (sizeof (Kmouse));
if (km) {
km->iob.avail = km->iob.used = 0;
- MouseFirstProtocol(km, "exps/2");
+ MouseFirstProtocol(km, pi->protocol ? pi->protocol : "exps/2");
+ /* MouseFirstProtocol sets state to MouseBroken for later protocol
+ * checks. Skip these checks if a protocol was supplied */
+ if (pi->protocol)
+ km->state = MouseWorking;
km->i_prot = 0;
km->tty = isatty (fd);
km->iob.fd = -1;
diff --git a/hw/kdrive/src/kdrive.h b/hw/kdrive/src/kdrive.h
index c60559a89..ce47cf4fa 100644
--- a/hw/kdrive/src/kdrive.h
+++ b/hw/kdrive/src/kdrive.h
@@ -220,6 +220,7 @@ struct _KdPointerInfo {
DeviceIntPtr dixdev;
char *name;
char *path;
+ char *protocol;
InputOption *options;
int inputClass;
diff --git a/hw/kdrive/src/kinput.c b/hw/kdrive/src/kinput.c
index 0d216a9b8..360739cac 100644
--- a/hw/kdrive/src/kinput.c
+++ b/hw/kdrive/src/kinput.c
@@ -1166,6 +1166,8 @@ KdParsePointerOptions (KdPointerInfo *pi)
pi->transformCoordinates = FALSE;
else if (!strcasecmp (option->key, "device"))
pi->path = strdup(option->value);
+ else if (!strcasecmp (option->key, "protocol"))
+ pi->protocol = strdup(option->value);
else
ErrorF("Pointer option key (%s) of value (%s) not assigned!\n",
option->key, option->value);
@@ -1186,6 +1188,7 @@ KdParsePointer (char *arg)
return NULL;
pi->emulateMiddleButton = kdEmulateMiddleButton;
pi->transformCoordinates = !kdRawPointerCoordinates;
+ pi->protocol = NULL;
pi->nButtons = 5; /* XXX should not be hardcoded */
pi->inputClass = KD_MOUSE;
diff --git a/hw/vfb/InitOutput.c b/hw/vfb/InitOutput.c
index 8ab8bae64..b4b845593 100644
--- a/hw/vfb/InitOutput.c
+++ b/hw/vfb/InitOutput.c
@@ -863,8 +863,6 @@ vfbScreenInit(int index, ScreenPtr pScreen, int argc, char **argv)
pbits = vfbAllocateFramebufferMemory(pvfb);
if (!pbits) return FALSE;
- miSetPixmapDepths ();
-
switch (pvfb->depth) {
case 8:
miSetVisualTypesAndMasks (8,
@@ -876,20 +874,6 @@ vfbScreenInit(int index, ScreenPtr pScreen, int argc, char **argv)
(1 << DirectColor)),
8, PseudoColor, 0, 0, 0);
break;
-#if 0
- /* 12bit PseudoColor with 12bit color resolution
- * (to simulate SGI hardware and the 12bit PseudoColor emulation layer) */
- case 12:
- miSetVisualTypesAndMasks (12,
- ((1 << StaticGray) |
- (1 << GrayScale) |
- (1 << StaticColor) |
- (1 << PseudoColor) |
- (1 << TrueColor) |
- (1 << DirectColor)),
- 12, PseudoColor, 0, 0, 0);
- break;
-#endif
case 15:
miSetVisualTypesAndMasks (15,
((1 << TrueColor) |
@@ -908,18 +892,10 @@ vfbScreenInit(int index, ScreenPtr pScreen, int argc, char **argv)
(1 << DirectColor)),
8, TrueColor, 0xff0000, 0x00ff00, 0x0000ff);
break;
-#if 0
- /* 30bit TrueColor (to simulate Sun's XVR-1000/-4000 high quality
- * framebuffer series) */
- case 30:
- miSetVisualTypesAndMasks (30,
- ((1 << TrueColor) |
- (1 << DirectColor)),
- 10, TrueColor, 0x3ff00000, 0x000ffc00, 0x000003ff);
- break;
-#endif
}
-
+
+ miSetPixmapDepths ();
+
ret = fbScreenInit(pScreen, pbits, pvfb->width, pvfb->height,
dpix, dpiy, pvfb->paddedWidth,pvfb->bitsPerPixel);
#ifdef RENDER
diff --git a/hw/xfree86/common/xf86.h b/hw/xfree86/common/xf86.h
index 0c0320fda..e49f28db0 100644
--- a/hw/xfree86/common/xf86.h
+++ b/hw/xfree86/common/xf86.h
@@ -277,10 +277,6 @@ extern _X_EXPORT pointer xf86LoadSubModule(ScrnInfoPtr pScrn, const char *name);
extern _X_EXPORT pointer xf86LoadOneModule(char *name, pointer optlist);
extern _X_EXPORT void xf86UnloadSubModule(pointer mod);
extern _X_EXPORT Bool xf86LoaderCheckSymbol(const char *name);
-extern _X_EXPORT void xf86LoaderReqSymLists(const char **, ...);
-extern _X_EXPORT void xf86LoaderReqSymbols(const char *, ...);
-extern _X_EXPORT void xf86LoaderRefSymLists(const char **, ...);
-extern _X_EXPORT void xf86LoaderRefSymbols(const char *, ...);
extern _X_EXPORT void xf86SetBackingStore(ScreenPtr pScreen);
extern _X_EXPORT void xf86SetSilkenMouse(ScreenPtr pScreen);
extern _X_EXPORT pointer xf86FindXvOptions(int scrnIndex, int adapt_index, char *port_name,
@@ -315,9 +311,6 @@ extern _X_EXPORT int xf86RegisterRootWindowProperty(int ScrnIndex, Atom propert
pointer value);
extern _X_EXPORT Bool xf86IsUnblank(int mode);
-extern _X_EXPORT _X_DEPRECATED void xf86AddModuleInfo(pointer info, pointer module);
-extern _X_EXPORT _X_DEPRECATED void xf86DeleteModuleInfo(int idx);
-
/* xf86Init.c */
extern _X_EXPORT PixmapFormatPtr xf86GetPixFormat(ScrnInfoPtr pScrn, int depth);
diff --git a/hw/xfree86/common/xf86Helper.c b/hw/xfree86/common/xf86Helper.c
index 441efb098..eac819b9c 100644
--- a/hw/xfree86/common/xf86Helper.c
+++ b/hw/xfree86/common/xf86Helper.c
@@ -169,17 +169,6 @@ xf86LookupInput(const char *name)
return NULL;
}
-/* ABI stubs of despair */
-void
-xf86AddModuleInfo(pointer info, pointer module)
-{
-}
-
-void
-xf86DeleteModuleInfo(int idx)
-{
-}
-
/* Allocate a new ScrnInfoRec in xf86Screens */
ScrnInfoPtr
@@ -2301,28 +2290,6 @@ xf86LoaderCheckSymbol(const char *name)
return LoaderSymbol(name) != NULL;
}
-/* These two are just ABI stubs, they don't do anything in dlloader world */
-void
-xf86LoaderReqSymLists(const char **list0, ...)
-{
-}
-
-void
-xf86LoaderReqSymbols(const char *sym0, ...)
-{
-}
-
-void
-xf86LoaderRefSymLists(const char **list0, ...)
-{
-}
-
-void
-xf86LoaderRefSymbols(const char *sym0, ...)
-{
-}
-
-
typedef enum {
OPTION_BACKING_STORE
} BSOpts;
diff --git a/hw/xfree86/common/xf86Module.h b/hw/xfree86/common/xf86Module.h
index 993e29791..5d36cecff 100644
--- a/hw/xfree86/common/xf86Module.h
+++ b/hw/xfree86/common/xf86Module.h
@@ -194,10 +194,6 @@ extern _X_EXPORT char **LoaderListDirs(const char **, const char **);
extern _X_EXPORT void LoaderFreeDirList(char **);
extern _X_EXPORT void LoaderErrorMsg(const char *, const char *, int, int);
extern _X_EXPORT void LoadExtension(ExtensionModule *, Bool);
-extern _X_EXPORT void LoaderRefSymLists(const char **, ...);
-extern _X_EXPORT void LoaderRefSymbols(const char *, ...);
-extern _X_EXPORT void LoaderReqSymLists(const char **, ...);
-extern _X_EXPORT void LoaderReqSymbols(const char *, ...);
extern _X_EXPORT int LoaderCheckUnresolved(int);
extern _X_EXPORT void LoaderGetOS(const char **name, int *major, int *minor, int *teeny);
extern _X_EXPORT Bool LoaderShouldIgnoreABI(void);
diff --git a/hw/xfree86/common/xf86str.h b/hw/xfree86/common/xf86str.h
index 904c369a6..3b1346f05 100644
--- a/hw/xfree86/common/xf86str.h
+++ b/hw/xfree86/common/xf86str.h
@@ -342,21 +342,6 @@ typedef struct _DriverRec {
*/
#define HaveDriverFuncs 1
-
-/*
- * The optional module list struct. This allows modules exporting helping
- * functions to configuration tools, the Xserver, or any other
- * application/module interested in such information.
- */
-_X_DEPRECATED typedef struct _ModuleInfoRec {
- int moduleVersion;
- char * moduleName;
- pointer module;
- int refCount;
- const OptionInfoRec * (*AvailableOptions)(void *unused);
- pointer unused[8]; /* leave some space for more fields */
-} ModuleInfoRec, *ModuleInfoPtr;
-
/*
* These are the private bus types. New types can be added here. Types
* required for the public interface should be added to xf86str.h, with
diff --git a/hw/xfree86/loader/loader.c b/hw/xfree86/loader/loader.c
index 1803d0eb1..47c8c2e7f 100644
--- a/hw/xfree86/loader/loader.c
+++ b/hw/xfree86/loader/loader.c
@@ -159,27 +159,6 @@ LoaderInit(void)
#endif
}
-/* These four are just ABI stubs */
-void
-LoaderRefSymbols(const char *sym0, ...)
-{
-}
-
-void
-LoaderRefSymLists(const char **list0, ...)
-{
-}
-
-void
-LoaderReqSymLists(const char **list0, ...)
-{
-}
-
-void
-LoaderReqSymbols(const char *sym0, ...)
-{
-}
-
/* Public Interface to the loader. */
int
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
index 353b26874..0ab2f3df9 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -353,7 +353,7 @@ xf86CrtcSetModeTransform (xf86CrtcPtr crtc, DisplayModePtr mode, Rotation rotati
}
/* Only upload when needed, to avoid unneeded delays. */
- if (crtc->active)
+ if (!crtc->active)
crtc->funcs->gamma_set(crtc, crtc->gamma_red, crtc->gamma_green,
crtc->gamma_blue, crtc->gamma_size);
diff --git a/hw/xquartz/bundle/Resources/English.lproj/main.nib/designable.nib b/hw/xquartz/bundle/Resources/English.lproj/main.nib/designable.nib
index d27162539..38b00183c 100644
--- a/hw/xquartz/bundle/Resources/English.lproj/main.nib/designable.nib
+++ b/hw/xquartz/bundle/Resources/English.lproj/main.nib/designable.nib
@@ -2,9 +2,9 @@
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.03">
<data>
<int key="IBDocument.SystemTarget">1050</int>
- <string key="IBDocument.SystemVersion">9G55</string>
+ <string key="IBDocument.SystemVersion">9J61</string>
<string key="IBDocument.InterfaceBuilderVersion">677</string>
- <string key="IBDocument.AppKitVersion">949.43</string>
+ <string key="IBDocument.AppKitVersion">949.46</string>
<string key="IBDocument.HIToolboxVersion">353.00</string>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
@@ -857,7 +857,7 @@ Lg</string>
<object class="NSButtonCell" key="NSCell" id="501304422">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">0</int>
- <string key="NSContents">Update CLIPBOARD when Pasteboard changes.</string>
+ <string key="NSContents">Update CLIPBOARD when Pasteboard changes</string>
<reference key="NSSupport" ref="463863101"/>
<reference key="NSControlView" ref="477050998"/>
<int key="NSButtonFlags">1211912703</int>
@@ -878,7 +878,7 @@ Lg</string>
<object class="NSButtonCell" key="NSCell" id="510771323">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">0</int>
- <string key="NSContents">Update PRIMARY (middle-click) when Pasteboard changes.</string>
+ <string key="NSContents">Update PRIMARY (middle-click) when Pasteboard changes</string>
<reference key="NSSupport" ref="463863101"/>
<reference key="NSControlView" ref="765780304"/>
<int key="NSButtonFlags">1211912703</int>
@@ -899,7 +899,7 @@ Lg</string>
<object class="NSButtonCell" key="NSCell" id="897099877">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">0</int>
- <string key="NSContents">Update Pasteboard immediately when new text is selected.</string>
+ <string key="NSContents">Update Pasteboard immediately when new text is selected</string>
<reference key="NSSupport" ref="463863101"/>
<reference key="NSControlView" ref="1002778833"/>
<int key="NSButtonFlags">1211912703</int>
@@ -920,7 +920,7 @@ Lg</string>
<object class="NSButtonCell" key="NSCell" id="619977658">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">0</int>
- <string key="NSContents">Update Pasteboard when CLIPBOARD changes.</string>
+ <string key="NSContents">Update Pasteboard when CLIPBOARD changes</string>
<reference key="NSSupport" ref="463863101"/>
<reference key="NSControlView" ref="487809555"/>
<int key="NSButtonFlags">1211912703</int>
diff --git a/hw/xquartz/bundle/Resources/English.lproj/main.nib/keyedobjects.nib b/hw/xquartz/bundle/Resources/English.lproj/main.nib/keyedobjects.nib
index ee6cdf25e..516508961 100644
--- a/hw/xquartz/bundle/Resources/English.lproj/main.nib/keyedobjects.nib
+++ b/hw/xquartz/bundle/Resources/English.lproj/main.nib/keyedobjects.nib
Binary files differ
diff --git a/mi/miexpose.c b/mi/miexpose.c
index 2c43d9824..6ce56ee85 100644
--- a/mi/miexpose.c
+++ b/mi/miexpose.c
@@ -522,7 +522,7 @@ void
miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
{
ScreenPtr pScreen = pWin->drawable.pScreen;
- ChangeGCVal gcval[5];
+ ChangeGCVal gcval[6];
BITS32 gcmask;
GCPtr pGC;
int i;
@@ -590,18 +590,35 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
gcval[0].val = GXcopy;
gcmask = GCFunction;
+#ifdef ROOTLESS_SAFEALPHA
+/* 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)
+#endif
+
if (solid)
{
+#ifdef ROOTLESS_SAFEALPHA
+ gcval[1].val = fill.pixel | RootlessAlphaMask(pWin->drawable.bitsPerPixel);
+#else
gcval[1].val = fill.pixel;
+#endif
gcval[2].val = FillSolid;
gcmask |= GCForeground | GCFillStyle;
}
else
{
- gcval[1].val = FillTiled;
- gcval[2].ptr = (pointer)fill.pixmap;
- gcval[3].val = tile_x_off;
- gcval[4].val = tile_y_off;
+ int c=1;
+#ifdef ROOTLESS_SAFEALPHA
+ gcval[c++].val = ((CARD32)-1) & ~RootlessAlphaMask(pWin->drawable.bitsPerPixel);
+ gcmask |= GCPlaneMask;
+#endif
+ gcval[c++].val = FillTiled;
+ gcval[c++].ptr = (pointer)fill.pixmap;
+ gcval[c++].val = tile_x_off;
+ gcval[c++].val = tile_y_off;
gcmask |= GCFillStyle | GCTile | GCTileStipXOrigin | GCTileStipYOrigin;
}
diff --git a/miext/rootless/rootlessScreen.c b/miext/rootless/rootlessScreen.c
index 75dd43994..88d38698b 100644
--- a/miext/rootless/rootlessScreen.c
+++ b/miext/rootless/rootlessScreen.c
@@ -481,8 +481,7 @@ static void expose_1 (WindowPtr pWin) {
if (!pWin->realized)
return;
- (*pWin->drawable.pScreen->PaintWindowBackground) (pWin, &pWin->borderClip,
- PW_BACKGROUND);
+ 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