From 0b8629ada4293370d220bbb7e6c195c711baee7d Mon Sep 17 00:00:00 2001 From: marha Date: Fri, 16 Apr 2010 15:34:33 +0000 Subject: svn merge -r534:HEAD ^/branches/released . --- xorg-server/hw/xquartz/GL/glcontextmodes.c | 550 ++++++ xorg-server/hw/xquartz/GL/glcontextmodes.h | 54 + xorg-server/hw/xquartz/GL/indirect.c | 2 +- xorg-server/hw/xquartz/X11Application.h | 1 + xorg-server/hw/xquartz/X11Application.m | 19 +- xorg-server/hw/xquartz/X11Controller.h | 6 +- xorg-server/hw/xquartz/X11Controller.m | 102 +- .../Resources/Dutch.lproj/Localizable.strings | Bin 2616 -> 2786 bytes .../Dutch.lproj/main.nib/keyedobjects.nib | Bin 46189 -> 45943 bytes .../English.lproj/main.nib/designable.nib | 1791 ++++++++------------ .../English.lproj/main.nib/keyedobjects.nib | Bin 41440 -> 45258 bytes .../Resources/French.lproj/Localizable.strings | Bin 2708 -> 2894 bytes .../French.lproj/main.nib/keyedobjects.nib | Bin 55983 -> 55699 bytes .../Resources/German.lproj/Localizable.strings | Bin 2632 -> 2812 bytes .../German.lproj/main.nib/keyedobjects.nib | Bin 52977 -> 52610 bytes .../Resources/Italian.lproj/Localizable.strings | Bin 2618 -> 2802 bytes .../Italian.lproj/main.nib/keyedobjects.nib | Bin 50126 -> 49748 bytes .../Resources/Japanese.lproj/Localizable.strings | Bin 2166 -> 2320 bytes .../Japanese.lproj/main.nib/keyedobjects.nib | Bin 47803 -> 47584 bytes .../Resources/Spanish.lproj/Localizable.strings | Bin 2562 -> 2744 bytes .../Spanish.lproj/main.nib/keyedobjects.nib | Bin 53635 -> 53366 bytes .../bundle/Resources/da.lproj/Localizable.strings | Bin 2554 -> 2734 bytes .../Resources/da.lproj/main.nib/keyedobjects.nib | Bin 51757 -> 51511 bytes .../bundle/Resources/fi.lproj/Localizable.strings | Bin 2614 -> 2778 bytes .../Resources/fi.lproj/main.nib/keyedobjects.nib | Bin 53385 -> 53083 bytes .../bundle/Resources/ko.lproj/Localizable.strings | Bin 2140 -> 2290 bytes .../Resources/ko.lproj/main.nib/keyedobjects.nib | Bin 46727 -> 46478 bytes .../bundle/Resources/no.lproj/Localizable.strings | Bin 2576 -> 2758 bytes .../Resources/no.lproj/main.nib/keyedobjects.nib | Bin 50330 -> 50084 bytes .../bundle/Resources/pl.lproj/Localizable.strings | Bin 2508 -> 2672 bytes .../Resources/pl.lproj/main.nib/keyedobjects.nib | Bin 52516 -> 52193 bytes .../bundle/Resources/pt.lproj/Localizable.strings | Bin 2654 -> 2834 bytes .../Resources/pt.lproj/main.nib/keyedobjects.nib | Bin 52942 -> 52696 bytes .../Resources/pt_PT.lproj/Localizable.strings | Bin 2598 -> 2784 bytes .../pt_PT.lproj/main.nib/keyedobjects.nib | Bin 54065 -> 53711 bytes .../bundle/Resources/ru.lproj/Localizable.strings | Bin 2656 -> 2826 bytes .../Resources/ru.lproj/main.nib/keyedobjects.nib | Bin 55338 -> 54972 bytes .../bundle/Resources/sv.lproj/Localizable.strings | Bin 2498 -> 2682 bytes .../Resources/sv.lproj/main.nib/keyedobjects.nib | Bin 52602 -> 52356 bytes .../Resources/zh_CN.lproj/Localizable.strings | Bin 1998 -> 2140 bytes .../zh_CN.lproj/main.nib/keyedobjects.nib | Bin 44178 -> 43954 bytes .../Resources/zh_TW.lproj/Localizable.strings | Bin 2018 -> 2166 bytes .../zh_TW.lproj/main.nib/keyedobjects.nib | Bin 44416 -> 44214 bytes xorg-server/hw/xquartz/doc/Makefile.am | 2 + xorg-server/hw/xquartz/doc/Xquartz.man.pre | 39 +- xorg-server/hw/xquartz/quartz.c | 1 + xorg-server/hw/xquartz/quartzCommon.h | 1 + xorg-server/hw/xquartz/quartzKeyboard.c | 91 +- xorg-server/hw/xquartz/quartzKeyboard.h | 10 +- 49 files changed, 1482 insertions(+), 1187 deletions(-) create mode 100644 xorg-server/hw/xquartz/GL/glcontextmodes.c create mode 100644 xorg-server/hw/xquartz/GL/glcontextmodes.h (limited to 'xorg-server/hw/xquartz') diff --git a/xorg-server/hw/xquartz/GL/glcontextmodes.c b/xorg-server/hw/xquartz/GL/glcontextmodes.c new file mode 100644 index 000000000..326c8b235 --- /dev/null +++ b/xorg-server/hw/xquartz/GL/glcontextmodes.c @@ -0,0 +1,550 @@ +/* + * (C) Copyright IBM Corporation 2003 + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * on the rights to use, copy, modify, merge, publish, distribute, sub + * license, and/or sell copies of the Software, and to permit persons to whom + * the Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) 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 NON-INFRINGEMENT. IN NO EVENT SHALL + * VA LINUX SYSTEM, IBM AND/OR THEIR SUPPLIERS 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. + */ + +/** + * \file glcontextmodes.c + * Utility routines for working with \c __GLcontextModes structures. At + * some point most or all of these functions will be moved to the Mesa + * code base. + * + * \author Ian Romanick + */ + +#if defined(IN_MINI_GLX) +#include +#else +#if defined(HAVE_DIX_CONFIG_H) +# include +#endif +#include +#include +#include "GL/glxint.h" +#endif + +/* Memory macros */ +#if defined(IN_MINI_GLX) +# include +# include +# define _mesa_malloc(b) malloc(b) +# define _mesa_free(m) free(m) +# define _mesa_memset memset +#else +# ifdef XFree86Server +# include +# include +# define _mesa_malloc(b) xalloc(b) +# define _mesa_free(m) xfree(m) +# define _mesa_memset memset +# else +# include +# define _mesa_memset memset +# define _mesa_malloc(b) Xmalloc(b) +# define _mesa_free(m) Xfree(m) +# endif /* XFree86Server */ +#endif /* !defined(IN_MINI_GLX) */ + +#include "glcontextmodes.h" + +#if !defined(IN_MINI_GLX) +#define NUM_VISUAL_TYPES 6 + +/** + * Convert an X visual type to a GLX visual type. + * + * \param visualType X visual type (i.e., \c TrueColor, \c StaticGray, etc.) + * to be converted. + * \return If \c visualType is a valid X visual type, a GLX visual type will + * be returned. Otherwise \c GLX_NONE will be returned. + */ +GLint +_gl_convert_from_x_visual_type( int visualType ) +{ + static const int glx_visual_types[ NUM_VISUAL_TYPES ] = { + GLX_STATIC_GRAY, GLX_GRAY_SCALE, + GLX_STATIC_COLOR, GLX_PSEUDO_COLOR, + GLX_TRUE_COLOR, GLX_DIRECT_COLOR + }; + + return ( (unsigned) visualType < NUM_VISUAL_TYPES ) + ? glx_visual_types[ visualType ] : GLX_NONE; +} + + +/** + * Convert a GLX visual type to an X visual type. + * + * \param visualType GLX visual type (i.e., \c GLX_TRUE_COLOR, + * \c GLX_STATIC_GRAY, etc.) to be converted. + * \return If \c visualType is a valid GLX visual type, an X visual type will + * be returned. Otherwise -1 will be returned. + */ +GLint +_gl_convert_to_x_visual_type( int visualType ) +{ + static const int x_visual_types[ NUM_VISUAL_TYPES ] = { + TrueColor, DirectColor, + PseudoColor, StaticColor, + GrayScale, StaticGray + }; + + return ( (unsigned) (visualType - GLX_TRUE_COLOR) < NUM_VISUAL_TYPES ) + ? x_visual_types[ visualType - GLX_TRUE_COLOR ] : -1; +} + + +/** + * Copy a GLX visual config structure to a GL context mode structure. All + * of the fields in \c config are copied to \c mode. Additional fields in + * \c mode that can be derrived from the fields of \c config (i.e., + * \c haveDepthBuffer) are also filled in. The remaining fields in \c mode + * that cannot be derived are set to default values. + * + * \param mode Destination GL context mode. + * \param config Source GLX visual config. + * + * \note + * The \c fbconfigID and \c visualID fields of the \c __GLcontextModes + * structure will be set to the \c vid of the \c __GLXvisualConfig structure. + */ +void +_gl_copy_visual_to_context_mode( __GLcontextModes * mode, + const __GLXvisualConfig * config ) +{ + __GLcontextModes * const next = mode->next; + + (void) _mesa_memset( mode, 0, sizeof( __GLcontextModes ) ); + mode->next = next; + + mode->visualID = config->vid; + mode->visualType = _gl_convert_from_x_visual_type( config->class ); + mode->xRenderable = GL_TRUE; + mode->fbconfigID = config->vid; + mode->drawableType = GLX_WINDOW_BIT | GLX_PIXMAP_BIT; + + mode->rgbMode = (config->rgba != 0); + mode->renderType = (mode->rgbMode) ? GLX_RGBA_BIT : GLX_COLOR_INDEX_BIT; + + mode->colorIndexMode = !(mode->rgbMode); + mode->doubleBufferMode = (config->doubleBuffer != 0); + mode->stereoMode = (config->stereo != 0); + + mode->haveAccumBuffer = ((config->accumRedSize + + config->accumGreenSize + + config->accumBlueSize + + config->accumAlphaSize) > 0); + mode->haveDepthBuffer = (config->depthSize > 0); + mode->haveStencilBuffer = (config->stencilSize > 0); + + mode->redBits = config->redSize; + mode->greenBits = config->greenSize; + mode->blueBits = config->blueSize; + mode->alphaBits = config->alphaSize; + mode->redMask = config->redMask; + mode->greenMask = config->greenMask; + mode->blueMask = config->blueMask; + mode->alphaMask = config->alphaMask; + mode->rgbBits = mode->rgbMode ? config->bufferSize : 0; + mode->indexBits = mode->colorIndexMode ? config->bufferSize : 0; + + mode->accumRedBits = config->accumRedSize; + mode->accumGreenBits = config->accumGreenSize; + mode->accumBlueBits = config->accumBlueSize; + mode->accumAlphaBits = config->accumAlphaSize; + mode->depthBits = config->depthSize; + mode->stencilBits = config->stencilSize; + + mode->numAuxBuffers = config->auxBuffers; + mode->level = config->level; + + mode->visualRating = config->visualRating; + mode->transparentPixel = config->transparentPixel; + mode->transparentRed = config->transparentRed; + mode->transparentGreen = config->transparentGreen; + mode->transparentBlue = config->transparentBlue; + mode->transparentAlpha = config->transparentAlpha; + mode->transparentIndex = config->transparentIndex; + mode->samples = config->multiSampleSize; + mode->sampleBuffers = config->nMultiSampleBuffers; + /* mode->visualSelectGroup = config->visualSelectGroup; ? */ + + mode->swapMethod = GLX_SWAP_UNDEFINED_OML; + + mode->bindToTextureRgb = (mode->rgbMode) ? GL_TRUE : GL_FALSE; + mode->bindToTextureRgba = (mode->rgbMode && mode->alphaBits) ? + GL_TRUE : GL_FALSE; + mode->bindToMipmapTexture = mode->rgbMode ? GL_TRUE : GL_FALSE; + mode->bindToTextureTargets = mode->rgbMode ? + GLX_TEXTURE_1D_BIT_EXT | GLX_TEXTURE_2D_BIT_EXT | + GLX_TEXTURE_RECTANGLE_BIT_EXT : 0; + mode->yInverted = GL_FALSE; +} + + +/** + * Get data from a GL context mode. + * + * \param mode GL context mode whose data is to be returned. + * \param attribute Attribute of \c mode that is to be returned. + * \param value_return Location to store the data member of \c mode. + * \return If \c attribute is a valid attribute of \c mode, zero is + * returned. Otherwise \c GLX_BAD_ATTRIBUTE is returned. + */ +int +_gl_get_context_mode_data(const __GLcontextModes *mode, int attribute, + int *value_return) +{ + switch (attribute) { + case GLX_USE_GL: + *value_return = GL_TRUE; + return 0; + case GLX_BUFFER_SIZE: + *value_return = mode->rgbBits; + return 0; + case GLX_RGBA: + *value_return = mode->rgbMode; + return 0; + case GLX_RED_SIZE: + *value_return = mode->redBits; + return 0; + case GLX_GREEN_SIZE: + *value_return = mode->greenBits; + return 0; + case GLX_BLUE_SIZE: + *value_return = mode->blueBits; + return 0; + case GLX_ALPHA_SIZE: + *value_return = mode->alphaBits; + return 0; + case GLX_DOUBLEBUFFER: + *value_return = mode->doubleBufferMode; + return 0; + case GLX_STEREO: + *value_return = mode->stereoMode; + return 0; + case GLX_AUX_BUFFERS: + *value_return = mode->numAuxBuffers; + return 0; + case GLX_DEPTH_SIZE: + *value_return = mode->depthBits; + return 0; + case GLX_STENCIL_SIZE: + *value_return = mode->stencilBits; + return 0; + case GLX_ACCUM_RED_SIZE: + *value_return = mode->accumRedBits; + return 0; + case GLX_ACCUM_GREEN_SIZE: + *value_return = mode->accumGreenBits; + return 0; + case GLX_ACCUM_BLUE_SIZE: + *value_return = mode->accumBlueBits; + return 0; + case GLX_ACCUM_ALPHA_SIZE: + *value_return = mode->accumAlphaBits; + return 0; + case GLX_LEVEL: + *value_return = mode->level; + return 0; + case GLX_TRANSPARENT_TYPE_EXT: + *value_return = mode->transparentPixel; + return 0; + case GLX_TRANSPARENT_RED_VALUE: + *value_return = mode->transparentRed; + return 0; + case GLX_TRANSPARENT_GREEN_VALUE: + *value_return = mode->transparentGreen; + return 0; + case GLX_TRANSPARENT_BLUE_VALUE: + *value_return = mode->transparentBlue; + return 0; + case GLX_TRANSPARENT_ALPHA_VALUE: + *value_return = mode->transparentAlpha; + return 0; + case GLX_TRANSPARENT_INDEX_VALUE: + *value_return = mode->transparentIndex; + return 0; + case GLX_X_VISUAL_TYPE: + *value_return = mode->visualType; + return 0; + case GLX_CONFIG_CAVEAT: + *value_return = mode->visualRating; + return 0; + case GLX_VISUAL_ID: + *value_return = mode->visualID; + return 0; + case GLX_DRAWABLE_TYPE: + *value_return = mode->drawableType; + return 0; + case GLX_RENDER_TYPE: + *value_return = mode->renderType; + return 0; + case GLX_X_RENDERABLE: + *value_return = mode->xRenderable; + return 0; + case GLX_FBCONFIG_ID: + *value_return = mode->fbconfigID; + return 0; + case GLX_MAX_PBUFFER_WIDTH: + *value_return = mode->maxPbufferWidth; + return 0; + case GLX_MAX_PBUFFER_HEIGHT: + *value_return = mode->maxPbufferHeight; + return 0; + case GLX_MAX_PBUFFER_PIXELS: + *value_return = mode->maxPbufferPixels; + return 0; + case GLX_OPTIMAL_PBUFFER_WIDTH_SGIX: + *value_return = mode->optimalPbufferWidth; + return 0; + case GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX: + *value_return = mode->optimalPbufferHeight; + return 0; + case GLX_SWAP_METHOD_OML: + *value_return = mode->swapMethod; + return 0; + case GLX_SAMPLE_BUFFERS_SGIS: + *value_return = mode->sampleBuffers; + return 0; + case GLX_SAMPLES_SGIS: + *value_return = mode->samples; + return 0; + case GLX_BIND_TO_TEXTURE_RGB_EXT: + *value_return = mode->bindToTextureRgb; + return 0; + case GLX_BIND_TO_TEXTURE_RGBA_EXT: + *value_return = mode->bindToTextureRgba; + return 0; + case GLX_BIND_TO_MIPMAP_TEXTURE_EXT: + *value_return = mode->bindToMipmapTexture == GL_TRUE ? GL_TRUE : + GL_FALSE; + return 0; + case GLX_BIND_TO_TEXTURE_TARGETS_EXT: + *value_return = mode->bindToTextureTargets; + return 0; + case GLX_Y_INVERTED_EXT: + *value_return = mode->yInverted; + return 0; + + /* Applications are NOT allowed to query GLX_VISUAL_SELECT_GROUP_SGIX. + * It is ONLY for communication between the GLX client and the GLX + * server. + */ + case GLX_VISUAL_SELECT_GROUP_SGIX: + default: + return GLX_BAD_ATTRIBUTE; + } +} +#endif /* !defined(IN_MINI_GLX) */ + + +/** + * Allocate a linked list of \c __GLcontextModes structures. The fields of + * each structure will be initialized to "reasonable" default values. In + * most cases this is the default value defined by table 3.4 of the GLX + * 1.3 specification. This means that most values are either initialized to + * zero or \c GLX_DONT_CARE (which is -1). As support for additional + * extensions is added, the new values will be initialized to appropriate + * values from the extension specification. + * + * \param count Number of structures to allocate. + * \param minimum_size Minimum size of a structure to allocate. This allows + * for differences in the version of the + * \c __GLcontextModes stucture used in libGL and in a + * DRI-based driver. + * \returns A pointer to the first element in a linked list of \c count + * stuctures on success, or \c NULL on failure. + * + * \warning Use of \c minimum_size does \b not guarantee binary compatibility. + * The fundamental assumption is that if the \c minimum_size + * specified by the driver and the size of the \c __GLcontextModes + * structure in libGL is the same, then the meaning of each byte in + * the structure is the same in both places. \b Be \b careful! + * Basically this means that fields have to be added in libGL and + * then propagated to drivers. Drivers should \b never arbitrarilly + * extend the \c __GLcontextModes data-structure. + */ +__GLcontextModes * +_gl_context_modes_create( unsigned count, size_t minimum_size ) +{ + const size_t size = (minimum_size > sizeof( __GLcontextModes )) + ? minimum_size : sizeof( __GLcontextModes ); + __GLcontextModes * base = NULL; + __GLcontextModes ** next; + unsigned i; + + next = & base; + for ( i = 0 ; i < count ; i++ ) { + *next = (__GLcontextModes *) _mesa_malloc( size ); + if ( *next == NULL ) { + _gl_context_modes_destroy( base ); + base = NULL; + break; + } + + (void) _mesa_memset( *next, 0, size ); + (*next)->visualID = GLX_DONT_CARE; + (*next)->visualType = GLX_DONT_CARE; + (*next)->visualRating = GLX_NONE; + (*next)->transparentPixel = GLX_NONE; + (*next)->transparentRed = GLX_DONT_CARE; + (*next)->transparentGreen = GLX_DONT_CARE; + (*next)->transparentBlue = GLX_DONT_CARE; + (*next)->transparentAlpha = GLX_DONT_CARE; + (*next)->transparentIndex = GLX_DONT_CARE; + (*next)->xRenderable = GLX_DONT_CARE; + (*next)->fbconfigID = GLX_DONT_CARE; + (*next)->swapMethod = GLX_SWAP_UNDEFINED_OML; + (*next)->bindToTextureRgb = GLX_DONT_CARE; + (*next)->bindToTextureRgba = GLX_DONT_CARE; + (*next)->bindToMipmapTexture = GLX_DONT_CARE; + (*next)->bindToTextureTargets = GLX_DONT_CARE; + (*next)->yInverted = GLX_DONT_CARE; + + next = & ((*next)->next); + } + + return base; +} + + +/** + * Destroy a linked list of \c __GLcontextModes structures created by + * \c _gl_context_modes_create. + * + * \param modes Linked list of structures to be destroyed. All structres + * in the list will be freed. + */ +void +_gl_context_modes_destroy( __GLcontextModes * modes ) +{ + while ( modes != NULL ) { + __GLcontextModes * const next = modes->next; + + _mesa_free( modes ); + modes = next; + } +} + + +/** + * Find a context mode matching a Visual ID. + * + * \param modes List list of context-mode structures to be searched. + * \param vid Visual ID to be found. + * \returns A pointer to a context-mode in \c modes if \c vid was found in + * the list, or \c NULL if it was not. + */ + +__GLcontextModes * +_gl_context_modes_find_visual(__GLcontextModes *modes, int vid) +{ + __GLcontextModes *m; + + for (m = modes; m != NULL; m = m->next) + if (m->visualID == vid) + return m; + + return NULL; +} + +__GLcontextModes * +_gl_context_modes_find_fbconfig(__GLcontextModes *modes, int fbid) +{ + __GLcontextModes *m; + + for (m = modes; m != NULL; m = m->next) + if (m->fbconfigID == fbid) + return m; + + return NULL; +} + +/** + * Determine if two context-modes are the same. This is intended to be used + * by libGL implementations to compare to sets of driver generated FBconfigs. + * + * \param a Context-mode to be compared. + * \param b Context-mode to be compared. + * \returns \c GL_TRUE if the two context-modes are the same. \c GL_FALSE is + * returned otherwise. + */ +GLboolean +_gl_context_modes_are_same( const __GLcontextModes * a, + const __GLcontextModes * b ) +{ + return( (a->rgbMode == b->rgbMode) && + (a->floatMode == b->floatMode) && + (a->colorIndexMode == b->colorIndexMode) && + (a->doubleBufferMode == b->doubleBufferMode) && + (a->stereoMode == b->stereoMode) && + (a->redBits == b->redBits) && + (a->greenBits == b->greenBits) && + (a->blueBits == b->blueBits) && + (a->alphaBits == b->alphaBits) && +#if 0 /* For some reason these don't get set on the client-side in libGL. */ + (a->redMask == b->redMask) && + (a->greenMask == b->greenMask) && + (a->blueMask == b->blueMask) && + (a->alphaMask == b->alphaMask) && +#endif + (a->rgbBits == b->rgbBits) && + (a->indexBits == b->indexBits) && + (a->accumRedBits == b->accumRedBits) && + (a->accumGreenBits == b->accumGreenBits) && + (a->accumBlueBits == b->accumBlueBits) && + (a->accumAlphaBits == b->accumAlphaBits) && + (a->depthBits == b->depthBits) && + (a->stencilBits == b->stencilBits) && + (a->numAuxBuffers == b->numAuxBuffers) && + (a->level == b->level) && + (a->pixmapMode == b->pixmapMode) && + (a->visualRating == b->visualRating) && + + (a->transparentPixel == b->transparentPixel) && + + ((a->transparentPixel != GLX_TRANSPARENT_RGB) || + ((a->transparentRed == b->transparentRed) && + (a->transparentGreen == b->transparentGreen) && + (a->transparentBlue == b->transparentBlue) && + (a->transparentAlpha == b->transparentAlpha))) && + + ((a->transparentPixel != GLX_TRANSPARENT_INDEX) || + (a->transparentIndex == b->transparentIndex)) && + + (a->sampleBuffers == b->sampleBuffers) && + (a->samples == b->samples) && + ((a->drawableType & b->drawableType) != 0) && + (a->renderType == b->renderType) && + (a->maxPbufferWidth == b->maxPbufferWidth) && + (a->maxPbufferHeight == b->maxPbufferHeight) && + (a->maxPbufferPixels == b->maxPbufferPixels) && + (a->optimalPbufferWidth == b->optimalPbufferWidth) && + (a->optimalPbufferHeight == b->optimalPbufferHeight) && + (a->swapMethod == b->swapMethod) && + (a->bindToTextureRgb == b->bindToTextureRgb) && + (a->bindToTextureRgba == b->bindToTextureRgba) && + (a->bindToMipmapTexture == b->bindToMipmapTexture) && + (a->bindToTextureTargets == b->bindToTextureTargets) && + (a->yInverted == b->yInverted) ); +} diff --git a/xorg-server/hw/xquartz/GL/glcontextmodes.h b/xorg-server/hw/xquartz/GL/glcontextmodes.h new file mode 100644 index 000000000..afd09cd7f --- /dev/null +++ b/xorg-server/hw/xquartz/GL/glcontextmodes.h @@ -0,0 +1,54 @@ +/* + * (C) Copyright IBM Corporation 2003 + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * on the rights to use, copy, modify, merge, publish, distribute, sub + * license, and/or sell copies of the Software, and to permit persons to whom + * the Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) 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 NON-INFRINGEMENT. IN NO EVENT SHALL + * VA LINUX SYSTEM, IBM AND/OR THEIR SUPPLIERS 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. + */ + +/** + * \file glcontextmodes.h + * \author Ian Romanick + */ + +#ifndef GLCONTEXTMODES_H +#define GLCONTEXTMODES_H + +#include "GL/internal/glcore.h" + +#if !defined(IN_MINI_GLX) +extern GLint _gl_convert_from_x_visual_type( int visualType ); +extern GLint _gl_convert_to_x_visual_type( int visualType ); +extern void _gl_copy_visual_to_context_mode( __GLcontextModes * mode, + const __GLXvisualConfig * config ); +extern int _gl_get_context_mode_data( const __GLcontextModes *mode, + int attribute, int *value_return ); +#endif /* !defined(IN_MINI_GLX) */ + +extern __GLcontextModes * _gl_context_modes_create( unsigned count, + size_t minimum_size ); +extern void _gl_context_modes_destroy( __GLcontextModes * modes ); +extern __GLcontextModes * + _gl_context_modes_find_visual(__GLcontextModes *modes, int vid); +extern __GLcontextModes * + _gl_context_modes_find_fbconfig(__GLcontextModes *modes, int fbid); +extern GLboolean _gl_context_modes_are_same( const __GLcontextModes * a, + const __GLcontextModes * b ); + +#endif /* GLCONTEXTMODES_H */ diff --git a/xorg-server/hw/xquartz/GL/indirect.c b/xorg-server/hw/xquartz/GL/indirect.c index f2af3ffb6..70558ed20 100644 --- a/xorg-server/hw/xquartz/GL/indirect.c +++ b/xorg-server/hw/xquartz/GL/indirect.c @@ -548,7 +548,7 @@ static CGLPixelFormatObj makeFormat(__GLXconfig *conf) { attr[i++] = conf->samples; } - attr[i + 1] = 0; + attr[i] = 0; error = CGLChoosePixelFormat(attr, &fobj, &formats); if(error) { diff --git a/xorg-server/hw/xquartz/X11Application.h b/xorg-server/hw/xquartz/X11Application.h index d7e9a5fa5..ce19e034a 100644 --- a/xorg-server/hw/xquartz/X11Application.h +++ b/xorg-server/hw/xquartz/X11Application.h @@ -90,6 +90,7 @@ extern int quartzHasRoot, quartzEnableRootless, quartzFullscreenMenu; #define PREFS_NO_TCP "nolisten_tcp" #define PREFS_DONE_XINIT_CHECK "done_xinit_check" #define PREFS_NO_QUIT_ALERT "no_quit_alert" +#define PREFS_OPTION_SENDS_ALT "option_sends_alt" #define PREFS_FAKE_BUTTON2 "fake_button2" #define PREFS_FAKE_BUTTON3 "fake_button3" #define PREFS_APPKIT_MODIFIERS "appkit_modifiers" diff --git a/xorg-server/hw/xquartz/X11Application.m b/xorg-server/hw/xquartz/X11Application.m index 54066404e..c9a0d669f 100644 --- a/xorg-server/hw/xquartz/X11Application.m +++ b/xorg-server/hw/xquartz/X11Application.m @@ -712,10 +712,13 @@ static NSMutableArray * cfarray_to_nsarray (CFArrayRef in) { default:quartzEnableRootless]; quartzFullscreenMenu = [self prefs_get_boolean:@PREFS_FULLSCREEN_MENU default:quartzFullscreenMenu]; - quartzFullscreenDisableHotkeys = ![self prefs_get_boolean: - @PREFS_FULLSCREEN_HOTKEYS default:!quartzFullscreenDisableHotkeys]; + quartzFullscreenDisableHotkeys = ![self prefs_get_boolean:@PREFS_FULLSCREEN_HOTKEYS + default:!quartzFullscreenDisableHotkeys]; darwinFakeButtons = [self prefs_get_boolean:@PREFS_FAKEBUTTONS default:darwinFakeButtons]; + quartzOptionSendsAlt = [self prefs_get_boolean:@PREFS_OPTION_SENDS_ALT + default:quartzOptionSendsAlt]; + if (darwinFakeButtons) { const char *fake2, *fake3; @@ -969,8 +972,7 @@ void X11ApplicationMain (int argc, char **argv, char **envp) { fprintf(stderr, "X11ApplicationMain: Unable to determine KLGetCurrentKeyboardLayout() at startup.\n"); #endif - memset(keyInfo.keyMap, 0, sizeof(keyInfo.keyMap)); - if (!QuartzReadSystemKeymap(&keyInfo)) { + if (!QuartsResyncKeymap(FALSE)) { fprintf(stderr, "X11ApplicationMain: Could not build a valid keymap.\n"); } @@ -1229,17 +1231,10 @@ static inline int ensure_flag(int flags, int device_independent, int device_depe if(key_layout != last_key_layout) { last_key_layout = key_layout; #endif - /* Update keyInfo */ - pthread_mutex_lock(&keyInfo_mutex); - memset(keyInfo.keyMap, 0, sizeof(keyInfo.keyMap)); - if (!QuartzReadSystemKeymap(&keyInfo)) { + if (!QuartsResyncKeymap(TRUE)) { fprintf(stderr, "sendX11NSEvent: Could not build a valid keymap.\n"); } - pthread_mutex_unlock(&keyInfo_mutex); - - /* Tell server thread to deal with new keyInfo */ - DarwinSendDDXEvent(kXquartzReloadKeymap, 0); } } diff --git a/xorg-server/hw/xquartz/X11Controller.h b/xorg-server/hw/xquartz/X11Controller.h index 9e16f75ce..65a09b8d5 100644 --- a/xorg-server/hw/xquartz/X11Controller.h +++ b/xorg-server/hw/xquartz/X11Controller.h @@ -55,10 +55,9 @@ typedef unsigned int NSUInteger; #endif #endif -#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060 -@interface X11Controller : NSObject -#else @interface X11Controller : NSObject +#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060 + #endif { IBOutlet NSPanel *prefs_panel; @@ -69,6 +68,7 @@ typedef unsigned int NSUInteger; IBOutlet NSButton *use_sysbeep; IBOutlet NSButton *enable_keyequivs; IBOutlet NSButton *sync_keymap; + IBOutlet NSButton *option_sends_alt; IBOutlet NSButton *click_through; IBOutlet NSButton *focus_follows_mouse; IBOutlet NSButton *focus_on_new_window; diff --git a/xorg-server/hw/xquartz/X11Controller.m b/xorg-server/hw/xquartz/X11Controller.m index b28f4d303..d66d039b0 100644 --- a/xorg-server/hw/xquartz/X11Controller.m +++ b/xorg-server/hw/xquartz/X11Controller.m @@ -43,6 +43,7 @@ #include "darwin.h" #include "darwinEvents.h" #include "quartz.h" +#include "quartzKeyboard.h" #include #include "applewmExt.h" @@ -630,49 +631,69 @@ objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row - (IBAction)prefs_changed:sender { - BOOL pbproxy_active; - - darwinFakeButtons = [fake_buttons intValue]; - quartzUseSysBeep = [use_sysbeep intValue]; - X11EnableKeyEquivalents = [enable_keyequivs intValue]; - darwinSyncKeymap = [sync_keymap intValue]; - quartzFullscreenMenu = [enable_fullscreen_menu intValue]; - - /* after adding prefs here, also add to [X11Application read_defaults] - and prefs_show */ - - [NSApp prefs_set_boolean:@PREFS_FAKEBUTTONS value:darwinFakeButtons]; - [NSApp prefs_set_boolean:@PREFS_SYSBEEP value:quartzUseSysBeep]; - [NSApp prefs_set_boolean:@PREFS_KEYEQUIVS value:X11EnableKeyEquivalents]; - [NSApp prefs_set_boolean:@PREFS_SYNC_KEYMAP value:darwinSyncKeymap]; - [NSApp prefs_set_boolean:@PREFS_FULLSCREEN_MENU value:quartzFullscreenMenu]; - [NSApp prefs_set_boolean:@PREFS_CLICK_THROUGH value:[click_through intValue]]; - [NSApp prefs_set_boolean:@PREFS_FFM value:[focus_follows_mouse intValue]]; - [NSApp prefs_set_boolean:@PREFS_FOCUS_ON_NEW_WINDOW value:[focus_on_new_window intValue]]; - [NSApp prefs_set_boolean:@PREFS_NO_AUTH value:![enable_auth intValue]]; - [NSApp prefs_set_boolean:@PREFS_NO_TCP value:![enable_tcp intValue]]; - [NSApp prefs_set_integer:@PREFS_DEPTH value:[depth selectedTag]]; - - pbproxy_active = [sync_pasteboard intValue]; - - [NSApp prefs_set_boolean:@PREFS_SYNC_PB value:pbproxy_active]; - [NSApp prefs_set_boolean:@PREFS_SYNC_PB_TO_CLIPBOARD value:[sync_pasteboard_to_clipboard intValue]]; - [NSApp prefs_set_boolean:@PREFS_SYNC_PB_TO_PRIMARY value:[sync_pasteboard_to_primary intValue]]; - [NSApp prefs_set_boolean:@PREFS_SYNC_CLIPBOARD_TO_PB value:[sync_clipboard_to_pasteboard intValue]]; - [NSApp prefs_set_boolean:@PREFS_SYNC_PRIMARY_ON_SELECT value:[sync_primary_immediately intValue]]; + if(!sender) + return; + + if(sender == fake_buttons) { + darwinFakeButtons = [fake_buttons intValue]; + [NSApp prefs_set_boolean:@PREFS_FAKEBUTTONS value:darwinFakeButtons]; + } else if(sender == use_sysbeep) { + quartzUseSysBeep = [use_sysbeep intValue]; + [NSApp prefs_set_boolean:@PREFS_SYSBEEP value:quartzUseSysBeep]; + } else if(sender == enable_keyequivs) { + X11EnableKeyEquivalents = [enable_keyequivs intValue]; + [NSApp prefs_set_boolean:@PREFS_KEYEQUIVS value:X11EnableKeyEquivalents]; + } else if(sender == sync_keymap) { + darwinSyncKeymap = [sync_keymap intValue]; + [NSApp prefs_set_boolean:@PREFS_SYNC_KEYMAP value:darwinSyncKeymap]; + } else if(sender == enable_fullscreen_menu) { + quartzFullscreenMenu = [enable_fullscreen_menu intValue]; + [NSApp prefs_set_boolean:@PREFS_FULLSCREEN_MENU value:quartzFullscreenMenu]; + } else if(sender == option_sends_alt) { + BOOL prev_opt_sends_alt = quartzOptionSendsAlt; + + quartzOptionSendsAlt = [option_sends_alt intValue]; + [NSApp prefs_set_boolean:@PREFS_OPTION_SENDS_ALT value:quartzOptionSendsAlt]; + + if(prev_opt_sends_alt != quartzOptionSendsAlt) + QuartsResyncKeymap(TRUE); + } else if(sender == click_through) { + [NSApp prefs_set_boolean:@PREFS_CLICK_THROUGH value:[click_through intValue]]; + } else if(sender == focus_follows_mouse) { + [NSApp prefs_set_boolean:@PREFS_FFM value:[focus_follows_mouse intValue]]; + } else if(sender == focus_on_new_window) { + [NSApp prefs_set_boolean:@PREFS_FOCUS_ON_NEW_WINDOW value:[focus_on_new_window intValue]]; + } else if(sender == enable_auth) { + [NSApp prefs_set_boolean:@PREFS_NO_AUTH value:![enable_auth intValue]]; + } else if(sender == enable_tcp) { + [NSApp prefs_set_boolean:@PREFS_NO_TCP value:![enable_tcp intValue]]; + } else if(sender == depth) { + [NSApp prefs_set_integer:@PREFS_DEPTH value:[depth selectedTag]]; + } else if(sender == sync_pasteboard) { + BOOL pbproxy_active = [sync_pasteboard intValue]; + [NSApp prefs_set_boolean:@PREFS_SYNC_PB value:pbproxy_active]; + + [sync_pasteboard_to_clipboard setEnabled:pbproxy_active]; + [sync_pasteboard_to_primary setEnabled:pbproxy_active]; + [sync_clipboard_to_pasteboard setEnabled:pbproxy_active]; + [sync_primary_immediately setEnabled:pbproxy_active]; + + // setEnabled doesn't do this... + [sync_text1 setTextColor:pbproxy_active ? [NSColor controlTextColor] : [NSColor disabledControlTextColor]]; + [sync_text2 setTextColor:pbproxy_active ? [NSColor controlTextColor] : [NSColor disabledControlTextColor]]; + } else if(sender == sync_pasteboard_to_clipboard) { + [NSApp prefs_set_boolean:@PREFS_SYNC_PB_TO_CLIPBOARD value:[sync_pasteboard_to_clipboard intValue]]; + } else if(sender == sync_pasteboard_to_primary) { + [NSApp prefs_set_boolean:@PREFS_SYNC_PB_TO_PRIMARY value:[sync_pasteboard_to_primary intValue]]; + } else if(sender == sync_clipboard_to_pasteboard) { + [NSApp prefs_set_boolean:@PREFS_SYNC_CLIPBOARD_TO_PB value:[sync_clipboard_to_pasteboard intValue]]; + } else if(sender == sync_primary_immediately) { + [NSApp prefs_set_boolean:@PREFS_SYNC_PRIMARY_ON_SELECT value:[sync_primary_immediately intValue]]; + } [NSApp prefs_synchronize]; - - [sync_pasteboard_to_clipboard setEnabled:pbproxy_active]; - [sync_pasteboard_to_primary setEnabled:pbproxy_active]; - [sync_clipboard_to_pasteboard setEnabled:pbproxy_active]; - [sync_primary_immediately setEnabled:pbproxy_active]; - - // setEnabled doesn't do this... - [sync_text1 setTextColor:pbproxy_active ? [NSColor controlTextColor] : [NSColor disabledControlTextColor]]; - [sync_text2 setTextColor:pbproxy_active ? [NSColor controlTextColor] : [NSColor disabledControlTextColor]]; - DarwinSendDDXEvent(kXquartzReloadPreferences, 0); + DarwinSendDDXEvent(kXquartzReloadPreferences, 0); } - (IBAction) prefs_show:sender @@ -683,6 +704,7 @@ objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row [use_sysbeep setIntValue:quartzUseSysBeep]; [enable_keyequivs setIntValue:X11EnableKeyEquivalents]; [sync_keymap setIntValue:darwinSyncKeymap]; + [option_sends_alt setIntValue:quartzOptionSendsAlt]; [click_through setIntValue:[NSApp prefs_get_boolean:@PREFS_CLICK_THROUGH default:NO]]; [focus_follows_mouse setIntValue:[NSApp prefs_get_boolean:@PREFS_FFM default:NO]]; [focus_on_new_window setIntValue:[NSApp prefs_get_boolean:@PREFS_FOCUS_ON_NEW_WINDOW default:YES]]; diff --git a/xorg-server/hw/xquartz/bundle/Resources/Dutch.lproj/Localizable.strings b/xorg-server/hw/xquartz/bundle/Resources/Dutch.lproj/Localizable.strings index 40a843ee7..c36905cb1 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/Dutch.lproj/Localizable.strings and b/xorg-server/hw/xquartz/bundle/Resources/Dutch.lproj/Localizable.strings differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/Dutch.lproj/main.nib/keyedobjects.nib b/xorg-server/hw/xquartz/bundle/Resources/Dutch.lproj/main.nib/keyedobjects.nib index 9209e81fa..0e8eff5dd 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/Dutch.lproj/main.nib/keyedobjects.nib and b/xorg-server/hw/xquartz/bundle/Resources/Dutch.lproj/main.nib/keyedobjects.nib differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/English.lproj/main.nib/designable.nib b/xorg-server/hw/xquartz/bundle/Resources/English.lproj/main.nib/designable.nib index 94d01047c..7609393ba 100644 --- a/xorg-server/hw/xquartz/bundle/Resources/English.lproj/main.nib/designable.nib +++ b/xorg-server/hw/xquartz/bundle/Resources/English.lproj/main.nib/designable.nib @@ -1,29 +1,21 @@ - + - 1050 - 9L29 - 677 - 949.54 - 353.00 - - YES + 1040 + 10D573 + 761 + 1038.29 + 460.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 761 - - YES + + com.apple.InterfaceBuilder.CocoaPlugin - - - YES - - YES - - - YES - - - - YES + + + NSApplication @@ -37,8 +29,7 @@ MainMenu - - YES + X11 @@ -56,8 +47,7 @@ submenuAction: X11 - - YES + About X11 @@ -99,9 +89,7 @@ Services - - YES - + _NSServicesMenu @@ -185,7 +173,7 @@ - + _NSAppleMenu @@ -200,8 +188,7 @@ submenuAction: Applications - - YES + YES @@ -222,7 +209,7 @@ - + @@ -236,8 +223,7 @@ submenuAction: Edit - - YES + Copy @@ -247,7 +233,7 @@ - + @@ -263,8 +249,7 @@ Window - - YES + Close @@ -341,7 +326,7 @@ - + _NSWindowsMenu @@ -356,8 +341,7 @@ submenuAction: Help - - YES + X11 Help @@ -367,10 +351,10 @@ - + - + _NSMainMenu @@ -386,20 +370,19 @@ View - {3.40282e+38, 3.40282e+38} + {1.79769e+308, 1.79769e+308} {320, 240} - + 256 - - YES + 256 {{13, 10}, {458, 292}} - - YES + + 1 @@ -407,13 +390,13 @@ 256 - - YES + 256 {{18, 210}, {402, 18}} + YES 67239424 @@ -421,7 +404,7 @@ Emulate three button mouse LucidaGrande - 1.300000e+01 + 13 1044 @@ -441,6 +424,7 @@ 256 {{36, 60}, {385, 31}} + YES 67239424 @@ -448,7 +432,7 @@ When enabled, menu bar key equivalents may interfere with X11 applications that use the Meta modifier. LucidaGrande - 1.100000e+01 + 11 3100 @@ -458,7 +442,7 @@ controlColor 3 - MC42NjY2NjY2OQA + MC42NjY2NjY2NjY3AA @@ -477,6 +461,7 @@ 256 {{36, 162}, {385, 42}} + YES 67239424 @@ -494,6 +479,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg 256 {{18, 97}, {402, 18}} + YES 67239424 @@ -515,6 +501,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg 256 {{36, 126}, {385, 14}} + YES 67239424 @@ -531,6 +518,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg 256 {{18, 146}, {402, 18}} + YES 67239424 @@ -547,9 +535,49 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg 25 - + + + 256 + {{36, -1}, {385, 31}} + + + YES + + 67239424 + 4194304 + When enabled, the option keys send Alt_L and Alt_R X11 key symbols instead of Mode_switch. + + + + + + + + + 256 + {{18, 36}, {402, 18}} + + + YES + + 67239424 + 0 + Option keys send Alt_L and Alt_R + + + 1211912703 + 2 + + + + 200 + 25 + + + {{10, 33}, {438, 246}} + Input @@ -562,8 +590,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg 256 - - YES + 256 @@ -616,7 +643,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg 1 LucidaGrande - 1.300000e+01 + 13 16 @@ -645,8 +672,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg OtherViews - - YES + @@ -684,7 +710,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg 24 - + 3 YES @@ -701,7 +727,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg 67239424 4194304 - Q29sb3JzOgo + Colors: @@ -782,7 +808,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg - + {{10, 33}, {438, 246}} Output @@ -796,8 +822,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg 256 - - YES + 256 @@ -828,9 +853,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg 67239424 4194304 - RW5hYmxlcyB0aGUgImNvcHkiIG1lbnUgaXRlbSBhbmQgYWxsb3dzIGZvciBzeW5jaW5nIGJldHdlZW4g -dGhlIE9TWCBQYXN0ZWJvYXJkIGFuZCB0aGUgWDExIENMSVBCT0FSRCBhbmQgUFJJTUFSWSBidWZmZXJz -Lg + Enables the "copy" menu item and allows for syncing between the OSX Pasteboard and the X11 CLIPBOARD and PRIMARY buffers. @@ -953,7 +976,7 @@ Lg - + {{10, 33}, {438, 246}} Pasteboard @@ -967,8 +990,7 @@ Lg 256 - - YES + 256 @@ -1080,7 +1102,7 @@ Lg - + {{10, 33}, {438, 246}} Windows @@ -1091,8 +1113,7 @@ Lg 256 - - YES + 256 @@ -1144,9 +1165,7 @@ Lg 67239424 4194304 - TGF1bmNoaW5nIFgxMSB3aWxsIGNyZWF0ZSBYYXV0aG9yaXR5IGFjY2Vzcy1jb250cm9sIGtleXMuIElm -IHRoZSBzeXN0ZW0ncyBJUCBhZGRyZXNzIGNoYW5nZXMsIHRoZXNlIGtleXMgYmVjb21lIGludmFsaWQg -d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 + Launching X11 will create Xauthority access-control keys. If the system's IP address changes, these keys become invalid which may prevent X11 applications from launching. @@ -1185,30 +1204,31 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 - + {{10, 33}, {438, 246}} Security - + 0 YES YES - - YES + - + - + {484, 308} + + {{0, 0}, {1280, 938}} {320, 262} - {3.40282e+38, 3.40282e+38} + {1.79769e+308, 1.79769e+308} x11_prefs @@ -1221,13 +1241,12 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 View - {3.40282e+38, 3.40282e+38} + {1.79769e+308, 1.79769e+308} {320, 240} 256 - - YES + 265 @@ -1244,7 +1263,7 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 1 Helvetica - 1.300000e+01 + 13 16 @@ -1285,13 +1304,11 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 274 - - YES + 2304 - - YES + 256 @@ -1311,15 +1328,14 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 {{302, 0}, {16, 17}} - - YES + - 1.217310e+02 - 6.273100e+01 - 1.000000e+03 + 121.73099999999999 + 62.731000000000002 + 1000 - 75628032 - 0 + 75628096 + 2048 Name @@ -1351,12 +1367,12 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 - 9.900000e+01 - 4.000000e+01 - 1.000000e+03 + 99 + 40 + 1000 - 75628032 - 0 + 75628096 + 2048 Command @@ -1377,12 +1393,12 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 - 7.100000e+01 - 1.000000e+01 - 1.000000e+03 + 71 + 10 + 1000 - 67239424 - 0 + 75628096 + 2048 Shortcut @@ -1399,7 +1415,7 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 Text Cell LucidaGrande - 1.200000e+01 + 12 16 @@ -1417,9 +1433,9 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 YES - - 3.000000e+00 - 2.000000e+00 + + 3 + 2 6 @@ -1430,14 +1446,17 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 MC41AA - 1.700000e+01 + 17 1379958784 + + 1 -1 0 YES + 0 - + {{1, 17}, {301, 198}} @@ -1452,7 +1471,7 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 _doScroller: - 9.949238e-01 + 0.99492380000000002 @@ -1462,15 +1481,14 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 1 _doScroller: - 6.885246e-01 + 0.68852460000000004 2304 - - YES + - + {{1, 0}, {301, 17}} @@ -1479,7 +1497,7 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 4 - + {{20, 20}, {318, 231}} @@ -1488,7 +1506,6 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 - QSAAAEEgAABBmAAAQZgAAA @@ -1516,18 +1533,17 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 25 - + {454, 271} {{0, 0}, {1280, 938}} {320, 262} - {3.40282e+38, 3.40282e+38} + {1.79769e+308, 1.79769e+308} x11_apps Menu - - YES + YES @@ -1550,8 +1566,7 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 submenuAction: Applications - - YES + YES @@ -1565,23 +1580,22 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 - Q3VzdG9taXpl4oCmA + Customize… 1048576 2147483647 - + - + - + - - YES + copy: @@ -2126,64 +2140,74 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 300475 - + + + prefs_changed: + + + + 300480 + + + + option_sends_alt + + + + 300481 + + - - YES + 0 - - YES - + -2 - - RmlsZSdzIE93bmVyA + + File's Owner -1 - + First Responder -3 - + Application 29 - - YES + - - + + MainMenu 19 - - YES + - + 24 - - YES + @@ -2192,7 +2216,7 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 - + @@ -2238,17 +2262,15 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 56 - - YES + - + 57 - - YES + @@ -2261,7 +2283,7 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 - + @@ -2277,10 +2299,9 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 131 - - YES + - + @@ -2336,19 +2357,17 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 163 - - YES + - + 169 - - YES + - + @@ -2359,20 +2378,18 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 269 - - YES + - + 270 - - YES + - + @@ -2388,19 +2405,17 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 419 - - YES + - + 420 - - YES + - + @@ -2411,132 +2426,121 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 196 - + X11Controller 244 - - YES + - - + + PrefsPanel 245 - - YES + - + 348 - - YES + - + 349 - - YES + - + 351 - - YES + - + + + 363 - - YES + - + 364 - - YES + - + 365 - - YES + - + 368 - - YES + - + 369 - - YES + - + 370 - - YES + - + 352 - - YES + - + 350 - - YES + @@ -2545,170 +2549,153 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 - + 371 - - YES + - + 372 - - YES + - + 382 - - YES + - + 385 - - YES + - + 386 - - YES + - + 541 - - YES + - + 543 - - YES + - + 353 - - YES + - + 354 - - YES + - + 374 - - YES + - + 375 - - YES + - + 376 - - YES + - + 377 - - YES + - + 379 - - YES + - + 285 - - YES + - - + + EditPrograms 286 - - YES + - + 423 - - YES + - - + + DockMenu @@ -2719,20 +2706,18 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 526 - - YES + - + 527 - - YES + - + @@ -2788,10 +2773,9 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 100382 - - YES + - + @@ -2842,13 +2826,12 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 380 - - YES + - + @@ -2874,13 +2857,12 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 295 - - YES + - + @@ -2901,21 +2883,19 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 296 - - YES + - + 535 - - YES + - + @@ -2926,10 +2906,9 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 298 - - YES + - + @@ -2940,10 +2919,9 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 297 - - YES + - + @@ -2954,10 +2932,9 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 310 - - YES + - + @@ -2968,10 +2945,9 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 292 - - YES + - + @@ -2982,10 +2958,9 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 293 - - YES + - + @@ -2996,42 +2971,38 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 300337 - - YES + - + 300338 - - YES + - + 300358 - - YES + - + 300359 - - YES + - + @@ -3047,10 +3018,9 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 300362 - - YES + - + @@ -3061,10 +3031,9 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 300364 - - YES + - + @@ -3075,10 +3044,9 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 300368 - - YES + - + @@ -3089,10 +3057,9 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 300370 - - YES + - + @@ -3103,17 +3070,15 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 300421 - - YES + - + 300422 - - YES + @@ -3122,25 +3087,23 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 - + 300423 - - YES + - + 300424 - - YES + - + @@ -3156,10 +3119,9 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 300447 - - YES + - + @@ -3170,10 +3132,9 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 300451 - - YES + - + @@ -3184,10 +3145,9 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 300453 - - YES + - + @@ -3198,10 +3158,9 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 300455 - - YES + - + @@ -3212,10 +3171,9 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 300457 - - YES + - + @@ -3226,10 +3184,9 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 300459 - - YES + - + @@ -3240,10 +3197,9 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 300472 - - YES + - + @@ -3251,610 +3207,333 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 - - - - YES - - YES - -1.IBPluginDependency - -2.IBPluginDependency - -3.IBPluginDependency - -3.ImportedFromIB2 - 100292.IBPluginDependency - 100293.IBPluginDependency - 100295.IBPluginDependency - 100295.IBShouldRemoveOnLegacySave - 100310.IBPluginDependency - 100363.IBPluginDependency - 100364.IBPluginDependency - 100365.IBPluginDependency - 100368.IBPluginDependency - 100369.IBPluginDependency - 100370.IBPluginDependency - 100371.IBPluginDependency - 100372.IBPluginDependency - 100374.IBPluginDependency - 100375.IBPluginDependency - 100376.IBPluginDependency - 100377.IBPluginDependency - 100379.IBPluginDependency - 100382.IBPluginDependency - 100385.IBPluginDependency - 100386.IBPluginDependency - 100541.IBPluginDependency - 100543.IBPluginDependency - 129.IBPluginDependency - 129.ImportedFromIB2 - 130.IBPluginDependency - 130.ImportedFromIB2 - 131.IBPluginDependency - 131.ImportedFromIB2 - 134.IBPluginDependency - 134.ImportedFromIB2 - 136.IBPluginDependency - 136.ImportedFromIB2 - 143.IBPluginDependency - 143.ImportedFromIB2 - 144.IBPluginDependency - 144.ImportedFromIB2 - 145.IBPluginDependency - 145.ImportedFromIB2 - 149.IBPluginDependency - 149.ImportedFromIB2 - 150.IBPluginDependency - 150.ImportedFromIB2 - 157.IBPluginDependency - 157.ImportedFromIB2 - 163.IBPluginDependency - 163.ImportedFromIB2 - 169.IBEditorWindowLastContentRect - 169.IBPluginDependency - 169.ImportedFromIB2 - 169.editorWindowContentRectSynchronizationRect - 19.IBPluginDependency - 19.ImportedFromIB2 - 196.IBPluginDependency - 196.ImportedFromIB2 - 200295.IBPluginDependency - 200295.IBShouldRemoveOnLegacySave - 203.IBPluginDependency - 203.ImportedFromIB2 - 204.IBPluginDependency - 204.ImportedFromIB2 - 23.IBPluginDependency - 23.ImportedFromIB2 - 24.IBEditorWindowLastContentRect - 24.IBPluginDependency - 24.ImportedFromIB2 - 24.editorWindowContentRectSynchronizationRect - 244.IBEditorWindowLastContentRect - 244.IBWindowTemplateEditedContentRect - 244.ImportedFromIB2 - 244.editorWindowContentRectSynchronizationRect - 244.windowTemplate.hasMaxSize - 244.windowTemplate.hasMinSize - 244.windowTemplate.maxSize - 244.windowTemplate.minSize - 245.IBPluginDependency - 245.ImportedFromIB2 - 269.IBPluginDependency - 269.ImportedFromIB2 - 270.IBEditorWindowLastContentRect - 270.IBPluginDependency - 270.ImportedFromIB2 - 270.editorWindowContentRectSynchronizationRect - 272.IBPluginDependency - 272.ImportedFromIB2 - 285.IBEditorWindowLastContentRect - 285.IBViewEditorWindowController.showingBoundsRectangles - 285.IBViewEditorWindowController.showingLayoutRectangles - 285.IBWindowTemplateEditedContentRect - 285.ImportedFromIB2 - 285.editorWindowContentRectSynchronizationRect - 285.windowTemplate.hasMaxSize - 285.windowTemplate.hasMinSize - 285.windowTemplate.maxSize - 285.windowTemplate.minSize - 286.IBPluginDependency - 286.ImportedFromIB2 - 29.IBEditorWindowLastContentRect - 29.IBPluginDependency - 29.ImportedFromIB2 - 29.editorWindowContentRectSynchronizationRect - 292.IBPluginDependency - 292.ImportedFromIB2 - 293.IBPluginDependency - 293.ImportedFromIB2 - 295.IBPluginDependency - 295.ImportedFromIB2 - 296.IBPluginDependency - 296.ImportedFromIB2 - 297.IBPluginDependency - 297.ImportedFromIB2 - 298.IBPluginDependency - 298.ImportedFromIB2 - 300295.IBPluginDependency - 300295.IBShouldRemoveOnLegacySave - 300337.IBPluginDependency - 300337.ImportedFromIB2 - 300338.IBPluginDependency - 300338.ImportedFromIB2 - 300358.IBPluginDependency - 300358.ImportedFromIB2 - 300359.IBPluginDependency - 300359.ImportedFromIB2 - 300360.IBPluginDependency - 300361.IBPluginDependency - 300362.IBPluginDependency - 300362.ImportedFromIB2 - 300363.IBPluginDependency - 300364.IBPluginDependency - 300364.ImportedFromIB2 - 300365.IBPluginDependency - 300368.IBPluginDependency - 300368.ImportedFromIB2 - 300369.IBPluginDependency - 300370.IBPluginDependency - 300370.ImportedFromIB2 - 300371.IBPluginDependency - 300421.IBPluginDependency - 300421.ImportedFromIB2 - 300422.IBPluginDependency - 300422.ImportedFromIB2 - 300423.IBPluginDependency - 300423.ImportedFromIB2 - 300424.IBPluginDependency - 300424.ImportedFromIB2 - 300440.IBPluginDependency - 300441.IBPluginDependency - 300447.IBPluginDependency - 300447.ImportedFromIB2 - 300450.IBPluginDependency - 300451.IBPluginDependency - 300451.ImportedFromIB2 - 300452.IBPluginDependency - 300453.IBPluginDependency - 300453.ImportedFromIB2 - 300454.IBPluginDependency - 300455.IBPluginDependency - 300455.ImportedFromIB2 - 300456.IBPluginDependency - 300457.IBPluginDependency - 300457.ImportedFromIB2 - 300458.IBPluginDependency - 300459.IBPluginDependency - 300459.ImportedFromIB2 - 300460.IBPluginDependency - 300472.IBPluginDependency - 300472.ImportedFromIB2 - 300473.IBPluginDependency - 305.IBPluginDependency - 305.ImportedFromIB2 - 310.IBPluginDependency - 310.ImportedFromIB2 - 348.IBPluginDependency - 348.ImportedFromIB2 - 349.IBPluginDependency - 349.ImportedFromIB2 - 350.IBPluginDependency - 350.ImportedFromIB2 - 351.IBPluginDependency - 351.ImportedFromIB2 - 352.IBPluginDependency - 352.ImportedFromIB2 - 353.IBPluginDependency - 353.ImportedFromIB2 - 354.IBPluginDependency - 354.ImportedFromIB2 - 363.IBPluginDependency - 363.ImportedFromIB2 - 364.IBPluginDependency - 364.ImportedFromIB2 - 365.IBPluginDependency - 365.ImportedFromIB2 - 368.IBPluginDependency - 368.ImportedFromIB2 - 369.IBPluginDependency - 369.ImportedFromIB2 - 370.IBPluginDependency - 370.ImportedFromIB2 - 371.IBPluginDependency - 371.ImportedFromIB2 - 372.IBPluginDependency - 372.ImportedFromIB2 - 374.IBPluginDependency - 374.ImportedFromIB2 - 375.IBPluginDependency - 375.ImportedFromIB2 - 376.IBPluginDependency - 376.ImportedFromIB2 - 377.IBPluginDependency - 377.ImportedFromIB2 - 379.IBPluginDependency - 379.ImportedFromIB2 - 380.IBPluginDependency - 380.ImportedFromIB2 - 381.IBPluginDependency - 381.ImportedFromIB2 - 382.IBPluginDependency - 382.ImportedFromIB2 - 383.IBPluginDependency - 383.ImportedFromIB2 - 384.IBPluginDependency - 384.ImportedFromIB2 - 385.IBPluginDependency - 385.ImportedFromIB2 - 386.IBPluginDependency - 386.ImportedFromIB2 - 419.IBPluginDependency - 419.ImportedFromIB2 - 420.IBPluginDependency - 420.ImportedFromIB2 - 421.IBPluginDependency - 421.ImportedFromIB2 - 423.IBPluginDependency - 423.ImportedFromIB2 - 435.IBPluginDependency - 435.ImportedFromIB2 - 5.IBPluginDependency - 5.ImportedFromIB2 - 524.IBPluginDependency - 524.ImportedFromIB2 - 526.IBPluginDependency - 526.ImportedFromIB2 - 527.IBPluginDependency - 527.ImportedFromIB2 - 532.IBPluginDependency - 532.ImportedFromIB2 - 533.IBPluginDependency - 533.ImportedFromIB2 - 535.IBPluginDependency - 535.ImportedFromIB2 - 536.IBPluginDependency - 536.ImportedFromIB2 - 537.IBPluginDependency - 537.ImportedFromIB2 - 538.IBPluginDependency - 538.ImportedFromIB2 - 541.IBPluginDependency - 541.ImportedFromIB2 - 543.IBPluginDependency - 543.ImportedFromIB2 - 544.IBPluginDependency - 544.ImportedFromIB2 - 545.IBPluginDependency - 545.ImportedFromIB2 - 56.IBPluginDependency - 56.ImportedFromIB2 - 57.IBEditorWindowLastContentRect - 57.IBPluginDependency - 57.ImportedFromIB2 - 57.editorWindowContentRectSynchronizationRect - 573.IBPluginDependency - 573.ImportedFromIB2 - 574.IBPluginDependency - 574.ImportedFromIB2 - 575.IBPluginDependency - 575.ImportedFromIB2 - 58.IBPluginDependency - 58.ImportedFromIB2 - 92.IBPluginDependency - 92.ImportedFromIB2 - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{168, 821}, {113, 23}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{202, 626}, {154, 153}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{349, 868}, {315, 143}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{271, 666}, {301, 153}} - {{437, 749}, {484, 308}} - {{437, 749}, {484, 308}} - - {{184, 290}, {481, 345}} - - - {3.40282e+38, 3.40282e+38} - {320, 240} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{58, 803}, {155, 33}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{100, 746}, {155, 33}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{68, 585}, {454, 271}} - - - {{68, 585}, {454, 271}} - - {{433, 406}, {486, 327}} - - - {3.40282e+38, 3.40282e+38} - {320, 240} - com.apple.InterfaceBuilder.CocoaPlugin - - {{145, 1011}, {336, 20}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{67, 819}, {336, 20}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{20, 641}, {218, 203}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{79, 616}, {218, 203}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - - - - YES - - YES - - - YES - + + 300476 + + + + + + + + 300477 + + + + + + + + 300478 + + + + + 300479 + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{168, 821}, {113, 23}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{202, 626}, {154, 153}} + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{349, 868}, {315, 143}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{271, 666}, {301, 153}} + {{507, 565}, {484, 308}} + com.apple.InterfaceBuilder.CocoaPlugin + {{507, 565}, {484, 308}} + + {{184, 290}, {481, 345}} + + + {3.40282e+38, 3.40282e+38} + {320, 240} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{58, 803}, {155, 33}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{100, 746}, {155, 33}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{68, 585}, {454, 271}} + com.apple.InterfaceBuilder.CocoaPlugin + + + {{68, 585}, {454, 271}} + + {{433, 406}, {486, 327}} + + + {3.40282e+38, 3.40282e+38} + {320, 240} + com.apple.InterfaceBuilder.CocoaPlugin + + {{145, 1011}, {336, 20}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{67, 819}, {336, 20}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{20, 641}, {218, 203}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{79, 616}, {218, 203}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + - - YES - - YES - - - YES - - + - 300475 + 300481 - - YES + FirstResponder NSObject @@ -3879,131 +3558,81 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 - - - YES + + X11Controller NSObject - - YES - - YES - apps_table_delete: - apps_table_done: - apps_table_duplicate: - apps_table_new: - apps_table_show: - bring_to_front: - close_window: - enable_fullscreen_changed: - minimize_window: - next_window: - prefs_changed: - prefs_show: - previous_window: - quit: - toggle_fullscreen: - x11_help: - zoom_window: - - - YES - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - apps_separator - apps_table - click_through - copy_menu_item - depth - dock_apps_menu - dock_menu - dock_window_separator - enable_auth - enable_fullscreen - enable_fullscreen_menu - enable_keyequivs - enable_tcp - fake_buttons - focus_follows_mouse - focus_on_new_window - prefs_panel - sync_clipboard_to_pasteboard - sync_keymap - sync_pasteboard - sync_pasteboard_to_clipboard - sync_pasteboard_to_primary - sync_primary_immediately - sync_text1 - sync_text2 - toggle_fullscreen_item - use_sysbeep - window_separator - x11_about_item - - - YES - NSMenuItem - NSTableView - NSButton - NSMenuItem - NSPopUpButton - NSMenu - NSMenu - NSMenuItem - NSButton - NSButton - NSButton - NSButton - NSButton - NSButton - NSButton - NSButton - NSPanel - NSButton - NSButton - NSButton - NSButton - NSButton - NSButton - NSTextField - NSTextField - NSMenuItem - NSButton - NSMenuItem - NSMenuItem - - + + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + + + NSMenuItem + NSTableView + NSButton + NSMenuItem + NSPopUpButton + NSMenu + NSMenu + NSMenuItem + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSPanel + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSTextField + NSTextField + NSMenuItem + NSButton + NSMenuItem + NSMenuItem + IBDocumentRelativeSource ../../../X11Controller.h - + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + YES ../X11.xcodeproj 3 + + {9, 8} + {7, 2} + diff --git a/xorg-server/hw/xquartz/bundle/Resources/English.lproj/main.nib/keyedobjects.nib b/xorg-server/hw/xquartz/bundle/Resources/English.lproj/main.nib/keyedobjects.nib index fee8f1ce9..888424dfc 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/English.lproj/main.nib/keyedobjects.nib and b/xorg-server/hw/xquartz/bundle/Resources/English.lproj/main.nib/keyedobjects.nib differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/French.lproj/Localizable.strings b/xorg-server/hw/xquartz/bundle/Resources/French.lproj/Localizable.strings index 1dd2e0601..81ecfc14b 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/French.lproj/Localizable.strings and b/xorg-server/hw/xquartz/bundle/Resources/French.lproj/Localizable.strings differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/French.lproj/main.nib/keyedobjects.nib b/xorg-server/hw/xquartz/bundle/Resources/French.lproj/main.nib/keyedobjects.nib index 9c65224a7..689405d29 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/French.lproj/main.nib/keyedobjects.nib and b/xorg-server/hw/xquartz/bundle/Resources/French.lproj/main.nib/keyedobjects.nib differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/German.lproj/Localizable.strings b/xorg-server/hw/xquartz/bundle/Resources/German.lproj/Localizable.strings index 48c4e29c4..8c29a2b57 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/German.lproj/Localizable.strings and b/xorg-server/hw/xquartz/bundle/Resources/German.lproj/Localizable.strings differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/German.lproj/main.nib/keyedobjects.nib b/xorg-server/hw/xquartz/bundle/Resources/German.lproj/main.nib/keyedobjects.nib index 1cc64172e..467adef59 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/German.lproj/main.nib/keyedobjects.nib and b/xorg-server/hw/xquartz/bundle/Resources/German.lproj/main.nib/keyedobjects.nib differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/Italian.lproj/Localizable.strings b/xorg-server/hw/xquartz/bundle/Resources/Italian.lproj/Localizable.strings index 560a1fe40..de1d777bb 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/Italian.lproj/Localizable.strings and b/xorg-server/hw/xquartz/bundle/Resources/Italian.lproj/Localizable.strings differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/Italian.lproj/main.nib/keyedobjects.nib b/xorg-server/hw/xquartz/bundle/Resources/Italian.lproj/main.nib/keyedobjects.nib index 3c95f407b..74222e9c3 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/Italian.lproj/main.nib/keyedobjects.nib and b/xorg-server/hw/xquartz/bundle/Resources/Italian.lproj/main.nib/keyedobjects.nib differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/Japanese.lproj/Localizable.strings b/xorg-server/hw/xquartz/bundle/Resources/Japanese.lproj/Localizable.strings index 23c1879a7..54adc1670 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/Japanese.lproj/Localizable.strings and b/xorg-server/hw/xquartz/bundle/Resources/Japanese.lproj/Localizable.strings differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/Japanese.lproj/main.nib/keyedobjects.nib b/xorg-server/hw/xquartz/bundle/Resources/Japanese.lproj/main.nib/keyedobjects.nib index 7c96bfaec..7728acbb0 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/Japanese.lproj/main.nib/keyedobjects.nib and b/xorg-server/hw/xquartz/bundle/Resources/Japanese.lproj/main.nib/keyedobjects.nib differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/Spanish.lproj/Localizable.strings b/xorg-server/hw/xquartz/bundle/Resources/Spanish.lproj/Localizable.strings index 156f61841..ec90bf90c 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/Spanish.lproj/Localizable.strings and b/xorg-server/hw/xquartz/bundle/Resources/Spanish.lproj/Localizable.strings differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/Spanish.lproj/main.nib/keyedobjects.nib b/xorg-server/hw/xquartz/bundle/Resources/Spanish.lproj/main.nib/keyedobjects.nib index 7e584058b..408b7eea2 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/Spanish.lproj/main.nib/keyedobjects.nib and b/xorg-server/hw/xquartz/bundle/Resources/Spanish.lproj/main.nib/keyedobjects.nib differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/da.lproj/Localizable.strings b/xorg-server/hw/xquartz/bundle/Resources/da.lproj/Localizable.strings index dfe842313..e40b4d126 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/da.lproj/Localizable.strings and b/xorg-server/hw/xquartz/bundle/Resources/da.lproj/Localizable.strings differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/da.lproj/main.nib/keyedobjects.nib b/xorg-server/hw/xquartz/bundle/Resources/da.lproj/main.nib/keyedobjects.nib index df8c01bf4..e0c669aa2 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/da.lproj/main.nib/keyedobjects.nib and b/xorg-server/hw/xquartz/bundle/Resources/da.lproj/main.nib/keyedobjects.nib differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/fi.lproj/Localizable.strings b/xorg-server/hw/xquartz/bundle/Resources/fi.lproj/Localizable.strings index 7135063cc..f7c621915 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/fi.lproj/Localizable.strings and b/xorg-server/hw/xquartz/bundle/Resources/fi.lproj/Localizable.strings differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/fi.lproj/main.nib/keyedobjects.nib b/xorg-server/hw/xquartz/bundle/Resources/fi.lproj/main.nib/keyedobjects.nib index e444ebf40..b84872e19 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/fi.lproj/main.nib/keyedobjects.nib and b/xorg-server/hw/xquartz/bundle/Resources/fi.lproj/main.nib/keyedobjects.nib differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/ko.lproj/Localizable.strings b/xorg-server/hw/xquartz/bundle/Resources/ko.lproj/Localizable.strings index 33e0da528..60c9f8830 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/ko.lproj/Localizable.strings and b/xorg-server/hw/xquartz/bundle/Resources/ko.lproj/Localizable.strings differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/ko.lproj/main.nib/keyedobjects.nib b/xorg-server/hw/xquartz/bundle/Resources/ko.lproj/main.nib/keyedobjects.nib index f8d3ac4b0..f60e5d4e7 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/ko.lproj/main.nib/keyedobjects.nib and b/xorg-server/hw/xquartz/bundle/Resources/ko.lproj/main.nib/keyedobjects.nib differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/no.lproj/Localizable.strings b/xorg-server/hw/xquartz/bundle/Resources/no.lproj/Localizable.strings index 68d86fd78..506282a4e 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/no.lproj/Localizable.strings and b/xorg-server/hw/xquartz/bundle/Resources/no.lproj/Localizable.strings differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/no.lproj/main.nib/keyedobjects.nib b/xorg-server/hw/xquartz/bundle/Resources/no.lproj/main.nib/keyedobjects.nib index 562302f71..30933f438 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/no.lproj/main.nib/keyedobjects.nib and b/xorg-server/hw/xquartz/bundle/Resources/no.lproj/main.nib/keyedobjects.nib differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/pl.lproj/Localizable.strings b/xorg-server/hw/xquartz/bundle/Resources/pl.lproj/Localizable.strings index 9a709d306..fe1ebfedd 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/pl.lproj/Localizable.strings and b/xorg-server/hw/xquartz/bundle/Resources/pl.lproj/Localizable.strings differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/pl.lproj/main.nib/keyedobjects.nib b/xorg-server/hw/xquartz/bundle/Resources/pl.lproj/main.nib/keyedobjects.nib index d9aedb230..e20f6bf99 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/pl.lproj/main.nib/keyedobjects.nib and b/xorg-server/hw/xquartz/bundle/Resources/pl.lproj/main.nib/keyedobjects.nib differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/pt.lproj/Localizable.strings b/xorg-server/hw/xquartz/bundle/Resources/pt.lproj/Localizable.strings index 8cd9fecef..026c9db6e 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/pt.lproj/Localizable.strings and b/xorg-server/hw/xquartz/bundle/Resources/pt.lproj/Localizable.strings differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/pt.lproj/main.nib/keyedobjects.nib b/xorg-server/hw/xquartz/bundle/Resources/pt.lproj/main.nib/keyedobjects.nib index 3dbd44f7a..5f08c8bf2 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/pt.lproj/main.nib/keyedobjects.nib and b/xorg-server/hw/xquartz/bundle/Resources/pt.lproj/main.nib/keyedobjects.nib differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/pt_PT.lproj/Localizable.strings b/xorg-server/hw/xquartz/bundle/Resources/pt_PT.lproj/Localizable.strings index 72d22b5d6..74bd3a0dc 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/pt_PT.lproj/Localizable.strings and b/xorg-server/hw/xquartz/bundle/Resources/pt_PT.lproj/Localizable.strings differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/pt_PT.lproj/main.nib/keyedobjects.nib b/xorg-server/hw/xquartz/bundle/Resources/pt_PT.lproj/main.nib/keyedobjects.nib index e48620b80..ff75065ec 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/pt_PT.lproj/main.nib/keyedobjects.nib and b/xorg-server/hw/xquartz/bundle/Resources/pt_PT.lproj/main.nib/keyedobjects.nib differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/ru.lproj/Localizable.strings b/xorg-server/hw/xquartz/bundle/Resources/ru.lproj/Localizable.strings index f172a8f72..dde9c3dce 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/ru.lproj/Localizable.strings and b/xorg-server/hw/xquartz/bundle/Resources/ru.lproj/Localizable.strings differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/ru.lproj/main.nib/keyedobjects.nib b/xorg-server/hw/xquartz/bundle/Resources/ru.lproj/main.nib/keyedobjects.nib index 5e11dcc78..0342bb5de 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/ru.lproj/main.nib/keyedobjects.nib and b/xorg-server/hw/xquartz/bundle/Resources/ru.lproj/main.nib/keyedobjects.nib differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/sv.lproj/Localizable.strings b/xorg-server/hw/xquartz/bundle/Resources/sv.lproj/Localizable.strings index ccd68d059..c0cbdfb9b 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/sv.lproj/Localizable.strings and b/xorg-server/hw/xquartz/bundle/Resources/sv.lproj/Localizable.strings differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/sv.lproj/main.nib/keyedobjects.nib b/xorg-server/hw/xquartz/bundle/Resources/sv.lproj/main.nib/keyedobjects.nib index 897aefa80..122483d6e 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/sv.lproj/main.nib/keyedobjects.nib and b/xorg-server/hw/xquartz/bundle/Resources/sv.lproj/main.nib/keyedobjects.nib differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/zh_CN.lproj/Localizable.strings b/xorg-server/hw/xquartz/bundle/Resources/zh_CN.lproj/Localizable.strings index 8be59dade..7706fe541 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/zh_CN.lproj/Localizable.strings and b/xorg-server/hw/xquartz/bundle/Resources/zh_CN.lproj/Localizable.strings differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/zh_CN.lproj/main.nib/keyedobjects.nib b/xorg-server/hw/xquartz/bundle/Resources/zh_CN.lproj/main.nib/keyedobjects.nib index 663ae241e..6ceb04350 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/zh_CN.lproj/main.nib/keyedobjects.nib and b/xorg-server/hw/xquartz/bundle/Resources/zh_CN.lproj/main.nib/keyedobjects.nib differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/zh_TW.lproj/Localizable.strings b/xorg-server/hw/xquartz/bundle/Resources/zh_TW.lproj/Localizable.strings index ba09668c0..2bce6475f 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/zh_TW.lproj/Localizable.strings and b/xorg-server/hw/xquartz/bundle/Resources/zh_TW.lproj/Localizable.strings differ diff --git a/xorg-server/hw/xquartz/bundle/Resources/zh_TW.lproj/main.nib/keyedobjects.nib b/xorg-server/hw/xquartz/bundle/Resources/zh_TW.lproj/main.nib/keyedobjects.nib index 12c5a14e8..b65ef07e2 100644 Binary files a/xorg-server/hw/xquartz/bundle/Resources/zh_TW.lproj/main.nib/keyedobjects.nib and b/xorg-server/hw/xquartz/bundle/Resources/zh_TW.lproj/main.nib/keyedobjects.nib differ diff --git a/xorg-server/hw/xquartz/doc/Makefile.am b/xorg-server/hw/xquartz/doc/Makefile.am index 7310de353..6c68c845e 100644 --- a/xorg-server/hw/xquartz/doc/Makefile.am +++ b/xorg-server/hw/xquartz/doc/Makefile.am @@ -7,6 +7,8 @@ CLEANFILES = $(appman_PROCESSED) $(appman_DATA) include $(top_srcdir)/cpprules.in +MANDEFS += -D__laucnd_id_prefix__=$(LAUNCHD_ID_PREFIX) + .man.$(APP_MAN_SUFFIX): $(AM_V_at)cp $< $@ diff --git a/xorg-server/hw/xquartz/doc/Xquartz.man.pre b/xorg-server/hw/xquartz/doc/Xquartz.man.pre index 04bbee30c..447194740 100644 --- a/xorg-server/hw/xquartz/doc/Xquartz.man.pre +++ b/xorg-server/hw/xquartz/doc/Xquartz.man.pre @@ -16,69 +16,72 @@ OS X handles the desktop background. .SH CUSTOMIZATION \fIXquartz\fP can be customized using the defaults(1) command. The available options are: .TP 8 -.B defaults write org.x.X11 enable_fake_buttons -boolean true +.B defaults write __laucnd_id_prefix__.X11 enable_fake_buttons -boolean true Emulates a 3 button mouse using modifier keys. By default, the Command modifier is used to emulate button 2 and Option is used for button 3. Thus, clicking the first mouse button while holding down Command will act like clicking button 2. Holding down Option will simulate button 3. .TP 8 -.B defaults write org.x.X11 fake_button2 \fImodifiers\fP +.B defaults write __laucnd_id_prefix__.X11 fake_button2 \fImodifiers\fP Change the modifier keys used to emulate the second mouse button. By default, Command is used to emulate the second button. Any combination of the following modifier names may be used: {l,r,}shift, {l,r,}option, {l,r,}control, {l,r,}command, fn .TP 8 -.B defaults write org.x.X11 fake_button3 \fImodifiers\fP +.B defaults write __laucnd_id_prefix__.X11 fake_button3 \fImodifiers\fP Change the modifier keys used to emulate the second mouse button. By default, Command is used to emulate the second button. Any combination of the following modifier names may be used: {l,r,}shift, {l,r,}option, {l,r,}control, {l,r,}command, fn .TP 8 -.B defaults write org.x.X11 fullscreen_hotkeys -boolean true +.B defaults write __laucnd_id_prefix__.X11 fullscreen_hotkeys -boolean true Enable OSX hotkeys while in fullscreen .TP 8 -.B defaults write org.x.X11 fullscreen_menu -boolean true +.B defaults write __laucnd_id_prefix__.X11 fullscreen_menu -boolean true Show the OSX menu while in fullscreen .TP 8 -.B defaults write org.x.X11 no_quit_alert -boolean true +.B defaults write __laucnd_id_prefix__.X11 no_quit_alert -boolean true Disables the alert dialog displayed when attempting to quit X11. .TP 8 -.B defaults write org.x.X11 no_auth -boolean true +.B defaults write __laucnd_id_prefix__.X11 no_auth -boolean true Stops the X server requiring that clients authenticate themselves when connecting. See Xsecurity(__miscmansuffix__). .TP 8 -.B defaults write org.x.X11 nolisten_tcp -boolean false +.B defaults write __laucnd_id_prefix__.X11 nolisten_tcp -boolean false This will tell the server to listen and accept TCP connections. Doing this without enabling xauth is a possible security concern. See Xsecurity(__miscmansuffix__). .TP 8 -.B defaults write org.x.X11 enable_system_beep -boolean false +.B defaults write __laucnd_id_prefix__.X11 enable_system_beep -boolean false Don't use the standard system beep effect for X11 alerts. .TP 8 -.B defaults write org.x.X11 enable_key_equivalents -boolean false +.B defaults write __laucnd_id_prefix__.X11 enable_key_equivalents -boolean false Disable menu keyboard equivalents while X11 windows are focused. .TP 8 -.B defaults write org.x.X11 depth \fIdepth\fP +.B defaults write __laucnd_id_prefix__.X11 depth \fIdepth\fP Specifies the color bit depth to use. Currently only 15, and 24 color bits per pixel are supported. If not specified, or a value of -1 is specified, defaults to the depth of the main display. .TP 8 -.B defaults write org.x.X11 sync_keymap -boolean true +.B defaults write __laucnd_id_prefix__.X11 sync_keymap -boolean true Keep the X11 keymap up to date with the OSX system keymap. .TP 8 -.B defaults write org.x.X11 sync_pasteboard -boolean true +.B defaults write __laucnd_id_prefix__.X11 option_sends_alt -boolean true +The Option key will send Alt_L and Alt_R instead of Mode_switch. +.TP 8 +.B defaults write __laucnd_id_prefix__.X11 sync_pasteboard -boolean true Enable syncing between the OSX pasteboard and clipboard/primary selection buffers in X11. This option needs to be true for any of the other pasteboard sync options to have an effect. .TP 8 -.B defaults write org.x.X11 sync_pasteboard_to_clipboard -boolean true +.B defaults write __laucnd_id_prefix__.X11 sync_pasteboard_to_clipboard -boolean true Update the X11 CLIPBOARD when the OSX NSPasteboard is updated. .TP 8 -.B defaults write org.x.X11 sync_pasteboard_to_primary -boolean true +.B defaults write __laucnd_id_prefix__.X11 sync_pasteboard_to_primary -boolean true Update the the X11 PRIMARY buffer when the OSX NSPasteboard is updated. .TP 8 -.B defaults write org.x.X11 sync_clipboard_to_pasteboard -boolean true +.B defaults write __laucnd_id_prefix__.X11 sync_clipboard_to_pasteboard -boolean true Update the the OSX NSPasteboard when the X11 CLIPBOARD is updated. Note that enabling this option causes the clipboard synchronization to act as a clipboard manager in X11. This makes it impossible to use xclipboard, klipper, or any other such clipboard managers. If you want to use any of these programs, you must disable this option. .TP 8 -.B defaults write org.x.X11 sync_primary_on_select -boolean true +.B defaults write __laucnd_id_prefix__.X11 sync_primary_on_select -boolean true This option defaults to false and is provided only "for experts." It updates the NSPasteboard whenever a new X11 selection is made (rather than requiring you to hit cmd-c to copy the selection to the NSPasteboard). Since the X11 protocol does not require applications to send notification when they change selection, this might not work in all cases (if you run into this problem, try selecting text in another application first, then selecting the text you want). .TP 8 -.B defaults write org.x.X11 enable_test_extensions -boolean true +.B defaults write __laucnd_id_prefix__.X11 enable_test_extensions -boolean true This option defaults to false and is only accessible through the command line. Enable this option to turn on the DEC-XTRAP, RECORD, and XTEST extensions in the server. .SH OPTIONS .PP diff --git a/xorg-server/hw/xquartz/quartz.c b/xorg-server/hw/xquartz/quartz.c index a611854e7..a8c0d4b47 100644 --- a/xorg-server/hw/xquartz/quartz.c +++ b/xorg-server/hw/xquartz/quartz.c @@ -79,6 +79,7 @@ int aquaMenuBarHeight = 0; QuartzModeProcsPtr quartzProcs = NULL; const char *quartzOpenGLBundle = NULL; int quartzFullscreenDisableHotkeys = TRUE; +int quartzOptionSendsAlt = FALSE; #if defined(RANDR) && !defined(FAKE_RANDR) Bool QuartzRandRGetInfo (ScreenPtr pScreen, Rotation *rotations) { diff --git a/xorg-server/hw/xquartz/quartzCommon.h b/xorg-server/hw/xquartz/quartzCommon.h index 1c0eeba9c..8ab70f22a 100644 --- a/xorg-server/hw/xquartz/quartzCommon.h +++ b/xorg-server/hw/xquartz/quartzCommon.h @@ -60,6 +60,7 @@ extern int focusOnNewWindow; extern int quartzUseAGL; extern int quartzEnableKeyEquivalents; extern int quartzFullscreenDisableHotkeys; +extern int quartzOptionSendsAlt; // Other shared data extern int quartzServerVisible; diff --git a/xorg-server/hw/xquartz/quartzKeyboard.c b/xorg-server/hw/xquartz/quartzKeyboard.c index a4a0b08bd..745333f03 100644 --- a/xorg-server/hw/xquartz/quartzKeyboard.c +++ b/xorg-server/hw/xquartz/quartzKeyboard.c @@ -39,6 +39,7 @@ #define HACK_MISSING 1 #define HACK_KEYPAD 1 +#define HACK_BLACKLIST 1 #include #include @@ -49,6 +50,7 @@ #include "quartzCommon.h" #include "darwin.h" +#include "darwinEvents.h" #include "quartzKeyboard.h" #include "quartzAudio.h" @@ -83,6 +85,7 @@ enum { #define UKEYSYM(u) ((u) | 0x01000000) +#if HACK_MISSING /* Table of keycode->keysym mappings we use to fallback on for important keys that are often not in the Unicode mapping. */ @@ -117,7 +120,9 @@ const static struct { {107, XK_F14}, {113, XK_F15}, }; +#endif +#if HACK_KEYPAD /* Table of keycode->old,new-keysym mappings we use to fixup the numeric keypad entries. */ @@ -143,6 +148,17 @@ const static struct { {91, XK_8, XK_KP_8}, {92, XK_9, XK_KP_9}, }; +#endif + +#if HACK_BLACKLIST +/* wine notepad produces wrong characters on shift+arrow + * http://xquartz.macosforge.org/trac/ticket/295 + * http://developer.apple.com/legacy/mac/library/documentation/mac/Text/Text-579.html + * + * legacy Mac keycodes for arrow keys that shift-modify to math symbols + */ +const static unsigned short keycode_blacklist[] = {66, 70, 72, 77}; +#endif /* Table mapping normal keysyms to their dead equivalents. FIXME: all the unicode keysyms (apart from circumflex) were guessed. */ @@ -176,6 +192,12 @@ const static struct { {UKEYSYM (0x31b), XK_dead_horn}, /* COMBINING HORN */ }; +typedef struct darwinKeyboardInfo_struct { + CARD8 modMap[MAP_LENGTH]; + KeySym keyMap[MAP_LENGTH * GLYPHS_PER_KEY]; + unsigned char modifierKeycodes[32][2]; +} darwinKeyboardInfo; + darwinKeyboardInfo keyInfo; pthread_mutex_t keyInfo_mutex = PTHREAD_MUTEX_INITIALIZER; @@ -240,7 +262,8 @@ static void DarwinBuildModifierMaps(darwinKeyboardInfo *info) { case XK_Alt_L: info->modifierKeycodes[NX_MODIFIERKEY_ALTERNATE][0] = i; info->modMap[MIN_KEYCODE + i] = Mod1Mask; - *k = XK_Mode_switch; // Yes, this is ugly. This needs to be cleaned up when we integrate quartzKeyboard with this code and refactor. + if(!quartzOptionSendsAlt) + *k = XK_Mode_switch; // Yes, this is ugly. This needs to be cleaned up when we integrate quartzKeyboard with this code and refactor. break; case XK_Alt_R: @@ -249,7 +272,8 @@ static void DarwinBuildModifierMaps(darwinKeyboardInfo *info) { #else info->modifierKeycodes[NX_MODIFIERKEY_ALTERNATE][0] = i; #endif - *k = XK_Mode_switch; // Yes, this is ugly. This needs to be cleaned up when we integrate quartzKeyboard with this code and refactor. + if(!quartzOptionSendsAlt) + *k = XK_Mode_switch; // Yes, this is ugly. This needs to be cleaned up when we integrate quartzKeyboard with this code and refactor. info->modMap[MIN_KEYCODE + i] = Mod1Mask; break; @@ -632,7 +656,7 @@ static KeySym make_dead_key(KeySym in) { return in; } -Bool QuartzReadSystemKeymap(darwinKeyboardInfo *info) { +static Bool QuartzReadSystemKeymap(darwinKeyboardInfo *info) { #if !defined(__LP64__) || MAC_OS_X_VERSION_MIN_REQUIRED < 1050 KeyboardLayoutRef key_layout; int is_uchr = 1; @@ -772,34 +796,55 @@ Bool QuartzReadSystemKeymap(darwinKeyboardInfo *info) { if (k[3] == k[2]) k[3] = NoSymbol; if (k[1] == k[0]) k[1] = NoSymbol; if (k[0] == k[2] && k[1] == k[3]) k[2] = k[3] = NoSymbol; + if (k[3] == k[0] && k[2] == k[1] && k[2] == NoSymbol) k[3] = NoSymbol; } +#if HACK_MISSING /* Fix up some things that are normally missing.. */ - - if (HACK_MISSING) { - for (i = 0; i < sizeof (known_keys) / sizeof (known_keys[0]); i++) { - k = info->keyMap + known_keys[i].keycode * GLYPHS_PER_KEY; - - if (k[0] == NoSymbol && k[1] == NoSymbol - && k[2] == NoSymbol && k[3] == NoSymbol) - k[0] = known_keys[i].keysym; - } + + for (i = 0; i < sizeof (known_keys) / sizeof (known_keys[0]); i++) { + k = info->keyMap + known_keys[i].keycode * GLYPHS_PER_KEY; + + if ( k[0] == NoSymbol && k[1] == NoSymbol + && k[2] == NoSymbol && k[3] == NoSymbol) + k[0] = known_keys[i].keysym; } - +#endif + +#if HACK_KEYPAD /* And some more things. We find the right symbols for the numeric - keypad, but not the KP_ keysyms. So try to convert known keycodes. */ - - if (HACK_KEYPAD) { - for (i = 0; i < sizeof (known_numeric_keys) - / sizeof (known_numeric_keys[0]); i++) { - k = info->keyMap + known_numeric_keys[i].keycode * GLYPHS_PER_KEY; - - if (k[0] == known_numeric_keys[i].normal) - k[0] = known_numeric_keys[i].keypad; - } + keypad, but not the KP_ keysyms. So try to convert known keycodes. */ + for (i = 0; i < sizeof (known_numeric_keys) / sizeof (known_numeric_keys[0]); i++) { + k = info->keyMap + known_numeric_keys[i].keycode * GLYPHS_PER_KEY; + + if (k[0] == known_numeric_keys[i].normal) + k[0] = known_numeric_keys[i].keypad; } +#endif + +#if HACK_BLACKLIST + for (i = 0; i < sizeof (keycode_blacklist) / sizeof (keycode_blacklist[0]); i++) { + k = info->keyMap + keycode_blacklist[i] * GLYPHS_PER_KEY; + k[0] = k[1] = k[2] = k[3] = NoSymbol; + } +#endif DarwinBuildModifierMaps(info); return TRUE; } + +Bool QuartsResyncKeymap(Bool sendDDXEvent) { + Bool retval; + /* Update keyInfo */ + pthread_mutex_lock(&keyInfo_mutex); + memset(keyInfo.keyMap, 0, sizeof(keyInfo.keyMap)); + retval = QuartzReadSystemKeymap(&keyInfo); + pthread_mutex_unlock(&keyInfo_mutex); + + /* Tell server thread to deal with new keyInfo */ + if(sendDDXEvent) + DarwinSendDDXEvent(kXquartzReloadKeymap, 0); + + return retval; +} diff --git a/xorg-server/hw/xquartz/quartzKeyboard.h b/xorg-server/hw/xquartz/quartzKeyboard.h index 1aaec6ef2..1151a0035 100644 --- a/xorg-server/hw/xquartz/quartzKeyboard.h +++ b/xorg-server/hw/xquartz/quartzKeyboard.h @@ -41,18 +41,10 @@ #define MIN_KEYCODE XkbMinLegalKeyCode // unfortunately, this isn't 0... #define MAX_KEYCODE NUM_KEYCODES + MIN_KEYCODE - 1 -typedef struct darwinKeyboardInfo_struct { - CARD8 modMap[MAP_LENGTH]; - KeySym keyMap[MAP_LENGTH * GLYPHS_PER_KEY]; - unsigned char modifierKeycodes[32][2]; -} darwinKeyboardInfo; - /* These functions need to be implemented by Xquartz, XDarwin, etc. */ -Bool QuartzReadSystemKeymap(darwinKeyboardInfo *info); +Bool QuartsResyncKeymap(Bool sendDDXEvent); /* Provided for darwinEvents.c */ -extern darwinKeyboardInfo keyInfo; -extern pthread_mutex_t keyInfo_mutex; void DarwinKeyboardReloadHandler(void); int DarwinModifierNXKeycodeToNXKey(unsigned char keycode, int *outSide); int DarwinModifierNXKeyToNXKeycode(int key, int side); -- cgit v1.2.3