From c0aed4c99bf553bd7b8bbc79d0ed8f26d0ab3f94 Mon Sep 17 00:00:00 2001 From: Tiago Vignatti Date: Mon, 10 May 2010 20:58:30 +0300 Subject: [PATCH 001/125] xfree86: vgaarb: change macros by inline functions to ease debug Signed-off-by: Tiago Vignatti Reviewed-by: Jamey Sharp --- hw/xfree86/common/xf86VGAarbiter.c | 100 ++++++++++++------------- hw/xfree86/common/xf86VGAarbiterPriv.h | 21 ++++-- 2 files changed, 64 insertions(+), 57 deletions(-) diff --git a/hw/xfree86/common/xf86VGAarbiter.c b/hw/xfree86/common/xf86VGAarbiter.c index 05cf24502..434fb33b2 100644 --- a/hw/xfree86/common/xf86VGAarbiter.c +++ b/hw/xfree86/common/xf86VGAarbiter.c @@ -266,7 +266,7 @@ VGAarbiterBlockHandler(int i, { ScreenPtr pScreen = screenInfo.screens[i]; SCREEN_PROLOG(BlockHandler); - VGAGet(); + VGAGet(pScreen); pScreen->BlockHandler(i, blockData, pTimeout, pReadmask); VGAPut(); SCREEN_EPILOG(BlockHandler, VGAarbiterBlockHandler); @@ -277,7 +277,7 @@ VGAarbiterWakeupHandler(int i, pointer blockData, unsigned long result, pointer { ScreenPtr pScreen = screenInfo.screens[i]; SCREEN_PROLOG(WakeupHandler); - VGAGet(); + VGAGet(pScreen); pScreen->WakeupHandler(i, blockData, result, pReadmask); VGAPut(); SCREEN_EPILOG(WakeupHandler, VGAarbiterWakeupHandler); @@ -295,7 +295,7 @@ VGAarbiterGetImage ( ScreenPtr pScreen = pDrawable->pScreen; SCREEN_PROLOG(GetImage); // if (xf86Screens[pScreen->myNum]->vtSema) { - VGAGet(); + VGAGet(pScreen); // } (*pScreen->GetImage) (pDrawable, sx, sy, w, h, format, planemask, pdstLine); @@ -316,7 +316,7 @@ VGAarbiterGetSpans ( ScreenPtr pScreen = pDrawable->pScreen; SCREEN_PROLOG (GetSpans); - VGAGet(); + VGAGet(pScreen); (*pScreen->GetSpans) (pDrawable, wMax, ppt, pwidth, nspans, pdstStart); VGAPut(); SCREEN_EPILOG (GetSpans, VGAarbiterGetSpans); @@ -329,7 +329,7 @@ VGAarbiterSourceValidate ( { ScreenPtr pScreen = pDrawable->pScreen; SCREEN_PROLOG (SourceValidate); - VGAGet(); + VGAGet(pScreen); if (pScreen->SourceValidate) (*pScreen->SourceValidate) (pDrawable, x, y, width, height); VGAPut(); @@ -345,7 +345,7 @@ VGAarbiterCopyWindow( ScreenPtr pScreen = pWin->drawable.pScreen; SCREEN_PROLOG (CopyWindow); - VGAGet(); + VGAGet(pScreen); (*pScreen->CopyWindow) (pWin, ptOldOrg, prgnSrc); VGAPut(); SCREEN_EPILOG (CopyWindow, VGAarbiterCopyWindow); @@ -361,7 +361,7 @@ VGAarbiterClearToBackground ( ScreenPtr pScreen = pWin->drawable.pScreen; SCREEN_PROLOG ( ClearToBackground); - VGAGet(); + VGAGet(pScreen); (*pScreen->ClearToBackground) (pWin, x, y, w, h, generateExposures); VGAPut(); SCREEN_EPILOG (ClearToBackground, VGAarbiterClearToBackground); @@ -373,7 +373,7 @@ VGAarbiterCreatePixmap(ScreenPtr pScreen, int w, int h, int depth, unsigned usag PixmapPtr pPix; SCREEN_PROLOG ( CreatePixmap); - VGAGet(); + VGAGet(pScreen); pPix = (*pScreen->CreatePixmap) (pScreen, w, h, depth, usage_hint); VGAPut(); SCREEN_EPILOG (CreatePixmap, VGAarbiterCreatePixmap); @@ -387,7 +387,7 @@ VGAarbiterSaveScreen(ScreenPtr pScreen, Bool unblank) Bool val; SCREEN_PROLOG (SaveScreen); - VGAGet(); + VGAGet(pScreen); val = (*pScreen->SaveScreen) (pScreen, unblank); VGAPut(); SCREEN_EPILOG (SaveScreen, VGAarbiterSaveScreen); @@ -404,7 +404,7 @@ VGAarbiterStoreColors ( ScreenPtr pScreen = pmap->pScreen; SCREEN_PROLOG (StoreColors); - VGAGet(); + VGAGet(pScreen); (*pScreen->StoreColors) (pmap,ndef,pdefs); VGAPut(); SCREEN_EPILOG ( StoreColors, VGAarbiterStoreColors); @@ -419,7 +419,7 @@ VGAarbiterRecolorCursor ( ) { SCREEN_PROLOG (RecolorCursor); - VGAGet(); + VGAGet(pScreen); (*pScreen->RecolorCursor) (pDev, pScreen, pCurs, displayed); VGAPut(); SCREEN_EPILOG ( RecolorCursor, VGAarbiterRecolorCursor); @@ -435,7 +435,7 @@ VGAarbiterRealizeCursor ( Bool val; SCREEN_PROLOG (RealizeCursor); - VGAGet(); + VGAGet(pScreen); val = (*pScreen->RealizeCursor) (pDev, pScreen,pCursor); VGAPut(); SCREEN_EPILOG ( RealizeCursor, VGAarbiterRealizeCursor); @@ -452,7 +452,7 @@ VGAarbiterUnrealizeCursor ( Bool val; SCREEN_PROLOG (UnrealizeCursor); - VGAGet(); + VGAGet(pScreen); val = (*pScreen->UnrealizeCursor) (pDev, pScreen, pCursor); VGAPut(); SCREEN_EPILOG ( UnrealizeCursor, VGAarbiterUnrealizeCursor); @@ -469,7 +469,7 @@ VGAarbiterDisplayCursor ( Bool val; SCREEN_PROLOG (DisplayCursor); - VGAGet(); + VGAGet(pScreen); val = (*pScreen->DisplayCursor) (pDev, pScreen, pCursor); VGAPut(); SCREEN_EPILOG ( DisplayCursor, VGAarbiterDisplayCursor); @@ -486,7 +486,7 @@ VGAarbiterSetCursorPosition ( Bool val; SCREEN_PROLOG (SetCursorPosition); - VGAGet(); + VGAGet(pScreen); val = (*pScreen->SetCursorPosition) (pDev, pScreen, x, y, generateEvent); VGAPut(); SCREEN_EPILOG ( SetCursorPosition, VGAarbiterSetCursorPosition); @@ -500,7 +500,7 @@ VGAarbiterAdjustFrame(int index, int x, int y, int flags) VGAarbiterScreenPtr pScreenPriv = (VGAarbiterScreenPtr)dixLookupPrivate( &pScreen->devPrivates, VGAarbiterScreenKey); - VGAGet(); + VGAGet(pScreen); (*pScreenPriv->AdjustFrame)(index, x, y, flags); VGAPut(); } @@ -513,7 +513,7 @@ VGAarbiterSwitchMode(int index, DisplayModePtr mode, int flags) VGAarbiterScreenPtr pScreenPriv = (VGAarbiterScreenPtr)dixLookupPrivate( &pScreen->devPrivates, VGAarbiterScreenKey); - VGAGet(); + VGAGet(pScreen); val = (*pScreenPriv->SwitchMode)(index, mode, flags); VGAPut(); return val; @@ -528,7 +528,7 @@ VGAarbiterEnterVT(int index, int flags) VGAarbiterScreenPtr pScreenPriv = (VGAarbiterScreenPtr)dixLookupPrivate( &pScreen->devPrivates, VGAarbiterScreenKey); - VGAGet(); + VGAGet(pScreen); pScrn->EnterVT = pScreenPriv->EnterVT; val = (*pScrn->EnterVT)(index, flags); pScreenPriv->EnterVT = pScrn->EnterVT; @@ -545,7 +545,7 @@ VGAarbiterLeaveVT(int index, int flags) VGAarbiterScreenPtr pScreenPriv = (VGAarbiterScreenPtr)dixLookupPrivate( &pScreen->devPrivates, VGAarbiterScreenKey); - VGAGet(); + VGAGet(pScreen); pScrn->LeaveVT = pScreenPriv->LeaveVT; (*pScreenPriv->LeaveVT)(index, flags); pScreenPriv->LeaveVT = pScrn->LeaveVT; @@ -560,7 +560,7 @@ VGAarbiterFreeScreen(int index, int flags) VGAarbiterScreenPtr pScreenPriv = (VGAarbiterScreenPtr)dixLookupPrivate( &pScreen->devPrivates, VGAarbiterScreenKey); - VGAGet(); + VGAGet(pScreen); (*pScreenPriv->FreeScreen)(index, flags); VGAPut(); } @@ -573,7 +573,7 @@ VGAarbiterCreateGC(GCPtr pGC) Bool ret; SCREEN_PROLOG(CreateGC); - VGAGet(); + VGAGet(pScreen); ret = (*pScreen->CreateGC)(pGC); VGAPut(); GC_WRAP(pGC); @@ -663,7 +663,7 @@ VGAarbiterFillSpans( int fSorted ) { GC_UNWRAP(pGC); - VGAGet_GC(); + VGAGet_GC(pGC); (*pGC->ops->FillSpans)(pDraw, pGC, nInit, pptInit, pwidthInit, fSorted); VGAPut_GC(); GC_WRAP(pGC); @@ -680,7 +680,7 @@ VGAarbiterSetSpans( int fSorted ) { GC_UNWRAP(pGC); - VGAGet_GC(); + VGAGet_GC(pGC); (*pGC->ops->SetSpans)(pDraw, pGC, pcharsrc, ppt, pwidth, nspans, fSorted); VGAPut_GC(); GC_WRAP(pGC); @@ -697,7 +697,7 @@ VGAarbiterPutImage( char *pImage ) { GC_UNWRAP(pGC); - VGAGet_GC(); + VGAGet_GC(pGC); (*pGC->ops->PutImage)(pDraw, pGC, depth, x, y, w, h, leftPad, format, pImage); VGAPut_GC(); @@ -716,7 +716,7 @@ VGAarbiterCopyArea( RegionPtr ret; GC_UNWRAP(pGC); - VGAGet_GC(); + VGAGet_GC(pGC); ret = (*pGC->ops->CopyArea)(pSrc, pDst, pGC, srcx, srcy, width, height, dstx, dsty); VGAPut_GC(); @@ -737,7 +737,7 @@ VGAarbiterCopyPlane( RegionPtr ret; GC_UNWRAP(pGC); - VGAGet_GC(); + VGAGet_GC(pGC); ret = (*pGC->ops->CopyPlane)(pSrc, pDst, pGC, srcx, srcy, width, height, dstx, dsty, bitPlane); VGAPut_GC(); @@ -754,7 +754,7 @@ VGAarbiterPolyPoint( xPoint *pptInit ) { GC_UNWRAP(pGC); - VGAGet_GC(); + VGAGet_GC(pGC); (*pGC->ops->PolyPoint)(pDraw, pGC, mode, npt, pptInit); VGAPut_GC(); GC_WRAP(pGC); @@ -770,7 +770,7 @@ VGAarbiterPolylines( DDXPointPtr pptInit ) { GC_UNWRAP(pGC); - VGAGet_GC(); + VGAGet_GC(pGC); (*pGC->ops->Polylines)(pDraw, pGC, mode, npt, pptInit); VGAPut_GC(); GC_WRAP(pGC); @@ -784,7 +784,7 @@ VGAarbiterPolySegment( xSegment *pSeg ) { GC_UNWRAP(pGC); - VGAGet_GC(); + VGAGet_GC(pGC); (*pGC->ops->PolySegment)(pDraw, pGC, nseg, pSeg); VGAPut_GC(); GC_WRAP(pGC); @@ -798,7 +798,7 @@ VGAarbiterPolyRectangle( xRectangle *pRectsInit ) { GC_UNWRAP(pGC); - VGAGet_GC(); + VGAGet_GC(pGC); (*pGC->ops->PolyRectangle)(pDraw, pGC, nRectsInit, pRectsInit); VGAPut_GC(); GC_WRAP(pGC); @@ -812,7 +812,7 @@ VGAarbiterPolyArc( xArc *parcs ) { GC_UNWRAP(pGC); - VGAGet_GC(); + VGAGet_GC(pGC); (*pGC->ops->PolyArc)(pDraw, pGC, narcs, parcs); VGAPut_GC(); GC_WRAP(pGC); @@ -828,7 +828,7 @@ VGAarbiterFillPolygon( DDXPointPtr ptsIn ) { GC_UNWRAP(pGC); - VGAGet_GC(); + VGAGet_GC(pGC); (*pGC->ops->FillPolygon)(pDraw, pGC, shape, mode, count, ptsIn); VGAPut_GC(); GC_WRAP(pGC); @@ -842,7 +842,7 @@ VGAarbiterPolyFillRect( xRectangle *prectInit) { GC_UNWRAP(pGC); - VGAGet_GC(); + VGAGet_GC(pGC); (*pGC->ops->PolyFillRect)(pDraw, pGC, nrectFill, prectInit); VGAPut_GC(); GC_WRAP(pGC); @@ -856,7 +856,7 @@ VGAarbiterPolyFillArc( xArc *parcs ) { GC_UNWRAP(pGC); - VGAGet_GC(); + VGAGet_GC(pGC); (*pGC->ops->PolyFillArc)(pDraw, pGC, narcs, parcs); VGAPut_GC(); GC_WRAP(pGC); @@ -874,7 +874,7 @@ VGAarbiterPolyText8( int ret; GC_UNWRAP(pGC); - VGAGet_GC(); + VGAGet_GC(pGC); ret = (*pGC->ops->PolyText8)(pDraw, pGC, x, y, count, chars); VGAPut_GC(); GC_WRAP(pGC); @@ -893,7 +893,7 @@ VGAarbiterPolyText16( int ret; GC_UNWRAP(pGC); - VGAGet_GC(); + VGAGet_GC(pGC); ret = (*pGC->ops->PolyText16)(pDraw, pGC, x, y, count, chars); VGAPut_GC(); GC_WRAP(pGC); @@ -910,7 +910,7 @@ VGAarbiterImageText8( char *chars ) { GC_UNWRAP(pGC); - VGAGet_GC(); + VGAGet_GC(pGC); (*pGC->ops->ImageText8)(pDraw, pGC, x, y, count, chars); VGAPut_GC(); GC_WRAP(pGC); @@ -926,7 +926,7 @@ VGAarbiterImageText16( unsigned short *chars ) { GC_UNWRAP(pGC); - VGAGet_GC(); + VGAGet_GC(pGC); (*pGC->ops->ImageText16)(pDraw, pGC, x, y, count, chars); VGAPut_GC(); GC_WRAP(pGC); @@ -943,7 +943,7 @@ VGAarbiterImageGlyphBlt( pointer pglyphBase ) { GC_UNWRAP(pGC); - VGAGet_GC(); + VGAGet_GC(pGC); (*pGC->ops->ImageGlyphBlt)(pDraw, pGC, xInit, yInit, nglyph, ppci, pglyphBase); VGAPut_GC(); @@ -960,7 +960,7 @@ VGAarbiterPolyGlyphBlt( pointer pglyphBase ) { GC_UNWRAP(pGC); - VGAGet_GC(); + VGAGet_GC(pGC); (*pGC->ops->PolyGlyphBlt)(pDraw, pGC, xInit, yInit, nglyph, ppci, pglyphBase); VGAPut_GC(); @@ -975,7 +975,7 @@ VGAarbiterPushPixels( int dx, int dy, int xOrg, int yOrg ) { GC_UNWRAP(pGC); - VGAGet_GC(); + VGAGet_GC(pGC); (*pGC->ops->PushPixels)(pGC, pBitMap, pDraw, dx, dy, xOrg, yOrg); VGAPut_GC(); GC_WRAP(pGC); @@ -988,7 +988,7 @@ VGAarbiterSpriteRealizeCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pC { Bool val; SPRITE_PROLOG; - VGAGet(); + VGAGet(pScreen); val = PointPriv->spriteFuncs->RealizeCursor(pDev, pScreen, pCur); VGAPut(); SPRITE_EPILOG; @@ -1000,7 +1000,7 @@ VGAarbiterSpriteUnrealizeCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr { Bool val; SPRITE_PROLOG; - VGAGet(); + VGAGet(pScreen); val = PointPriv->spriteFuncs->UnrealizeCursor(pDev, pScreen, pCur); VGAPut(); SPRITE_EPILOG; @@ -1011,7 +1011,7 @@ static void VGAarbiterSpriteSetCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCur, int x, int y) { SPRITE_PROLOG; - VGAGet(); + VGAGet(pScreen); PointPriv->spriteFuncs->SetCursor(pDev, pScreen, pCur, x, y); VGAPut(); SPRITE_EPILOG; @@ -1021,7 +1021,7 @@ static void VGAarbiterSpriteMoveCursor(DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y) { SPRITE_PROLOG; - VGAGet(); + VGAGet(pScreen); PointPriv->spriteFuncs->MoveCursor(pDev, pScreen, x, y); VGAPut(); SPRITE_EPILOG; @@ -1032,7 +1032,7 @@ VGAarbiterDeviceCursorInitialize(DeviceIntPtr pDev, ScreenPtr pScreen) { Bool val; SPRITE_PROLOG; - VGAGet(); + VGAGet(pScreen); val = PointPriv->spriteFuncs->DeviceCursorInitialize(pDev, pScreen); VGAPut(); SPRITE_EPILOG; @@ -1043,7 +1043,7 @@ static void VGAarbiterDeviceCursorCleanup(DeviceIntPtr pDev, ScreenPtr pScreen) { SPRITE_PROLOG; - VGAGet(); + VGAGet(pScreen); PointPriv->spriteFuncs->DeviceCursorCleanup(pDev, pScreen); VGAPut(); SPRITE_EPILOG; @@ -1060,7 +1060,7 @@ VGAarbiterComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PICTURE_PROLOGUE(Composite); - VGAGet(); + VGAGet(pScreen); (*ps->Composite) (op, pSrc, pMask, pDst, xSrc, ySrc, xMask, yMask, xDst, yDst, width, height); VGAPut(); @@ -1077,7 +1077,7 @@ VGAarbiterGlyphs(CARD8 op, PicturePtr pSrc, PicturePtr pDst, PICTURE_PROLOGUE(Glyphs); - VGAGet(); + VGAGet(pScreen); (*ps->Glyphs)(op, pSrc, pDst, maskFormat, xSrc, ySrc, nlist, list, glyphs); VGAPut(); PICTURE_EPILOGUE (Glyphs, VGAarbiterGlyphs); @@ -1092,7 +1092,7 @@ VGAarbiterCompositeRects(CARD8 op, PicturePtr pDst, xRenderColor *color, int nRe PICTURE_PROLOGUE(CompositeRects); - VGAGet(); + VGAGet(pScreen); (*ps->CompositeRects)(op, pDst, color, nRect, rects); VGAPut(); PICTURE_EPILOGUE (CompositeRects, VGAarbiterCompositeRects); diff --git a/hw/xfree86/common/xf86VGAarbiterPriv.h b/hw/xfree86/common/xf86VGAarbiterPriv.h index 9b4a59731..badac55db 100644 --- a/hw/xfree86/common/xf86VGAarbiterPriv.h +++ b/hw/xfree86/common/xf86VGAarbiterPriv.h @@ -96,20 +96,27 @@ #define GC_SCREEN register ScrnInfoPtr pScrn = \ xf86Screens[pGC->pScreen->myNum] -#define VGAGet(x)\ - pci_device_vgaarb_set_target(xf86Screens[pScreen->myNum]->vgaDev); \ +static inline void +VGAGet(ScreenPtr pScreen) { + pci_device_vgaarb_set_target(xf86Screens[pScreen->myNum]->vgaDev); pci_device_vgaarb_lock(); +} -#define VGAGet_GC(x)\ - pci_device_vgaarb_set_target(xf86Screens[pGC->pScreen->myNum]->vgaDev); \ +static inline void +VGAGet_GC(GC *pGC) { + pci_device_vgaarb_set_target(xf86Screens[pGC->pScreen->myNum]->vgaDev); pci_device_vgaarb_lock(); +} -#define VGAPut(x)\ +static inline void +VGAPut(void) { pci_device_vgaarb_unlock(); +} -#define VGAPut_GC(x)\ +static inline void +VGAPut_GC(void) { pci_device_vgaarb_unlock(); - +} typedef struct _VGAarbiterScreen { CreateGCProcPtr CreateGC; From ad698dd5bcc41fcec1e7ce1117c7ad1052710132 Mon Sep 17 00:00:00 2001 From: Tiago Vignatti Date: Mon, 10 May 2010 21:03:30 +0300 Subject: [PATCH 002/125] xfree86: vgaarb: remove superfluous and confusing VGAGet_GC and VGAPut_GC Signed-off-by: Tiago Vignatti Reviewed-by: Jamey Sharp --- hw/xfree86/common/xf86VGAarbiter.c | 104 ++++++++++++++----------- hw/xfree86/common/xf86VGAarbiterPriv.h | 11 --- 2 files changed, 60 insertions(+), 55 deletions(-) diff --git a/hw/xfree86/common/xf86VGAarbiter.c b/hw/xfree86/common/xf86VGAarbiter.c index 434fb33b2..9c03bcf87 100644 --- a/hw/xfree86/common/xf86VGAarbiter.c +++ b/hw/xfree86/common/xf86VGAarbiter.c @@ -662,10 +662,11 @@ VGAarbiterFillSpans( int *pwidthInit, int fSorted ) { + ScreenPtr pScreen = pGC->pScreen; GC_UNWRAP(pGC); - VGAGet_GC(pGC); + VGAGet(pScreen); (*pGC->ops->FillSpans)(pDraw, pGC, nInit, pptInit, pwidthInit, fSorted); - VGAPut_GC(); + VGAPut(); GC_WRAP(pGC); } @@ -679,10 +680,11 @@ VGAarbiterSetSpans( int nspans, int fSorted ) { + ScreenPtr pScreen = pGC->pScreen; GC_UNWRAP(pGC); - VGAGet_GC(pGC); + VGAGet(pScreen); (*pGC->ops->SetSpans)(pDraw, pGC, pcharsrc, ppt, pwidth, nspans, fSorted); - VGAPut_GC(); + VGAPut(); GC_WRAP(pGC); } @@ -696,11 +698,12 @@ VGAarbiterPutImage( int format, char *pImage ) { + ScreenPtr pScreen = pGC->pScreen; GC_UNWRAP(pGC); - VGAGet_GC(pGC); + VGAGet(pScreen); (*pGC->ops->PutImage)(pDraw, pGC, depth, x, y, w, h, leftPad, format, pImage); - VGAPut_GC(); + VGAPut(); GC_WRAP(pGC); } @@ -714,12 +717,12 @@ VGAarbiterCopyArea( int dstx, int dsty ) { RegionPtr ret; - + ScreenPtr pScreen = pGC->pScreen; GC_UNWRAP(pGC); - VGAGet_GC(pGC); + VGAGet(pScreen); ret = (*pGC->ops->CopyArea)(pSrc, pDst, pGC, srcx, srcy, width, height, dstx, dsty); - VGAPut_GC(); + VGAPut(); GC_WRAP(pGC); return ret; } @@ -735,12 +738,12 @@ VGAarbiterCopyPlane( unsigned long bitPlane ) { RegionPtr ret; - + ScreenPtr pScreen = pGC->pScreen; GC_UNWRAP(pGC); - VGAGet_GC(pGC); + VGAGet(pScreen); ret = (*pGC->ops->CopyPlane)(pSrc, pDst, pGC, srcx, srcy, width, height, dstx, dsty, bitPlane); - VGAPut_GC(); + VGAPut(); GC_WRAP(pGC); return ret; } @@ -753,10 +756,11 @@ VGAarbiterPolyPoint( int npt, xPoint *pptInit ) { + ScreenPtr pScreen = pGC->pScreen; GC_UNWRAP(pGC); - VGAGet_GC(pGC); + VGAGet(pScreen); (*pGC->ops->PolyPoint)(pDraw, pGC, mode, npt, pptInit); - VGAPut_GC(); + VGAPut(); GC_WRAP(pGC); } @@ -769,10 +773,11 @@ VGAarbiterPolylines( int npt, DDXPointPtr pptInit ) { + ScreenPtr pScreen = pGC->pScreen; GC_UNWRAP(pGC); - VGAGet_GC(pGC); + VGAGet(pScreen); (*pGC->ops->Polylines)(pDraw, pGC, mode, npt, pptInit); - VGAPut_GC(); + VGAPut(); GC_WRAP(pGC); } @@ -783,10 +788,11 @@ VGAarbiterPolySegment( int nseg, xSegment *pSeg ) { + ScreenPtr pScreen = pGC->pScreen; GC_UNWRAP(pGC); - VGAGet_GC(pGC); + VGAGet(pScreen); (*pGC->ops->PolySegment)(pDraw, pGC, nseg, pSeg); - VGAPut_GC(); + VGAPut(); GC_WRAP(pGC); } @@ -797,10 +803,11 @@ VGAarbiterPolyRectangle( int nRectsInit, xRectangle *pRectsInit ) { + ScreenPtr pScreen = pGC->pScreen; GC_UNWRAP(pGC); - VGAGet_GC(pGC); + VGAGet(pScreen); (*pGC->ops->PolyRectangle)(pDraw, pGC, nRectsInit, pRectsInit); - VGAPut_GC(); + VGAPut(); GC_WRAP(pGC); } @@ -811,10 +818,11 @@ VGAarbiterPolyArc( int narcs, xArc *parcs ) { + ScreenPtr pScreen = pGC->pScreen; GC_UNWRAP(pGC); - VGAGet_GC(pGC); + VGAGet(pScreen); (*pGC->ops->PolyArc)(pDraw, pGC, narcs, parcs); - VGAPut_GC(); + VGAPut(); GC_WRAP(pGC); } @@ -827,10 +835,11 @@ VGAarbiterFillPolygon( int count, DDXPointPtr ptsIn ) { + ScreenPtr pScreen = pGC->pScreen; GC_UNWRAP(pGC); - VGAGet_GC(pGC); + VGAGet(pScreen); (*pGC->ops->FillPolygon)(pDraw, pGC, shape, mode, count, ptsIn); - VGAPut_GC(); + VGAPut(); GC_WRAP(pGC); } @@ -841,10 +850,11 @@ VGAarbiterPolyFillRect( int nrectFill, xRectangle *prectInit) { + ScreenPtr pScreen = pGC->pScreen; GC_UNWRAP(pGC); - VGAGet_GC(pGC); + VGAGet(pScreen); (*pGC->ops->PolyFillRect)(pDraw, pGC, nrectFill, prectInit); - VGAPut_GC(); + VGAPut(); GC_WRAP(pGC); } @@ -855,10 +865,11 @@ VGAarbiterPolyFillArc( int narcs, xArc *parcs ) { + ScreenPtr pScreen = pGC->pScreen; GC_UNWRAP(pGC); - VGAGet_GC(pGC); + VGAGet(pScreen); (*pGC->ops->PolyFillArc)(pDraw, pGC, narcs, parcs); - VGAPut_GC(); + VGAPut(); GC_WRAP(pGC); } @@ -872,11 +883,11 @@ VGAarbiterPolyText8( char *chars ) { int ret; - + ScreenPtr pScreen = pGC->pScreen; GC_UNWRAP(pGC); - VGAGet_GC(pGC); + VGAGet(pScreen); ret = (*pGC->ops->PolyText8)(pDraw, pGC, x, y, count, chars); - VGAPut_GC(); + VGAPut(); GC_WRAP(pGC); return ret; } @@ -891,11 +902,11 @@ VGAarbiterPolyText16( unsigned short *chars ) { int ret; - + ScreenPtr pScreen = pGC->pScreen; GC_UNWRAP(pGC); - VGAGet_GC(pGC); + VGAGet(pScreen); ret = (*pGC->ops->PolyText16)(pDraw, pGC, x, y, count, chars); - VGAPut_GC(); + VGAPut(); GC_WRAP(pGC); return ret; } @@ -909,10 +920,11 @@ VGAarbiterImageText8( int count, char *chars ) { + ScreenPtr pScreen = pGC->pScreen; GC_UNWRAP(pGC); - VGAGet_GC(pGC); + VGAGet(pScreen); (*pGC->ops->ImageText8)(pDraw, pGC, x, y, count, chars); - VGAPut_GC(); + VGAPut(); GC_WRAP(pGC); } @@ -925,10 +937,11 @@ VGAarbiterImageText16( int count, unsigned short *chars ) { + ScreenPtr pScreen = pGC->pScreen; GC_UNWRAP(pGC); - VGAGet_GC(pGC); + VGAGet(pScreen); (*pGC->ops->ImageText16)(pDraw, pGC, x, y, count, chars); - VGAPut_GC(); + VGAPut(); GC_WRAP(pGC); } @@ -942,11 +955,12 @@ VGAarbiterImageGlyphBlt( CharInfoPtr *ppci, pointer pglyphBase ) { + ScreenPtr pScreen = pGC->pScreen; GC_UNWRAP(pGC); - VGAGet_GC(pGC); + VGAGet(pScreen); (*pGC->ops->ImageGlyphBlt)(pDraw, pGC, xInit, yInit, nglyph, ppci, pglyphBase); - VGAPut_GC(); + VGAPut(); GC_WRAP(pGC); } @@ -959,11 +973,12 @@ VGAarbiterPolyGlyphBlt( CharInfoPtr *ppci, pointer pglyphBase ) { + ScreenPtr pScreen = pGC->pScreen; GC_UNWRAP(pGC); - VGAGet_GC(pGC); + VGAGet(pScreen); (*pGC->ops->PolyGlyphBlt)(pDraw, pGC, xInit, yInit, nglyph, ppci, pglyphBase); - VGAPut_GC(); + VGAPut(); GC_WRAP(pGC); } @@ -974,10 +989,11 @@ VGAarbiterPushPixels( DrawablePtr pDraw, int dx, int dy, int xOrg, int yOrg ) { + ScreenPtr pScreen = pGC->pScreen; GC_UNWRAP(pGC); - VGAGet_GC(pGC); + VGAGet(pScreen); (*pGC->ops->PushPixels)(pGC, pBitMap, pDraw, dx, dy, xOrg, yOrg); - VGAPut_GC(); + VGAPut(); GC_WRAP(pGC); } diff --git a/hw/xfree86/common/xf86VGAarbiterPriv.h b/hw/xfree86/common/xf86VGAarbiterPriv.h index badac55db..df38d6b09 100644 --- a/hw/xfree86/common/xf86VGAarbiterPriv.h +++ b/hw/xfree86/common/xf86VGAarbiterPriv.h @@ -102,22 +102,11 @@ VGAGet(ScreenPtr pScreen) { pci_device_vgaarb_lock(); } -static inline void -VGAGet_GC(GC *pGC) { - pci_device_vgaarb_set_target(xf86Screens[pGC->pScreen->myNum]->vgaDev); - pci_device_vgaarb_lock(); -} - static inline void VGAPut(void) { pci_device_vgaarb_unlock(); } -static inline void -VGAPut_GC(void) { - pci_device_vgaarb_unlock(); -} - typedef struct _VGAarbiterScreen { CreateGCProcPtr CreateGC; CloseScreenProcPtr CloseScreen; From 7fbf3e7cf4b261194faad747e0bf59d528df6d91 Mon Sep 17 00:00:00 2001 From: Tiago Vignatti Date: Mon, 10 May 2010 21:05:14 +0300 Subject: [PATCH 003/125] xfree86: vgaarb: remove useless macro This was inherited from RAC and was never used there either. Signed-off-by: Tiago Vignatti Reviewed-by: Jamey Sharp --- hw/xfree86/common/xf86VGAarbiterPriv.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/hw/xfree86/common/xf86VGAarbiterPriv.h b/hw/xfree86/common/xf86VGAarbiterPriv.h index df38d6b09..2920fb53a 100644 --- a/hw/xfree86/common/xf86VGAarbiterPriv.h +++ b/hw/xfree86/common/xf86VGAarbiterPriv.h @@ -93,9 +93,6 @@ (VGAarbiterGCPtr)dixLookupPrivate(&(x)->devPrivates, VGAarbiterGCKey);\ (x)->ops = pGCPriv->wrapOps; (x)->funcs = pGCPriv->wrapFuncs; -#define GC_SCREEN register ScrnInfoPtr pScrn = \ - xf86Screens[pGC->pScreen->myNum] - static inline void VGAGet(ScreenPtr pScreen) { pci_device_vgaarb_set_target(xf86Screens[pScreen->myNum]->vgaDev); From 65466652936bbb2706be455d0a416bcf08e88f66 Mon Sep 17 00:00:00 2001 From: Tiago Vignatti Date: Wed, 12 May 2010 13:03:14 +0300 Subject: [PATCH 004/125] xfree86: vgaarb: fix device decoding interface to send resources type properly Right now, when there is more than one vide card on the machine, we're adopting a pessimistic approach and setting all cards to decode VGA legacy address. Some cards may want to skip the arbitration and the only way to do so is through pci_device_vgaarb_decodes. Therefore, send the desired kind of resource instead force the worst case. Note that xf86VGAarbiterDeviceDecodes is not being used so far by any open-source driver. Even so, API break. Signed-off-by: Tiago Vignatti Reviewed-by: Mark Kettenis --- hw/xfree86/common/xf86VGAarbiter.c | 5 +++-- hw/xfree86/common/xf86VGAarbiter.h | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/hw/xfree86/common/xf86VGAarbiter.c b/hw/xfree86/common/xf86VGAarbiter.c index 9c03bcf87..4f46059c3 100644 --- a/hw/xfree86/common/xf86VGAarbiter.c +++ b/hw/xfree86/common/xf86VGAarbiter.c @@ -138,11 +138,12 @@ xf86VGAarbiterScrnInit(ScrnInfoPtr pScrn) } void -xf86VGAarbiterDeviceDecodes(ScrnInfoPtr pScrn) +xf86VGAarbiterDeviceDecodes(ScrnInfoPtr pScrn, int rsrc) { if (vga_no_arb) return; - pci_device_vgaarb_decodes(VGA_ARB_RSRC_LEGACY_MEM | VGA_ARB_RSRC_LEGACY_IO); + pci_device_vgaarb_set_target(pScrn->vgaDev); + pci_device_vgaarb_decodes(rsrc); } Bool diff --git a/hw/xfree86/common/xf86VGAarbiter.h b/hw/xfree86/common/xf86VGAarbiter.h index 904b6b079..de104a914 100644 --- a/hw/xfree86/common/xf86VGAarbiter.h +++ b/hw/xfree86/common/xf86VGAarbiter.h @@ -40,7 +40,7 @@ extern void xf86VGAarbiterUnlock(ScrnInfoPtr pScrn); /* allow a driver to remove itself from arbiter - really should be * done in the kernel though */ -extern _X_EXPORT void xf86VGAarbiterDeviceDecodes(ScrnInfoPtr pScrn); +extern _X_EXPORT void xf86VGAarbiterDeviceDecodes(ScrnInfoPtr pScrn, int rsrc); /* DRI and arbiter are really not possible together, * you really want to remove the card from arbitration if you can */ extern _X_EXPORT Bool xf86VGAarbiterAllowDRI(ScreenPtr pScreen); From 747bf5fe80f51554205c5a50b8ed9b89065c8a54 Mon Sep 17 00:00:00 2001 From: Jesse Adkins Date: Sun, 1 Aug 2010 16:01:23 -0700 Subject: [PATCH 005/125] xfree86: Remove comments about unable to use malloc. These are leftovers from when X still used Xmalloc and friends for allocation. Now that those are gone, these comments are just confusing. Signed-off-by: Jesse Adkins Reviewed-by: Peter Hutterer Signed-off-by: Matt Turner --- hw/xfree86/common/xf86Init.c | 5 ----- hw/xfree86/parser/Flags.c | 2 -- 2 files changed, 7 deletions(-) diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c index ca532ee81..560519daf 100644 --- a/hw/xfree86/common/xf86Init.c +++ b/hw/xfree86/common/xf86Init.c @@ -1046,11 +1046,6 @@ xf86PrintDefaultLibraryPath(void) int ddxProcessArgument(int argc, char **argv, int i) { - /* - * Note: can't use xalloc/xfree here because OsInit() hasn't been called - * yet. Use malloc/free instead. - */ - #define CHECK_FOR_REQUIRED_ARGUMENT() \ if (((i + 1) >= argc) || (!argv[i + 1])) { \ ErrorF("Required argument to %s not specified\n", argv[i]); \ diff --git a/hw/xfree86/parser/Flags.c b/hw/xfree86/parser/Flags.c index 699dc6bcb..7fafb6ca8 100644 --- a/hw/xfree86/parser/Flags.c +++ b/hw/xfree86/parser/Flags.c @@ -132,7 +132,6 @@ xf86parseFlagsSection (void) if (ServerFlagsTab[i].token == token) { char *valstr = NULL; - /* can't use strdup because it calls malloc */ tmp = strdup (ServerFlagsTab[i].name); if (hasvalue) { @@ -365,7 +364,6 @@ xf86optionListCreate( const char **options, int count, int used ) } for (i = 0; i < count; i += 2) { - /* can't use strdup because it calls malloc */ t1 = malloc (sizeof (char) * (strlen (options[i]) + 1)); strcpy (t1, options[i]); From f49473abfd6034e68576b2dddd30ba8d8dd0838f Mon Sep 17 00:00:00 2001 From: Jesse Adkins Date: Wed, 4 Aug 2010 09:21:29 +0000 Subject: [PATCH 006/125] xfree86: Remove prototypes for non-existant functions. This was obsolete from 9a0f25de7ca3c68af867b38936103d17daa92ac6 "Static cleanups, dead code deletion." (server 1.3). Signed-off-by: Jesse Adkins Signed-off-by: Matt Turner --- hw/xfree86/loader/loader.h | 6 ------ 1 file changed, 6 deletions(-) diff --git a/hw/xfree86/loader/loader.h b/hw/xfree86/loader/loader.h index ac5f99cf5..6121e02c6 100644 --- a/hw/xfree86/loader/loader.h +++ b/hw/xfree86/loader/loader.h @@ -88,15 +88,9 @@ extern const ModuleVersions LoaderVersionInfo; extern unsigned long LoaderOptions; /* Internal Functions */ -void LoaderDuplicateSymbol(const char *, const int); -char *_LoaderModuleToName(int); int LoaderOpen(const char *, const char *, int, int *, int *, int *, int); int LoaderHandleOpen(int); -/* object to name lookup routines */ -char *_LoaderHandleToName(int handle); -char *_LoaderHandleToCanonicalName(int handle); - /* Loader backends. */ #include "dlloader.h" From 4f04fd595e82226f1d91226a41bb98ed3d940b37 Mon Sep 17 00:00:00 2001 From: Jesse Adkins Date: Wed, 4 Aug 2010 09:21:30 +0000 Subject: [PATCH 007/125] xfree86: Simplify xf86Msg{,Verb} Previously, the functions would call xf86VDrvMsgVerb with a screen of -1 despite their comments saying they were for "non-driver messages". They now call LogVMessageVerb, which is what xf86VDrvMsgVerb does anyway when it has a screen == -1. Reviewed-by: Peter Hutterer Reviewed-by: Mark Kettenis Signed-off-by: Jesse Adkins Signed-off-by: Matt Turner --- hw/xfree86/common/xf86Helper.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/xfree86/common/xf86Helper.c b/hw/xfree86/common/xf86Helper.c index 07f9f0a52..90e0c6702 100644 --- a/hw/xfree86/common/xf86Helper.c +++ b/hw/xfree86/common/xf86Helper.c @@ -1267,7 +1267,7 @@ xf86MsgVerb(MessageType type, int verb, const char *format, ...) va_list ap; va_start(ap, format); - xf86VDrvMsgVerb(-1, type, verb, format, ap); + LogVMessageVerb(type, verb, format, ap); va_end(ap); } @@ -1278,7 +1278,7 @@ xf86Msg(MessageType type, const char *format, ...) va_list ap; va_start(ap, format); - xf86VDrvMsgVerb(-1, type, 1, format, ap); + LogVMessageVerb(type, 1, format, ap); va_end(ap); } From 18b62e0479f15e965611880ada6e0195367df025 Mon Sep 17 00:00:00 2001 From: Jesse Adkins Date: Wed, 4 Aug 2010 09:21:31 +0000 Subject: [PATCH 008/125] xfree86: Fix leaks in OpenConfigFile and OpenConfigDir [mattst88: fixed whitespace and a missing semicolon] Signed-off-by: Jesse Adkins Signed-off-by: Matt Turner --- hw/xfree86/parser/scan.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hw/xfree86/parser/scan.c b/hw/xfree86/parser/scan.c index 531214350..4163a3a6b 100644 --- a/hw/xfree86/parser/scan.c +++ b/hw/xfree86/parser/scan.c @@ -819,6 +819,7 @@ OpenConfigFile(const char *path, const char *cmdline, const char *projroot, } } + free(pathcopy); if (file) { configFiles[numFiles].file = file; configFiles[numFiles].path = strdup(filepath); @@ -927,6 +928,7 @@ OpenConfigDir(const char *path, const char *cmdline, const char *projroot, } } + free(pathcopy); return dirpath; } From b25fb9fe998209e79b6917d12d5765c5f6719a7e Mon Sep 17 00:00:00 2001 From: Jesse Adkins Date: Wed, 4 Aug 2010 09:21:32 +0000 Subject: [PATCH 009/125] xfree86: Removed unused messages from Configint.h AUTOREPEAT_MSG, MOVED_TO_FLAGS_MSG, and XLEDS_MSG made obsolete by 81913a12910e39d7ea6af8657c1c66cc6791cd65 Jul 21 2006 (remove undead files from master) UNDEFINED_DEVICE_MSG made obsolete by 6033d8150be3a115b90226eaa42f237bb0cf3369 Oct 9 2007 (first pass at video driver autoloading) Signed-off-by: Jesse Adkins Signed-off-by: Matt Turner --- hw/xfree86/parser/Configint.h | 6 ------ 1 file changed, 6 deletions(-) diff --git a/hw/xfree86/parser/Configint.h b/hw/xfree86/parser/Configint.h index dda020e68..c88ff46d7 100644 --- a/hw/xfree86/parser/Configint.h +++ b/hw/xfree86/parser/Configint.h @@ -152,10 +152,6 @@ else\ "The %s keyword requires a boolean to follow it." #define ZAXISMAPPING_MSG \ "The ZAxisMapping keyword requires 2 positive numbers or X or Y to follow it." -#define AUTOREPEAT_MSG \ -"The AutoRepeat keyword requires 2 numbers (delay and rate) to follow it." -#define XLEDS_MSG \ -"The XLeds keyword requries one or more numbers to follow it." #define DACSPEED_MSG \ "The DacSpeed keyword must be followed by a list of up to %d numbers." #define DISPLAYSIZE_MSG \ @@ -216,7 +212,5 @@ else\ /* Warning messages */ #define OBSOLETE_MSG \ "Ignoring obsolete keyword \"%s\"." -#define MOVED_TO_FLAGS_MSG \ -"Keyword \"%s\" is now an Option flag in the ServerFlags section." #endif /* _Configint_h_ */ From ea239112b030588ed3cdd113643ba5f6207a5bd9 Mon Sep 17 00:00:00 2001 From: Jesse Adkins Date: Wed, 4 Aug 2010 09:21:33 +0000 Subject: [PATCH 010/125] xfree86: Purge parsePrologueVoid. This was included in the original commit, and then never used. Signed-off-by: Jesse Adkins Signed-off-by: Matt Turner --- hw/xfree86/parser/Configint.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/hw/xfree86/parser/Configint.h b/hw/xfree86/parser/Configint.h index c88ff46d7..82d7de4c4 100644 --- a/hw/xfree86/parser/Configint.h +++ b/hw/xfree86/parser/Configint.h @@ -98,9 +98,6 @@ LexRec, *LexPtr; #define parsePrologue(typeptr,typerec) typeptr ptr; \ if( (ptr=calloc(1,sizeof(typerec))) == NULL ) { return NULL; } -#define parsePrologueVoid(typeptr,typerec) int token; typeptr ptr; \ -if( (ptr=calloc(1,sizeof(typerec))) == NULL ) { return; } - #define HANDLE_RETURN(f,func)\ if ((ptr->f=func) == NULL)\ {\ From 08adf41f6315663cbac33d010214d98f3e1c8814 Mon Sep 17 00:00:00 2001 From: Matt Turner Date: Fri, 27 Aug 2010 18:34:49 -0400 Subject: [PATCH 011/125] Replace malloc/strlen/strcpy with strdup. Reviewed-by: Jeremy Huddleston Signed-off-by: Matt Turner --- Xi/extinit.c | 3 +-- dix/extension.c | 6 ++---- hw/kdrive/src/kxv.c | 9 +++------ hw/xfree86/common/xf86Init.c | 6 ++---- hw/xfree86/common/xf86xv.c | 9 +++------ hw/xfree86/loader/loader.c | 6 ++---- hw/xfree86/parser/Flags.c | 8 ++------ hw/xfree86/parser/scan.c | 3 +-- hw/xquartz/mach-startup/bundle-main.c | 3 +-- hw/xwin/glx/indirect.c | 5 +---- 10 files changed, 18 insertions(+), 40 deletions(-) diff --git a/Xi/extinit.c b/Xi/extinit.c index eda4efb50..7edadeaf2 100644 --- a/Xi/extinit.c +++ b/Xi/extinit.c @@ -1154,8 +1154,7 @@ void AssignTypeAndName(DeviceIntPtr dev, Atom type, char *name) { dev->xinput_type = type; - dev->name = (char *)malloc(strlen(name) + 1); - strcpy(dev->name, name); + dev->name = strdup(name); } /*********************************************************************** diff --git a/dix/extension.c b/dix/extension.c index c8e921a19..6540b64b0 100644 --- a/dix/extension.c +++ b/dix/extension.c @@ -96,7 +96,7 @@ AddExtension(char *name, int NumEvents, int NumErrors, free(ext); return NULL; } - ext->name = malloc(strlen(name) + 1); + ext->name = strdup(name); ext->num_aliases = 0; ext->aliases = (char **)NULL; if (!ext->name) @@ -105,7 +105,6 @@ AddExtension(char *name, int NumEvents, int NumErrors, free(ext); return((ExtensionEntry *) NULL); } - strcpy(ext->name, name); i = NumExtensions; newexts = (ExtensionEntry **) realloc(extensions, (i + 1) * sizeof(ExtensionEntry *)); @@ -164,10 +163,9 @@ Bool AddExtensionAlias(char *alias, ExtensionEntry *ext) if (!aliases) return FALSE; ext->aliases = aliases; - name = malloc(strlen(alias) + 1); + name = strdup(alias); if (!name) return FALSE; - strcpy(name, alias); ext->aliases[ext->num_aliases] = name; ext->num_aliases++; return TRUE; diff --git a/hw/kdrive/src/kxv.c b/hw/kdrive/src/kxv.c index c07829a5f..50dc23529 100644 --- a/hw/kdrive/src/kxv.c +++ b/hw/kdrive/src/kxv.c @@ -377,8 +377,7 @@ KdXVInitAdaptors( pa->ddGetPortAttribute = KdXVGetPortAttribute; pa->ddQueryBestSize = KdXVQueryBestSize; pa->ddQueryImageAttributes = KdXVQueryImageAttributes; - if((pa->name = malloc(strlen(adaptorPtr->name) + 1))) - strcpy(pa->name, adaptorPtr->name); + pa->name = strdup(adaptorPtr->name); if(adaptorPtr->nEncodings && (pEncode = calloc(adaptorPtr->nEncodings, sizeof(XvEncodingRec)))) { @@ -388,8 +387,7 @@ KdXVInitAdaptors( { pe->id = encodingPtr->id; pe->pScreen = pScreen; - if((pe->name = malloc(strlen(encodingPtr->name) + 1))) - strcpy(pe->name, encodingPtr->name); + pe->name = strdup(encodingPtr->name); pe->width = encodingPtr->width; pe->height = encodingPtr->height; pe->rate.numerator = encodingPtr->rate.numerator; @@ -441,8 +439,7 @@ KdXVInitAdaptors( pat->flags = attributePtr->flags; pat->min_value = attributePtr->min_value; pat->max_value = attributePtr->max_value; - if((pat->name = malloc(strlen(attributePtr->name) + 1))) - strcpy(pat->name, attributePtr->name); + pat->name = strdup(attributePtr->name); } pa->nAttributes = adaptorPtr->nAttributes; pa->pAttributes = pAttribute; diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c index 560519daf..3c7fbcb64 100644 --- a/hw/xfree86/common/xf86Init.c +++ b/hw/xfree86/common/xf86Init.c @@ -1062,10 +1062,9 @@ ddxProcessArgument(int argc, char **argv, int i) { char *mp; CHECK_FOR_REQUIRED_ARGUMENT(); - mp = malloc(strlen(argv[i + 1]) + 1); + mp = strdup(argv[i + 1]); if (!mp) FatalError("Can't allocate memory for ModulePath\n"); - strcpy(mp, argv[i + 1]); xf86ModulePath = mp; xf86ModPathFrom = X_CMDLINE; return 2; @@ -1074,10 +1073,9 @@ ddxProcessArgument(int argc, char **argv, int i) { char *lf; CHECK_FOR_REQUIRED_ARGUMENT(); - lf = malloc(strlen(argv[i + 1]) + 1); + lf = strdup(argv[i + 1]); if (!lf) FatalError("Can't allocate memory for LogFile\n"); - strcpy(lf, argv[i + 1]); xf86LogFile = lf; xf86LogFileFrom = X_CMDLINE; return 2; diff --git a/hw/xfree86/common/xf86xv.c b/hw/xfree86/common/xf86xv.c index c1d319976..46761303d 100644 --- a/hw/xfree86/common/xf86xv.c +++ b/hw/xfree86/common/xf86xv.c @@ -429,8 +429,7 @@ xf86XVInitAdaptors( pa->ddGetPortAttribute = xf86XVGetPortAttribute; pa->ddQueryBestSize = xf86XVQueryBestSize; pa->ddQueryImageAttributes = xf86XVQueryImageAttributes; - if((pa->name = malloc(strlen(adaptorPtr->name) + 1))) - strcpy(pa->name, adaptorPtr->name); + pa->name = strdup(adaptorPtr->name); if(adaptorPtr->nEncodings && (pEncode = calloc(adaptorPtr->nEncodings, sizeof(XvEncodingRec)))) { @@ -440,8 +439,7 @@ xf86XVInitAdaptors( { pe->id = encodingPtr->id; pe->pScreen = pScreen; - if((pe->name = malloc(strlen(encodingPtr->name) + 1))) - strcpy(pe->name, encodingPtr->name); + pe->name = strdup(encodingPtr->name); pe->width = encodingPtr->width; pe->height = encodingPtr->height; pe->rate.numerator = encodingPtr->rate.numerator; @@ -493,8 +491,7 @@ xf86XVInitAdaptors( pat->flags = attributePtr->flags; pat->min_value = attributePtr->min_value; pat->max_value = attributePtr->max_value; - if((pat->name = malloc(strlen(attributePtr->name) + 1))) - strcpy(pat->name, attributePtr->name); + pat->name = strdup(attributePtr->name); } pa->nAttributes = adaptorPtr->nAttributes; pa->pAttributes = pAttribute; diff --git a/hw/xfree86/loader/loader.c b/hw/xfree86/loader/loader.c index 6a4c08916..e043bb233 100644 --- a/hw/xfree86/loader/loader.c +++ b/hw/xfree86/loader/loader.c @@ -212,10 +212,8 @@ LoaderOpen(const char *module, const char *cname, int handle, refCount[new_handle] = 1; tmp = _LoaderListPush(); - tmp->name = malloc(strlen(module) + 1); - strcpy(tmp->name, module); - tmp->cname = malloc(strlen(cname) + 1); - strcpy(tmp->cname, cname); + tmp->name = strdup(module); + tmp->cname = strdup(cname); tmp->handle = new_handle; tmp->module = moduleseq++; diff --git a/hw/xfree86/parser/Flags.c b/hw/xfree86/parser/Flags.c index 7fafb6ca8..a9149c243 100644 --- a/hw/xfree86/parser/Flags.c +++ b/hw/xfree86/parser/Flags.c @@ -364,12 +364,8 @@ xf86optionListCreate( const char **options, int count, int used ) } for (i = 0; i < count; i += 2) { - t1 = malloc (sizeof (char) * - (strlen (options[i]) + 1)); - strcpy (t1, options[i]); - t2 = malloc (sizeof (char) * - (strlen (options[i + 1]) + 1)); - strcpy (t2, options[i + 1]); + t1 = strdup(options[i]); + t2 = strdup(options[i + 1]); p = addNewOption2 (p, t1, t2, used); } diff --git a/hw/xfree86/parser/scan.c b/hw/xfree86/parser/scan.c index 4163a3a6b..e609bdfd5 100644 --- a/hw/xfree86/parser/scan.c +++ b/hw/xfree86/parser/scan.c @@ -1090,8 +1090,7 @@ void xf86setSection (char *section) { free(configSection); - configSection = malloc(strlen (section) + 1); - strcpy (configSection, section); + configSection = strdup(section); } /* diff --git a/hw/xquartz/mach-startup/bundle-main.c b/hw/xquartz/mach-startup/bundle-main.c index 6f7bbfdc2..7ac5469eb 100644 --- a/hw/xquartz/mach-startup/bundle-main.c +++ b/hw/xquartz/mach-startup/bundle-main.c @@ -479,12 +479,11 @@ static void setup_env(void) { pds = LAUNCHD_ID_PREFIX".X11"; } - server_bootstrap_name = malloc(sizeof(char) * (strlen(pds) + 1)); + server_bootstrap_name = strdup(pds); if(!server_bootstrap_name) { fprintf(stderr, "X11.app: Memory allocation error.\n"); exit(1); } - strcpy(server_bootstrap_name, pds); setenv("X11_PREFS_DOMAIN", server_bootstrap_name, 1); len = strlen(server_bootstrap_name); diff --git a/hw/xwin/glx/indirect.c b/hw/xwin/glx/indirect.c index 1cf82a7cc..38918859a 100755 --- a/hw/xwin/glx/indirect.c +++ b/hw/xwin/glx/indirect.c @@ -444,7 +444,7 @@ glxLogExtensions(const char *prefix, const char *extensions) { int length = 0; char *strl; - char *str = malloc(strlen(extensions) + 1); + char *str = strdup(extensions); if (str == NULL) { @@ -452,9 +452,6 @@ glxLogExtensions(const char *prefix, const char *extensions) return; } - str[strlen(extensions)] = '\0'; - strncpy (str, extensions, strlen(extensions)); - strl = strtok(str, " "); ErrorF("%s%s", prefix, strl); length = strlen(prefix) + strlen(strl); From de8be07cc0a8163b6ef04455706fd5ca2cebe587 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Tue, 17 Aug 2010 12:08:52 +1000 Subject: [PATCH 012/125] dix: don't create core motion events for non-x/y valuators. Devices that send motion events with valuators other than x/y get core motion events with unchanged x/y coordinates. This confuses some applications. If the DeviceEvent does not have the x/y valuators set, return BadMatch on core conversion, thus skipping the event altogether. Reported-by: Bartosz Brachaczek Signed-off-by: Peter Hutterer Tested-by: Bartosz Brachaczek --- dix/eventconvert.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/dix/eventconvert.c b/dix/eventconvert.c index 4e3de0b46..0f747c1a0 100644 --- a/dix/eventconvert.c +++ b/dix/eventconvert.c @@ -102,6 +102,15 @@ EventToCore(InternalEvent *event, xEvent *core) switch(event->any.type) { case ET_Motion: + { + DeviceEvent *e = &event->device_event; + /* Don't create core motion event if neither x nor y are + * present */ + if (!BitIsOn(e->valuators.mask, 0) && + !BitIsOn(e->valuators.mask, 1)) + return BadMatch; + } + /* fallthrough */ case ET_ButtonPress: case ET_ButtonRelease: case ET_KeyPress: From 20cb9c923efa4edc348eba30f956a66413a8208f Mon Sep 17 00:00:00 2001 From: Pauli Nieminen Date: Thu, 22 Jul 2010 11:13:10 +0300 Subject: [PATCH 013/125] xkb: Use memcpy for copy that has known length Fixes warning that strncpy is not able to append NULL to the end of destination. Signed-off-by: Pauli Nieminen Reviewed-by: Peter Hutterer --- xkb/xkmread.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/xkb/xkmread.c b/xkb/xkmread.c index 814bb1d41..9eb86018e 100644 --- a/xkb/xkmread.c +++ b/xkb/xkmread.c @@ -534,8 +534,7 @@ XkbAction *act; case XkbSA_XFree86Private: /* copy the kind of action */ - strncpy((char*)act->any.data, (char*)wire.actionData, - XkbAnyActionDataSize); + memcpy(act->any.data, wire.actionData, XkbAnyActionDataSize); break ; case XkbSA_Terminate: From 1223340644744c0b38aa85f5956eb5ab7c696517 Mon Sep 17 00:00:00 2001 From: Pauli Nieminen Date: Thu, 22 Jul 2010 11:33:33 +0300 Subject: [PATCH 014/125] xkb: Fix memory leak if opening file fails If fopen fails pointer in buf would be overwriten with a new pointer. Signed-off-by: Pauli Nieminen Reviewed-by: Peter Hutterer --- xkb/ddxList.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/xkb/ddxList.c b/xkb/ddxList.c index 2256424d0..39bd7397a 100644 --- a/xkb/ddxList.c +++ b/xkb/ddxList.c @@ -161,6 +161,7 @@ char tmpname[PATH_MAX]; } if (!in) { haveDir= FALSE; + free(buf); buf = Xprintf( "'%s/xkbcomp' '-R%s/%s' -w %ld -l -vlfhpR '%s'" W32_tmparg, XkbBinDirectory,XkbBaseDirectory,componentDirs[what],(long) @@ -176,6 +177,7 @@ char tmpname[PATH_MAX]; } if (!in) { haveDir= FALSE; + free(buf); buf = Xprintf( "xkbcomp -R%s -w %ld -l -vlfhpR '%s'" W32_tmparg, componentDirs[what],(long) From 184ef0d35612d6ed0619283d376f04d9a904f47c Mon Sep 17 00:00:00 2001 From: Pauli Nieminen Date: Thu, 22 Jul 2010 11:34:54 +0300 Subject: [PATCH 015/125] xkb: Don't check for NULL before calling free Signed-off-by: Pauli Nieminen Reviewed-by: Peter Hutterer --- xkb/ddxList.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/xkb/ddxList.c b/xkb/ddxList.c index 39bd7397a..c1ada5c6d 100644 --- a/xkb/ddxList.c +++ b/xkb/ddxList.c @@ -202,8 +202,7 @@ char tmpname[PATH_MAX]; } if (!in) { - if (buf != NULL) - free(buf); + free(buf); #ifdef WIN32 unlink(tmpname); #endif @@ -266,8 +265,7 @@ char tmpname[PATH_MAX]; fclose(in); unlink(tmpname); #endif - if (buf != NULL) - free(buf); + free(buf); return status; } From 2475ef60977f6813dec74ef0837a5915b8a48bbc Mon Sep 17 00:00:00 2001 From: Pauli Nieminen Date: Thu, 22 Jul 2010 12:48:55 +0300 Subject: [PATCH 016/125] xkb: Fix NULL pointer dereference xkb->names is dereferenced in else path too. Signed-off-by: Pauli Nieminen Reviewed-by: Peter Hutterer --- xkb/xkmread.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/xkb/xkmread.c b/xkb/xkmread.c index 9eb86018e..b564195bc 100644 --- a/xkb/xkmread.c +++ b/xkb/xkmread.c @@ -686,7 +686,11 @@ int nRead=0; if ((tmp=XkmGetCountedString(file,buf,100))<1) return -1; nRead+= tmp; - if ((buf[0]!='\0')&&(xkb->names)) { + + if (!xkb->names) + continue; + + if (buf[0]!='\0') { Atom name; name= XkbInternAtom(buf,0); xkb->names->groups[i]= name; From 67cfb66562cd9d39f30fec6fbc38eb1eb5e5b030 Mon Sep 17 00:00:00 2001 From: Pauli Nieminen Date: Thu, 22 Jul 2010 15:05:57 +0300 Subject: [PATCH 017/125] xkb: Remove redurant intialization code calloc already initializes allocated memory to zero. Signed-off-by: Pauli Nieminen Reviewed-by: Peter Hutterer --- xkb/xkbEvents.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/xkb/xkbEvents.c b/xkb/xkbEvents.c index 8028502b9..c020e5e2a 100644 --- a/xkb/xkbEvents.c +++ b/xkb/xkbEvents.c @@ -1045,15 +1045,6 @@ XkbInterestPtr interest; interest->dev = dev; interest->client = client; interest->resource = id; - interest->stateNotifyMask= 0; - interest->ctrlsNotifyMask= 0; - interest->namesNotifyMask= 0; - interest->compatNotifyMask= 0; - interest->bellNotifyMask= FALSE; - interest->accessXNotifyMask= 0; - interest->iStateNotifyMask= 0; - interest->iMapNotifyMask= 0; - interest->altSymsNotifyMask= 0; interest->next = dev->xkb_interest; dev->xkb_interest= interest; return interest; From adc0697cfcfba295a15d7a307125093cbccd637f Mon Sep 17 00:00:00 2001 From: Pauli Nieminen Date: Thu, 22 Jul 2010 15:11:27 +0300 Subject: [PATCH 018/125] xkb: Fix memory leak in error path map is allocated but not freed if reply length and data don't match. Signed-off-by: Pauli Nieminen Reviewed-by: Peter Hutterer --- xkb/xkb.c | 1 + 1 file changed, 1 insertion(+) diff --git a/xkb/xkb.c b/xkb/xkb.c index 935f5ea6a..a82cc38cc 100644 --- a/xkb/xkb.c +++ b/xkb/xkb.c @@ -3019,6 +3019,7 @@ register unsigned bit; to = (CARD8 *)wire; if ((to-map)!=length) { client->errorValue = _XkbErrCode2(0xff,length); + free(map); return BadLength; } } From d6642de7ebdda16e0056600a86a7802bd4c393b7 Mon Sep 17 00:00:00 2001 From: Pauli Nieminen Date: Mon, 26 Jul 2010 14:50:30 +0300 Subject: [PATCH 019/125] xkb: Fix possible NULL pointer dereference If search for device failed sli is NULL. In that case we have to protect dereference to prevent server crash. Signed-off-by: Pauli Nieminen Reviewed-by: Peter Hutterer --- xkb/xkbLEDs.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/xkb/xkbLEDs.c b/xkb/xkbLEDs.c index f617537cf..16826713e 100644 --- a/xkb/xkbLEDs.c +++ b/xkb/xkbLEDs.c @@ -714,10 +714,12 @@ XkbSrvLedInfoPtr sli; } } } - if ((sli->names==NULL)&&(needed_parts&XkbXI_IndicatorNamesMask)) - sli->names= calloc(XkbNumIndicators, sizeof(Atom)); - if ((sli->maps==NULL)&&(needed_parts&XkbXI_IndicatorMapsMask)) - sli->maps= calloc(XkbNumIndicators, sizeof(XkbIndicatorMapRec)); + if (sli) { + if ((sli->names==NULL)&&(needed_parts&XkbXI_IndicatorNamesMask)) + sli->names= calloc(XkbNumIndicators, sizeof(Atom)); + if ((sli->maps==NULL)&&(needed_parts&XkbXI_IndicatorMapsMask)) + sli->maps= calloc(XkbNumIndicators, sizeof(XkbIndicatorMapRec)); + } return sli; } From 2e6d7174042cc8007e947b7d9fb54acc0ebe29d2 Mon Sep 17 00:00:00 2001 From: Pauli Nieminen Date: Mon, 26 Jul 2010 15:13:34 +0300 Subject: [PATCH 020/125] xkb: Fix possible NULL pointer dereference sli is null before allocation assigment so deference t osli has to be protected. Signed-off-by: Pauli Nieminen Reviewed-by: Peter Hutterer --- xkb/xkbLEDs.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/xkb/xkbLEDs.c b/xkb/xkbLEDs.c index 16826713e..515e9b701 100644 --- a/xkb/xkbLEDs.c +++ b/xkb/xkbLEDs.c @@ -556,6 +556,7 @@ Bool checkNames; else if ((kf!=NULL)&&((kf->xkb_sli->flags&XkbSLI_IsDefault)!=0)) { XkbDescPtr xkb; xkb= dev->key->xkbInfo->desc; + sli= kf->xkb_sli; sli->physIndicators= xkb->indicators->phys_indicators; if (xkb->names->indicators!=sli->names) { checkNames= TRUE; @@ -584,6 +585,8 @@ Bool checkNames; sli->maps= NULL; sli->names= NULL; } + else + return NULL; if ((sli->names==NULL)&&(needed_parts&XkbXI_IndicatorNamesMask)) sli->names= calloc(XkbNumIndicators, sizeof(Atom)); if ((sli->maps==NULL)&&(needed_parts&XkbXI_IndicatorMapsMask)) From b5c9953bbf4ffd11f1a70d058c6d3feb2bd1bca8 Mon Sep 17 00:00:00 2001 From: Pauli Nieminen Date: Mon, 26 Jul 2010 15:31:03 +0300 Subject: [PATCH 021/125] xkb: Check if AddResource failed Signed-off-by: Pauli Nieminen Reviewed-by: Peter Hutterer --- xkb/xkb.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/xkb/xkb.c b/xkb/xkb.c index a82cc38cc..4105c1c6b 100644 --- a/xkb/xkb.c +++ b/xkb/xkb.c @@ -224,7 +224,8 @@ ProcXkbSelectEvents(ClientPtr client) masks = XkbFindClientResource((DevicePtr)dev,client); if (!masks){ XID id = FakeClientID(client->index); - AddResource(id,RT_XKBCLIENT,dev); + if (!AddResource(id,RT_XKBCLIENT,dev)) + return BadAlloc; masks= XkbAddClientResource((DevicePtr)dev,client,id); } if (masks) { @@ -5378,7 +5379,8 @@ ProcXkbPerClientFlags(ClientPtr client) } else if (want && (!interest)) { XID id = FakeClientID(client->index); - AddResource(id,RT_XKBCLIENT,dev); + if (!AddResource(id,RT_XKBCLIENT,dev)) + return BadAlloc; interest= XkbAddClientResource((DevicePtr)dev,client,id); if (!interest) return BadAlloc; From 3cc5e4422430e9ca44615f3e63feccd2e5729046 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Fri, 23 Jul 2010 14:48:32 +1000 Subject: [PATCH 022/125] xfree86: fix compiler warning about implicied decl of DuplicateModule. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ../../../../hw/xfree86/common/xf86Xinput.c: In function ‘xf86AllocateInput’: ../../../../hw/xfree86/common/xf86Xinput.c:722: warning: implicit declaration of function ‘DuplicateModule’ ../../../../hw/xfree86/common/xf86Xinput.c:722: warning: nested extern declaration of ‘DuplicateModule’ ../../../../hw/xfree86/common/xf86Xinput.c:722: warning: assignment makes pointer from integer without a cast Signed-off-by: Peter Hutterer Reviewed-by: Adam Jackson Reviewed-by: Daniel Stone --- hw/xfree86/common/xf86Xinput.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c index bd77fe663..877eb0382 100644 --- a/hw/xfree86/common/xf86Xinput.c +++ b/hw/xfree86/common/xf86Xinput.c @@ -66,6 +66,7 @@ #include "xf86InPriv.h" #include "compiler.h" #include "extinit.h" +#include "loaderProcs.h" #ifdef DPMSExtension #include From ff109bf84401a451380eb7f3f94a6e0aa2776e3e Mon Sep 17 00:00:00 2001 From: Alan Coopersmith Date: Thu, 12 Aug 2010 00:09:02 -0700 Subject: [PATCH 023/125] Use GetMaster instead of direct u.master access in core procs Signed-off-by: Alan Coopersmith Acked-by: Daniel Stone Reviewed-by: Peter Hutterer Signed-off-by: Peter Hutterer --- dix/devices.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/dix/devices.c b/dix/devices.c index 2e65a041d..62ff4b04c 100644 --- a/dix/devices.c +++ b/dix/devices.c @@ -2018,8 +2018,9 @@ ProcChangeKeyboardControl (ClientPtr client) keyboard = PickKeyboard(client); for (pDev = inputInfo.devices; pDev; pDev = pDev->next) { - if ((pDev == keyboard || (!IsMaster(pDev) && pDev->u.master == keyboard)) && - pDev->kbdfeed && pDev->kbdfeed->CtrlProc) { + if ((pDev == keyboard || + (!IsMaster(pDev) && GetMaster(pDev, MASTER_KEYBOARD) == keyboard)) + && pDev->kbdfeed && pDev->kbdfeed->CtrlProc) { ret = XaceHook(XACE_DEVICE_ACCESS, client, pDev, DixManageAccess); if (ret != Success) return ret; @@ -2027,8 +2028,9 @@ ProcChangeKeyboardControl (ClientPtr client) } for (pDev = inputInfo.devices; pDev; pDev = pDev->next) { - if ((pDev == keyboard || (!IsMaster(pDev) && pDev->u.master == keyboard)) && - pDev->kbdfeed && pDev->kbdfeed->CtrlProc) { + if ((pDev == keyboard || + (!IsMaster(pDev) && GetMaster(pDev, MASTER_KEYBOARD) == keyboard)) + && pDev->kbdfeed && pDev->kbdfeed->CtrlProc) { ret = DoChangeKeyboardControl(client, pDev, vlist, vmask); if (ret != Success) error = ret; @@ -2088,7 +2090,8 @@ ProcBell(ClientPtr client) newpercent = base - newpercent + stuff->percent; for (dev = inputInfo.devices; dev; dev = dev->next) { - if ((dev == keybd || (!IsMaster(dev) && dev->u.master == keybd)) && + if ((dev == keybd || + (!IsMaster(dev) && GetMaster(dev, MASTER_KEYBOARD) == keybd)) && dev->kbdfeed && dev->kbdfeed->BellProc) { rc = XaceHook(XACE_DEVICE_ACCESS, client, dev, DixBellAccess); @@ -2157,7 +2160,8 @@ ProcChangePointerControl(ClientPtr client) } for (dev = inputInfo.devices; dev; dev = dev->next) { - if ((dev == mouse || (!IsMaster(dev) && dev->u.master == mouse)) && + if ((dev == mouse || + (!IsMaster(dev) && GetMaster(dev, MASTER_POINTER) == mouse)) && dev->ptrfeed) { rc = XaceHook(XACE_DEVICE_ACCESS, client, dev, DixManageAccess); if (rc != Success) @@ -2166,7 +2170,8 @@ ProcChangePointerControl(ClientPtr client) } for (dev = inputInfo.devices; dev; dev = dev->next) { - if ((dev == mouse || (!IsMaster(dev) && dev->u.master == mouse)) && + if ((dev == mouse || + (!IsMaster(dev) && GetMaster(dev, MASTER_POINTER) == mouse)) && dev->ptrfeed) { dev->ptrfeed->ctrl = ctrl; } From a90052ba8697e217b0dc68057d7b9202ae8797db Mon Sep 17 00:00:00 2001 From: David Ge Date: Thu, 19 Aug 2010 00:33:57 -0500 Subject: [PATCH 024/125] xkb: Fix RedirectKey didn't send any event. Xorg.log shows error: Valuators reported for non-valuator device. This is caused by uninitialized valuators.mask in _XkbFilterRedirectKey(), which trigger the error in UpdateDeviceState(). Signed-off-by: David Ge Reviewed-by: Peter Hutterer Signed-off-by: Peter Hutterer --- xkb/xkbActions.c | 1 + 1 file changed, 1 insertion(+) diff --git a/xkb/xkbActions.c b/xkb/xkbActions.c index 8c75301b0..c0204441f 100644 --- a/xkb/xkbActions.c +++ b/xkb/xkbActions.c @@ -806,6 +806,7 @@ ProcessInputProc backupproc; /* never actually used uninitialised, but gcc isn't smart enough * to work that out. */ memset(&old, 0, sizeof(old)); + memset(&ev, 0, sizeof(ev)); if ((filter->keycode!=0)&&(filter->keycode!=keycode)) return 1; From 4a12aecac670debd0dafb17c245fccb93eea2d60 Mon Sep 17 00:00:00 2001 From: Jesse Adkins Date: Wed, 25 Aug 2010 13:48:29 -0700 Subject: [PATCH 025/125] xfree86: Document terminate not mapped by default (bug 25083) Document that terminate is not mapped to Ctrl+Alt+Backspace by default, to help alleviate some confusion. Signed-off-by: Jesse Adkins Reviewed-by: Peter Hutterer Signed-off-by: Peter Hutterer --- hw/xfree86/doc/man/Xorg.man.pre | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/hw/xfree86/doc/man/Xorg.man.pre b/hw/xfree86/doc/man/Xorg.man.pre index 46d0e4468..805f3a3e2 100644 --- a/hw/xfree86/doc/man/Xorg.man.pre +++ b/hw/xfree86/doc/man/Xorg.man.pre @@ -1,4 +1,6 @@ .\" $XdotOrg: xserver/xorg/hw/xfree86/doc/man/Xorg.man.pre,v 1.3 2005/07/04 18:41:01 ajax Exp $ +.\" shorthand for double quote that works everywhere. +.ds q \N'34' .TH __xservername__ __appmansuffix__ __vendorversion__ .SH NAME __xservername__ - X11R7 X server @@ -440,6 +442,14 @@ Immediately kills the server -- no questions asked. It can be disabled by setting the .B DontZap __xconfigfile__(__filemansuffix__) file option to a TRUE value. +.PP +.RS 8 +It should be noted that zapping is triggered by the +.B Terminate_Server +action in the keyboard map. This action is not part of the default keymaps +but can be enabled with the XKB option +.B \*qterminate:ctrl_alt_bksp\*q. +.RE .TP 8 .B Ctrl+Alt+Keypad-Plus Change video mode to next one specified in the configuration file. From 05e616767e5b7e60b92d31c4042ded5892dce6d4 Mon Sep 17 00:00:00 2001 From: Adam Tkac Date: Wed, 25 Aug 2010 10:38:40 +0200 Subject: [PATCH 026/125] Return Success from generate_modkeymap() when max_keys_per_mod is zero max_keys_per_mod equal to zero is a valid situation so generate_modkeymap should not return BadAlloc in this case. Signed-off-by: Adam Tkac Reviewed-by: Patrick E. Kane Signed-off-by: Peter Hutterer --- dix/inpututils.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/dix/inpututils.c b/dix/inpututils.c index 8ec80b5e8..6693c67b3 100644 --- a/dix/inpututils.c +++ b/dix/inpututils.c @@ -286,7 +286,7 @@ int generate_modkeymap(ClientPtr client, DeviceIntPtr dev, { CARD8 keys_per_mod[8]; int max_keys_per_mod; - KeyCode *modkeymap; + KeyCode *modkeymap = NULL; int i, j, ret; ret = XaceHook(XACE_DEVICE_ACCESS, client, dev, DixGetAttrAccess); @@ -310,18 +310,20 @@ int generate_modkeymap(ClientPtr client, DeviceIntPtr dev, } } - modkeymap = calloc(max_keys_per_mod * 8, sizeof(KeyCode)); - if (!modkeymap) - return BadAlloc; + if (max_keys_per_mod != 0) { + modkeymap = calloc(max_keys_per_mod * 8, sizeof(KeyCode)); + if (!modkeymap) + return BadAlloc; - for (i = 0; i < 8; i++) - keys_per_mod[i] = 0; + for (i = 0; i < 8; i++) + keys_per_mod[i] = 0; - for (i = 8; i < MAP_LENGTH; i++) { - for (j = 0; j < 8; j++) { - if (dev->key->xkbInfo->desc->map->modmap[i] & (1 << j)) { - modkeymap[(j * max_keys_per_mod) + keys_per_mod[j]] = i; - keys_per_mod[j]++; + for (i = 8; i < MAP_LENGTH; i++) { + for (j = 0; j < 8; j++) { + if (dev->key->xkbInfo->desc->map->modmap[i] & (1 << j)) { + modkeymap[(j * max_keys_per_mod) + keys_per_mod[j]] = i; + keys_per_mod[j]++; + } } } } From 7925e8945649d4af237e6c3c5593b895a461bd1e Mon Sep 17 00:00:00 2001 From: Chase Douglas Date: Wed, 1 Sep 2010 14:45:34 +1000 Subject: [PATCH 027/125] Fix udev population of Bluetooth input device product IDs The udev device_added function takes the vendor and model IDs of added devices and converts them into an attribute that can be matched for by an InputClass configuration using MatchUSBID. Currently, the udev mechanism works for USB devices, but fails to work properly for Bluetooth devices. The product IDs of the event node are actually the IDs of the Bluetooth receiver instead of the device. This patch reads the product ID from the PRODUCT property of the parent of the added device. This tag is set correctly for both USB and Bluetooth input devices. The following devices have been tested by specifying individual InputClass sections in xorg.conf: * Apple Keyboard (Bluetooth) * Apple Magic Trackpad (Bluetooth) * Apple Magic Mouse (Bluetooth) * Microsoft Bluetooth Notebook Mouse 5000 (Bluetooth) * Microsoft IntelliMouse Optical (USB) * N-Trig Touchscreen (USB) * Wacom Bamboo Touch (USB) Signed-off-by: Chase Douglas Reviewed-by: Peter Hutterer Signed-off-by: Peter Hutterer --- config/udev.c | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/config/udev.c b/config/udev.c index 993449075..b7717c96d 100644 --- a/config/udev.c +++ b/config/udev.c @@ -58,7 +58,6 @@ device_added(struct udev_device *udev_device) char *config_info = NULL; const char *syspath; const char *tags_prop; - const char *usb_vendor = NULL, *usb_model = NULL; const char *key, *value, *tmp; InputOption *options = NULL, *tmpo; InputAttributes attrs = {}; @@ -94,6 +93,8 @@ device_added(struct udev_device *udev_device) parent = udev_device_get_parent(udev_device); if (parent) { const char *ppath = udev_device_get_devnode(parent); + const char *product = udev_device_get_property_value(parent, "PRODUCT"); + unsigned int usb_vendor, usb_model; name = udev_device_get_sysattr_value(parent, "name"); LOG_SYSATTR(ppath, "name", name); @@ -104,6 +105,13 @@ device_added(struct udev_device *udev_device) attrs.pnp_id = udev_device_get_sysattr_value(parent, "id"); LOG_SYSATTR(ppath, "id", attrs.pnp_id); + + /* construct USB ID in lowercase hex - "0000:ffff" */ + if (product && sscanf(product, "%*x/%4x/%4x/%*x", &usb_vendor, &usb_model) == 2) { + attrs.usb_id = Xprintf("%04x:%04x", usb_vendor, usb_model); + if (attrs.usb_id) + LOG_PROPERTY(path, "PRODUCT", product); + } } if (!name) name = "(unnamed)"; @@ -152,12 +160,6 @@ device_added(struct udev_device *udev_device) } else if (!strcmp(key, "ID_VENDOR")) { LOG_PROPERTY(path, key, value); attrs.vendor = value; - } else if (!strcmp(key, "ID_VENDOR_ID")) { - LOG_PROPERTY(path, key, value); - usb_vendor = value; - } else if (!strcmp(key, "ID_VENDOR_MODEL")) { - LOG_PROPERTY(path, key, value); - usb_model = value; } else if (!strcmp(key, "ID_INPUT_KEY")) { LOG_PROPERTY(path, key, value); attrs.flags |= ATTR_KEYBOARD; @@ -179,16 +181,6 @@ device_added(struct udev_device *udev_device) } } - /* construct USB ID in lowercase hex - "0000:ffff" */ - if (usb_vendor && usb_model) { - attrs.usb_id = Xprintf("%s:%s", usb_vendor, usb_model); - if (attrs.usb_id) { - char *cur; - for (cur = attrs.usb_id; *cur; cur++) - *cur = tolower(*cur); - } - } - LogMessage(X_INFO, "config/udev: Adding input device %s (%s)\n", name, path); rc = NewInputDeviceRequest(options, &attrs, &dev); From ff055506f0cbb852bed17acb9f9bbf1d715a854e Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Mon, 23 Aug 2010 13:20:09 +1000 Subject: [PATCH 028/125] dix: fix crash when removing devices on a buttonless MD pointer (#29669) If the master does not have a button class, recalculating the number of buttons required for this master dereferences a NULL pointer. Guard against this, if the master pointer doesn't have a button class, it doesn't need to update it's number of buttons. Reproducible: Two devices on the same master, device NB with axes but no buttons, device A+B with axes and button . If NB was the last one to send an event through the master when A+B is removed from the server, master->button is NULL and leads to the above NULL-pointer dereference. X.Org Bug 29669 Signed-off-by: Peter Hutterer Reviewed-by: Keith Packard --- dix/devices.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dix/devices.c b/dix/devices.c index 62ff4b04c..f5d295295 100644 --- a/dix/devices.c +++ b/dix/devices.c @@ -2341,7 +2341,7 @@ RecalculateMasterButtons(DeviceIntPtr slave) maxbuttons = max(maxbuttons, dev->button->numButtons); } - if (master->button->numButtons != maxbuttons) + if (master->button && master->button->numButtons != maxbuttons) { int i; DeviceChangedEvent event; From 86560b5d05f14bdf04d21b3457a66c0d5045db9c Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Tue, 24 Aug 2010 13:46:35 +1000 Subject: [PATCH 029/125] dix: don't set time to CurrentTime in DeviceChangedEvents. CurrentTime is used by clients to skip setting the time, but not by the server. Signed-off-by: Peter Hutterer Reviewed-by: Keith Packard --- dix/devices.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dix/devices.c b/dix/devices.c index f5d295295..e506f6ac1 100644 --- a/dix/devices.c +++ b/dix/devices.c @@ -2352,7 +2352,7 @@ RecalculateMasterButtons(DeviceIntPtr slave) event.header = ET_Internal; event.type = ET_DeviceChanged; - event.time = CurrentTime; + event.time = GetTimeInMillis(); event.deviceid = master->id; event.flags = DEVCHANGE_POINTER_EVENT | DEVCHANGE_DEVICE_CHANGE; event.buttons.num_buttons = maxbuttons; From e00e2e7b68fbc932269d607ac5dc2c441d07ad9d Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Mon, 23 Aug 2010 08:35:01 +1000 Subject: [PATCH 030/125] xfree86: Check for existence of button class before dereferencing it. The Irxon Super Mini Bluetooth Wireless Keyboard for PC/PDA/Cell Phones keyboards have axes but not buttons. The evdev driver doesn't set up a button class for these keyboards and a motion event handled by DGAProcessPointerEvent dereferences the dev->button NULL pointer, causing a server crash. Signed-off-by: Peter Hutterer Reviewed-by: Keith Packard --- hw/xfree86/common/xf86DGA.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/xfree86/common/xf86DGA.c b/hw/xfree86/common/xf86DGA.c index 82fb52a05..c468c6038 100644 --- a/hw/xfree86/common/xf86DGA.c +++ b/hw/xfree86/common/xf86DGA.c @@ -1095,7 +1095,7 @@ DGAProcessPointerEvent (ScreenPtr pScreen, DGAEvent *event, DeviceIntPtr mouse) ev.header = ET_Internal; ev.length = sizeof(ev); ev.type = event->subtype; - ev.corestate = butc->state; + ev.corestate = butc ? butc->state : 0; if (master && master->key) ev.corestate |= XkbStateFieldFromRec(&master->key->xkbInfo->state); From 71972c2534d490284d3d42b456c2f34b964b2894 Mon Sep 17 00:00:00 2001 From: Thomas Hellstrom Date: Thu, 2 Sep 2010 10:53:28 +0200 Subject: [PATCH 031/125] linux: Don't lose console events on non-evdev drivers (#29969) The drain_console() function will race with new keyboard events being added by the hardware causing the server to lose keyboard events if the console fd is used for input. Only use the drain_console() when AllowEmptyInput is off which is the best indicator we have for whether the keyboard driver will be used. This patch will only fix the bug when hotplugging is disabled. What we really need is a way to figure out either whether we're _not_ using the keyboard driver (not predictable) or a way for the keyboard driver to disable drain_console(). X.Org Bug 29969 Signed-off-by: Thomas Hellstrom Reviewed-by: Peter Hutterer Reviewed-by: Adam Jackson Signed-off-by: Peter Hutterer --- hw/xfree86/os-support/linux/lnx_init.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hw/xfree86/os-support/linux/lnx_init.c b/hw/xfree86/os-support/linux/lnx_init.c index c8cec2ecb..92bfde48f 100644 --- a/hw/xfree86/os-support/linux/lnx_init.c +++ b/hw/xfree86/os-support/linux/lnx_init.c @@ -277,8 +277,9 @@ xf86OpenConsole(void) tcsetattr(xf86Info.consoleFd, TCSANOW, &nTty); /* need to keep the buffer clean, else the kernel gets angry */ - console_handler = xf86AddGeneralHandler(xf86Info.consoleFd, - drain_console, NULL); + if (xf86Info.allowEmptyInput) + console_handler = xf86AddGeneralHandler(xf86Info.consoleFd, + drain_console, NULL); /* we really should have a InitOSInputDevices() function instead * of Init?$#*&Device(). So I just place it here */ From 9ef6241c2382bfc555284a4985f6d1e37d750d6f Mon Sep 17 00:00:00 2001 From: Eamon Walsh Date: Mon, 23 Aug 2010 16:04:03 -0400 Subject: [PATCH 032/125] Fix property and selection devPrivate allocation. Selection objects were not being allocated with privates, and both objects had a stray statement that zeroed out the devPrivates field. Signed-off-by: Eamon Walsh Reported-by: Justin Mattock Reviewed-by: Adam Jackson Signed-off-by: Keith Packard --- dix/property.c | 1 - dix/selection.c | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/dix/property.c b/dix/property.c index 87e5c2d18..1d4332a58 100644 --- a/dix/property.c +++ b/dix/property.c @@ -284,7 +284,6 @@ dixChangeWindowProperty(ClientPtr pClient, WindowPtr pWin, Atom property, pProp->format = format; pProp->data = data; pProp->size = len; - pProp->devPrivates = NULL; rc = XaceHookPropertyAccess(pClient, pWin, &pProp, DixCreateAccess|DixWriteAccess); if (rc != Success) { diff --git a/dix/selection.c b/dix/selection.c index bae3a3092..87ed1abe9 100644 --- a/dix/selection.c +++ b/dix/selection.c @@ -196,12 +196,11 @@ ProcSetSelectionOwner(ClientPtr client) /* * It doesn't exist, so add it... */ - pSel = malloc(sizeof(Selection)); + pSel = dixAllocateObjectWithPrivates(Selection, PRIVATE_SELECTION); if (!pSel) return BadAlloc; pSel->selection = stuff->selection; - pSel->devPrivates = NULL; /* security creation/labeling check */ rc = XaceHookSelectionAccess(client, &pSel, From 6edbdb7f9e02ecb069c6fe6c0600fc389553ec5d Mon Sep 17 00:00:00 2001 From: Aaron Plattner Date: Mon, 23 Aug 2010 11:37:46 -0700 Subject: [PATCH 033/125] Tag sdksyms.c entries with source file and line number Signed-off-by: Aaron Plattner Reviewed-by: Adam Jackson Signed-off-by: Keith Packard --- hw/xfree86/loader/sdksyms.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/hw/xfree86/loader/sdksyms.sh b/hw/xfree86/loader/sdksyms.sh index 13c5ae5f8..700879cb2 100755 --- a/hw/xfree86/loader/sdksyms.sh +++ b/hw/xfree86/loader/sdksyms.sh @@ -345,11 +345,14 @@ BEGIN { if (sdk && $3 ~ /\.h"$/) { # remove quotes gsub(/"/, "", $3); + line = $2; + header = $3; if (! headers[$3]) { printf(" \\\n %s", $3) >> "sdksyms.dep"; headers[$3] = 1; } } + next; } /^extern[ ]/ { @@ -398,10 +401,14 @@ BEGIN { sub(/[^a-zA-Z0-9_].*/, "", symbol); #print; - printf(" (void *) &%s,\n", symbol); + printf(" (void *) &%-50s /* %s:%s */\n", symbol ",", header, line); } } +{ + line++; +} + END { print("};"); From cf88363db0ebb42df7cc286b85d30d7898aea840 Mon Sep 17 00:00:00 2001 From: Aaron Plattner Date: Fri, 27 Aug 2010 10:20:29 -0700 Subject: [PATCH 034/125] os: Return BadLength instead of disconnecting BigReq clients (#4565) If a client sends a big request that's too big (i.e. bigger than maxBigRequestSize << 2 bytes), the server just disconnects it. This makes the client receive SIGPIPE the next time it tries to send something. The X Test Suite sends requests that are too big when the test specifies the TOO_LONG test type. When the client receives SIGPIPE, XTS marks it as UNRESOLVED, which counts as a failure. Instead, remember how long the request is supposed to be and then return that size. Dispatch() checks the length and sends BadLength to the client. Then, whenever oci->ignoreBytes is nonzero, ignore the data read instead of trying to process it as a request. Signed-off-by: Aaron Plattner Reviewed-by: Keith Packard Signed-off-by: Keith Packard --- os/io.c | 27 ++++++++++++++++++++++++--- os/osdep.h | 1 + 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/os/io.c b/os/io.c index e2df2e3ed..fb9f76207 100644 --- a/os/io.c +++ b/os/io.c @@ -251,7 +251,14 @@ ReadRequestFromClient(ClientPtr client) need_header = FALSE; move_header = FALSE; gotnow = oci->bufcnt + oci->buffer - oci->bufptr; - if (gotnow < sizeof(xReq)) + + if (oci->ignoreBytes > 0) { + if (oci->ignoreBytes > oci->size) + needed = oci->size; + else + needed = oci->ignoreBytes; + } + else if (gotnow < sizeof(xReq)) { /* We don't have an entire xReq yet. Can't tell how big * the request will be until we get the whole xReq. @@ -294,8 +301,13 @@ ReadRequestFromClient(ClientPtr client) if (needed > maxBigRequestSize << 2) { /* request is too big for us to handle */ - YieldControlDeath(); - return -1; + /* + * Mark the rest of it as needing to be ignored, and then return + * the full size. Dispatch() will turn it into a BadLength error. + */ + oci->ignoreBytes = needed - gotnow; + oci->lenLastReq = gotnow; + return needed; } if ((gotnow == 0) || ((oci->bufptr - oci->buffer + needed) > oci->size)) @@ -400,6 +412,14 @@ ReadRequestFromClient(ClientPtr client) } oci->lenLastReq = needed; + /* If there are bytes to ignore, ignore them now. */ + + if (oci->ignoreBytes > 0) { + assert(needed == oci->ignoreBytes || needed == oci->size); + oci->ignoreBytes -= gotnow; + needed = gotnow = 0; + } + /* * Check to see if client has at least one whole request in the * buffer beyond the request we're returning to the caller. @@ -1030,6 +1050,7 @@ AllocateInputBuffer(void) oci->bufptr = oci->buffer; oci->bufcnt = 0; oci->lenLastReq = 0; + oci->ignoreBytes = 0; return oci; } diff --git a/os/osdep.h b/os/osdep.h index 1d87592e3..3c0e78f06 100644 --- a/os/osdep.h +++ b/os/osdep.h @@ -125,6 +125,7 @@ typedef struct _connectionInput { int bufcnt; /* count of bytes in buffer */ int lenLastReq; int size; + unsigned int ignoreBytes; /* bytes to ignore before the next request */ } ConnectionInput, *ConnectionInputPtr; typedef struct _connectionOutput { From 5b680f2c23fb3d35c721647d0334f63297589371 Mon Sep 17 00:00:00 2001 From: "Vignatti Tiago (Nokia-MS/Helsinki)" Date: Mon, 30 Aug 2010 21:24:30 +0300 Subject: [PATCH 035/125] os: add -sigstop option for Upstart (or equivalent) startup This is very similar to the RunFromSmartParent (implicit) option, except we do not send the signal to our parent process, but our own process instead, and that signal is SIGSTOP, not SIGUSR1. Upstart or a similar equivalent program will detect this, realize that we are ready to accept clients now, send us SIGCONT and move our job status from SPAWNED to RUNNING. Signed-off-by: Oliver McFadden Acked-by: Peter Hutterer Signed-off-by: Tiago Vignatti Signed-off-by: Keith Packard --- include/opaque.h | 1 + os/connection.c | 4 ++++ os/utils.c | 5 +++++ 3 files changed, 10 insertions(+) diff --git a/include/opaque.h b/include/opaque.h index b3c7c70d6..dfe440cdc 100644 --- a/include/opaque.h +++ b/include/opaque.h @@ -55,6 +55,7 @@ extern _X_EXPORT int defaultBackingStore; extern _X_EXPORT Bool disableBackingStore; extern _X_EXPORT Bool enableBackingStore; extern _X_EXPORT Bool PartialNetwork; +extern _X_EXPORT Bool RunFromSigStopParent; #ifndef NOLOGOHACK extern _X_EXPORT int logoScreenSaver; #endif diff --git a/os/connection.c b/os/connection.c index 77910be52..28cd1935c 100644 --- a/os/connection.c +++ b/os/connection.c @@ -146,6 +146,8 @@ Bool NewOutputPending; /* not yet attempted to write some new output */ Bool AnyClientsWriteBlocked; /* true if some client blocked on write */ static Bool RunFromSmartParent; /* send SIGUSR1 to parent process */ +Bool RunFromSigStopParent; /* send SIGSTOP to our own process; Upstart (or + equivalent) will send SIGCONT back. */ Bool PartialNetwork; /* continue even if unable to bind all addrs */ static Pid_t ParentProcess; @@ -357,6 +359,8 @@ NotifyParentProcess(void) kill (ParentProcess, SIGUSR1); } } + if (RunFromSigStopParent) + raise (SIGSTOP); #endif } diff --git a/os/utils.c b/os/utils.c index 51455cca1..f30674ba5 100644 --- a/os/utils.c +++ b/os/utils.c @@ -527,6 +527,7 @@ void UseMsg(void) #endif ErrorF("-dumbSched Disable smart scheduling, enable old behavior\n"); ErrorF("-schedInterval int Set scheduler interval in msec\n"); + ErrorF("-sigstop Enable SIGSTOP based startup\n"); ErrorF("+extension name Enable extension\n"); ErrorF("-extension name Disable extension\n"); #ifdef XDMCP @@ -922,6 +923,10 @@ ProcessCommandLine(int argc, char *argv[]) else UseMsg (); } + else if ( strcmp( argv[i], "-sigstop") == 0) + { + RunFromSigStopParent = TRUE; + } else if ( strcmp( argv[i], "+extension") == 0) { if (++i < argc) From 9a1a4ccbe026f34beca5db3b2243874906961b49 Mon Sep 17 00:00:00 2001 From: Eamon Walsh Date: Mon, 30 Aug 2010 16:37:05 -0400 Subject: [PATCH 036/125] Add screens to the PRIVATE_XSELINUX set. The SELinux extension does store a security label in the screen devPrivates. Fixes crash caused by overwriting another private. Signed-off-by: Eamon Walsh Reported-by: Justin Mattock Signed-off-by: Keith Packard --- dix/privates.c | 1 + 1 file changed, 1 insertion(+) diff --git a/dix/privates.c b/dix/privates.c index ec818d411..17e1050d9 100644 --- a/dix/privates.c +++ b/dix/privates.c @@ -71,6 +71,7 @@ static struct { } keys[PRIVATE_LAST]; static const Bool xselinux_private[PRIVATE_LAST] = { + [PRIVATE_SCREEN] = TRUE, [PRIVATE_CLIENT] = TRUE, [PRIVATE_WINDOW] = TRUE, [PRIVATE_PIXMAP] = TRUE, From 648c8871c92727d7b6b16859f27f12266a06a16e Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Wed, 8 Sep 2010 16:08:24 -0400 Subject: [PATCH 037/125] composite: Convert compWindowUpdate to use TraverseTree v2: Use != RedirectDrawNone, since we aren't called for manual windows. Signed-off-by: Adam Jackson Reviewed-by: Keith Packard Signed-off-by: Keith Packard --- composite/compwindow.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/composite/compwindow.c b/composite/compwindow.c index 160b7644f..8849dc317 100644 --- a/composite/compwindow.c +++ b/composite/compwindow.c @@ -639,10 +639,9 @@ compWindowFormat (WindowPtr pWin) } static void -compWindowUpdateAutomatic (WindowPtr pWin) +compWindowUpdateAutomatic (WindowPtr pWin, ScreenPtr pScreen) { CompWindowPtr cw = GetCompWindow (pWin); - ScreenPtr pScreen = pWin->drawable.pScreen; WindowPtr pParent = pWin->parent; PixmapPtr pSrcPixmap = (*pScreen->GetWindowPixmap) (pWin); PictFormatPtr pSrcFormat = compWindowFormat (pWin); @@ -665,8 +664,7 @@ compWindowUpdateAutomatic (WindowPtr pWin) /* * First move the region from window to screen coordinates */ - RegionTranslate(pRegion, - pWin->drawable.x, pWin->drawable.y); + RegionTranslate(pRegion, pWin->drawable.x, pWin->drawable.y); /* * Clip against the "real" border clip @@ -676,8 +674,7 @@ compWindowUpdateAutomatic (WindowPtr pWin) /* * Now translate from screen to dest coordinates */ - RegionTranslate(pRegion, - -pParent->drawable.x, -pParent->drawable.y); + RegionTranslate(pRegion, -pParent->drawable.x, -pParent->drawable.y); /* * Clip the picture @@ -706,23 +703,26 @@ compWindowUpdateAutomatic (WindowPtr pWin) DamageEmpty (cw->damage); } -void -compWindowUpdate (WindowPtr pWin) +static int +compWindowUpdateVisit(WindowPtr pWin, void *data) { - WindowPtr pChild; - - for (pChild = pWin->lastChild; pChild; pChild = pChild->prevSib) - compWindowUpdate (pChild); if (pWin->redirectDraw != RedirectDrawNone) { - CompWindowPtr cw = GetCompWindow(pWin); - + CompWindowPtr cw = GetCompWindow(pWin); if (cw->damaged) { - compWindowUpdateAutomatic (pWin); + compWindowUpdateAutomatic(pWin, data); cw->damaged = FALSE; } } + + return WT_WALKCHILDREN; +} + +void +compWindowUpdate (WindowPtr pWin) +{ + TraverseTree(pWin, compWindowUpdateVisit, pWin->drawable.pScreen); } WindowPtr From a9e6080dc94633a4f497535f619a14fd8b566645 Mon Sep 17 00:00:00 2001 From: Tiago Vignatti Date: Fri, 10 Sep 2010 15:01:29 +0300 Subject: [PATCH 038/125] os/xfree86: remove macro checking for POSIX symbols We assume already that our X implementation is POSIX compliant anyway. So remove those redundant checking. SA_SIGINFO is left there. Signed-off-by: Tiago Vignatti Reviewed-by: Jeremy Huddleston Reviewed-by: Jon TURNEY --- hw/xfree86/common/xf86Init.c | 10 ---------- hw/xfree86/parser/write.c | 4 ---- os/osinit.c | 6 ------ os/utils.c | 21 --------------------- 4 files changed, 41 deletions(-) diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c index 3c7fbcb64..877ebabf3 100644 --- a/hw/xfree86/common/xf86Init.c +++ b/hw/xfree86/common/xf86Init.c @@ -314,18 +314,10 @@ InstallSignalHandlers(void) signal(SIGEMT, SIG_DFL); #endif signal(SIGFPE, SIG_DFL); -#ifdef SIGBUS signal(SIGBUS, SIG_DFL); -#endif -#ifdef SIGSYS signal(SIGSYS, SIG_DFL); -#endif -#ifdef SIGXCPU signal(SIGXCPU, SIG_DFL); -#endif -#ifdef SIGXFSZ signal(SIGXFSZ, SIG_DFL); -#endif } } @@ -863,9 +855,7 @@ OsVendorInit(void) { static Bool beenHere = FALSE; -#ifdef SIGCHLD signal(SIGCHLD, SIG_DFL); /* Need to wait for child processes */ -#endif if (!beenHere) { umask(022); diff --git a/hw/xfree86/parser/write.c b/hw/xfree86/parser/write.c index 083203c05..eea3f0693 100644 --- a/hw/xfree86/parser/write.c +++ b/hw/xfree86/parser/write.c @@ -157,9 +157,7 @@ xf86writeConfigFile (const char *filename, XF86ConfigPtr cptr) #if !defined(HAS_SAVED_IDS_AND_SETEUID) /* Need to fork to change ruid without loosing euid */ -#ifdef SIGCHLD csig = signal(SIGCHLD, SIG_DFL); -#endif switch ((pid = fork())) { case -1: @@ -180,9 +178,7 @@ xf86writeConfigFile (const char *filename, XF86ConfigPtr cptr) p = waitpid(pid, &status, 0); } while (p == -1 && errno == EINTR); } -#ifdef SIGCHLD signal(SIGCHLD, csig); -#endif if (p != -1 && WIFEXITED(status) && WEXITSTATUS(status) == 0) return 1; /* success */ else diff --git a/os/osinit.c b/os/osinit.c index 32747df52..de815c6cd 100644 --- a/os/osinit.c +++ b/os/osinit.c @@ -168,15 +168,9 @@ OsInit(void) struct sigaction act, oact; int i; int siglist[] = { SIGSEGV, SIGQUIT, SIGILL, SIGFPE, SIGBUS, -#ifdef SIGSYS SIGSYS, -#endif -#ifdef SIGXCPU SIGXCPU, -#endif -#ifdef SIGXFSZ SIGXFSZ, -#endif #ifdef SIGEMT SIGEMT, #endif diff --git a/os/utils.c b/os/utils.c index f30674ba5..4486db137 100644 --- a/os/utils.c +++ b/os/utils.c @@ -1122,10 +1122,7 @@ XNFstrdup(const char *s) } -#ifdef SIGVTALRM #define SMART_SCHEDULE_POSSIBLE -#endif - #ifdef SMART_SCHEDULE_POSSIBLE #define SMART_SCHEDULE_SIGNAL SIGALRM #define SMART_SCHEDULE_TIMER ITIMER_REAL @@ -1211,30 +1208,18 @@ OsBlockSignals (void) sigset_t set; sigemptyset (&set); -#ifdef SIGALRM sigaddset (&set, SIGALRM); -#endif -#ifdef SIGVTALRM sigaddset (&set, SIGVTALRM); -#endif #ifdef SIGWINCH sigaddset (&set, SIGWINCH); #endif #ifdef SIGIO sigaddset (&set, SIGIO); #endif -#ifdef SIGTSTP sigaddset (&set, SIGTSTP); -#endif -#ifdef SIGTTIN sigaddset (&set, SIGTTIN); -#endif -#ifdef SIGTTOU sigaddset (&set, SIGTTOU); -#endif -#ifdef SIGCHLD sigaddset (&set, SIGCHLD); -#endif sigprocmask (SIG_BLOCK, &set, &PreviousSignalMask); } #endif @@ -1280,21 +1265,17 @@ int System(char *command) { int pid, p; -#ifdef SIGCHLD void (*csig)(int); -#endif int status; if (!command) return 1; -#ifdef SIGCHLD csig = signal(SIGCHLD, SIG_DFL); if (csig == SIG_ERR) { perror("signal"); return -1; } -#endif #ifdef DEBUG ErrorF("System: `%s'\n", command); @@ -1317,12 +1298,10 @@ System(char *command) } -#ifdef SIGCHLD if (signal(SIGCHLD, csig) == SIG_ERR) { perror("signal"); return -1; } -#endif return p == -1 ? -1 : status; } From d9c18c3b9badf38d499e3f53291bd23fda3c4340 Mon Sep 17 00:00:00 2001 From: Tiago Vignatti Date: Wed, 4 Aug 2010 15:54:48 +0300 Subject: [PATCH 039/125] os: remove useless smart scheduler macros Signed-off-by: Tiago Vignatti Reviewed-by: Jeremy Huddleston Reviewed-by: Jon TURNEY --- os/utils.c | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/os/utils.c b/os/utils.c index 4486db137..cc942e954 100644 --- a/os/utils.c +++ b/os/utils.c @@ -1121,17 +1121,9 @@ XNFstrdup(const char *s) return ret; } - -#define SMART_SCHEDULE_POSSIBLE -#ifdef SMART_SCHEDULE_POSSIBLE -#define SMART_SCHEDULE_SIGNAL SIGALRM -#define SMART_SCHEDULE_TIMER ITIMER_REAL -#endif - void SmartScheduleStopTimer (void) { -#ifdef SMART_SCHEDULE_POSSIBLE struct itimerval timer; if (SmartScheduleDisable) @@ -1141,13 +1133,11 @@ SmartScheduleStopTimer (void) timer.it_value.tv_sec = 0; timer.it_value.tv_usec = 0; (void) setitimer (ITIMER_REAL, &timer, 0); -#endif } void SmartScheduleStartTimer (void) { -#ifdef SMART_SCHEDULE_POSSIBLE struct itimerval timer; if (SmartScheduleDisable) @@ -1157,21 +1147,17 @@ SmartScheduleStartTimer (void) timer.it_value.tv_sec = 0; timer.it_value.tv_usec = SmartScheduleInterval * 1000; setitimer (ITIMER_REAL, &timer, 0); -#endif } -#ifdef SMART_SCHEDULE_POSSIBLE static void SmartScheduleTimer (int sig) { SmartScheduleTime += SmartScheduleInterval; } -#endif Bool SmartScheduleInit (void) { -#ifdef SMART_SCHEDULE_POSSIBLE struct sigaction act; if (SmartScheduleDisable) @@ -1182,16 +1168,13 @@ SmartScheduleInit (void) /* Set up the timer signal function */ act.sa_handler = SmartScheduleTimer; sigemptyset (&act.sa_mask); - sigaddset (&act.sa_mask, SMART_SCHEDULE_SIGNAL); - if (sigaction (SMART_SCHEDULE_SIGNAL, &act, 0) < 0) + sigaddset (&act.sa_mask, SIGALRM); + if (sigaction (SIGALRM, &act, 0) < 0) { perror ("sigaction for smart scheduler"); return FALSE; } return TRUE; -#else - return FALSE; -#endif } #ifdef SIG_BLOCK From 7d8cabd027cfc55e9921307e5b3dd7052de8496f Mon Sep 17 00:00:00 2001 From: Tiago Vignatti Date: Wed, 4 Aug 2010 16:12:59 +0300 Subject: [PATCH 040/125] os: simplify smart scheduler init process Signed-off-by: Tiago Vignatti Reviewed-by: Jeremy Huddleston Reviewed-by: Jon TURNEY --- include/dixstruct.h | 2 +- os/osinit.c | 4 +--- os/utils.c | 9 ++++----- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/include/dixstruct.h b/include/dixstruct.h index efa2577f8..8547b16ce 100644 --- a/include/dixstruct.h +++ b/include/dixstruct.h @@ -136,7 +136,7 @@ extern _X_EXPORT void SmartScheduleStopTimer(void); #define SMART_MAX_PRIORITY (20) #define SMART_MIN_PRIORITY (-20) -extern _X_EXPORT Bool SmartScheduleInit(void); +extern _X_EXPORT void SmartScheduleInit(void); /* This prototype is used pervasively in Xext, dix */ diff --git a/os/osinit.c b/os/osinit.c index de815c6cd..c83c32cf5 100644 --- a/os/osinit.c +++ b/os/osinit.c @@ -305,9 +305,7 @@ OsInit(void) * log file name if logging to a file is desired. */ LogInit(NULL, NULL); - if (!SmartScheduleDisable) - if (!SmartScheduleInit ()) - SmartScheduleDisable = TRUE; + SmartScheduleInit (); } void diff --git a/os/utils.c b/os/utils.c index cc942e954..8921d7c5f 100644 --- a/os/utils.c +++ b/os/utils.c @@ -1155,14 +1155,14 @@ SmartScheduleTimer (int sig) SmartScheduleTime += SmartScheduleInterval; } -Bool +void SmartScheduleInit (void) { struct sigaction act; if (SmartScheduleDisable) - return TRUE; - + return; + memset((char *) &act, 0, sizeof(struct sigaction)); /* Set up the timer signal function */ @@ -1172,9 +1172,8 @@ SmartScheduleInit (void) if (sigaction (SIGALRM, &act, 0) < 0) { perror ("sigaction for smart scheduler"); - return FALSE; + SmartScheduleDisable = TRUE; } - return TRUE; } #ifdef SIG_BLOCK From 5098801b3a570d0bb3386d7d210f21a1cbf3bf12 Mon Sep 17 00:00:00 2001 From: Tiago Vignatti Date: Sat, 12 Jun 2010 16:57:50 +0300 Subject: [PATCH 041/125] mi: delete unused code pBSReg is always NULL, so the statement after the conditional will never be reached. Signed-off-by: Tiago Vignatti Reviewed-by: Mikhail Gusarov --- mi/miwindow.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/mi/miwindow.c b/mi/miwindow.c index 25dd1c045..dc5d21a5f 100644 --- a/mi/miwindow.c +++ b/mi/miwindow.c @@ -66,7 +66,6 @@ miClearToBackground(WindowPtr pWin, { BoxRec box; RegionRec reg; - RegionPtr pBSReg = NullRegion; BoxPtr extents; int x1, y1, x2, y2; @@ -114,12 +113,10 @@ miClearToBackground(WindowPtr pWin, RegionIntersect(®, ®, &pWin->clipList); if (generateExposures) - (*pWin->drawable.pScreen->WindowExposures)(pWin, ®, pBSReg); + (*pWin->drawable.pScreen->WindowExposures)(pWin, ®, NULL); else if (pWin->backgroundState != None) miPaintWindow(pWin, ®, PW_BACKGROUND); RegionUninit(®); - if (pBSReg) - RegionDestroy(pBSReg); } void From 317e491e067e31ea7cf8cb7301e47de0c10f119e Mon Sep 17 00:00:00 2001 From: Tiago Vignatti Date: Mon, 19 Jul 2010 15:44:39 +0300 Subject: [PATCH 042/125] xext: remove unused header Signed-off-by: Tiago Vignatti Reviewed-by: Jeremy Huddleston --- Xext/geext.c | 1 - 1 file changed, 1 deletion(-) diff --git a/Xext/geext.c b/Xext/geext.c index e61989caa..8319c9291 100644 --- a/Xext/geext.c +++ b/Xext/geext.c @@ -28,7 +28,6 @@ #endif #include "windowstr.h" #include -#include "registry.h" #include "geint.h" #include "geext.h" From 66105d8281f8a6442cf7fee5d10e8b8a34bef952 Mon Sep 17 00:00:00 2001 From: Tiago Vignatti Date: Sun, 30 May 2010 18:16:32 +0300 Subject: [PATCH 043/125] xfree86: fbdevhw: remove unused cmap fields from main structure It was never used since first git revision and probably no one cares for it. ABI break. Signed-off-by: Tiago Vignatti Reviewed-by: Mikhail Gusarov --- hw/xfree86/fbdevhw/fbdevhw.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/hw/xfree86/fbdevhw/fbdevhw.c b/hw/xfree86/fbdevhw/fbdevhw.c index f1609083e..bc9a65a4f 100644 --- a/hw/xfree86/fbdevhw/fbdevhw.c +++ b/hw/xfree86/fbdevhw/fbdevhw.c @@ -96,12 +96,6 @@ typedef struct { /* saved video mode */ struct fb_var_screeninfo saved_var; - /* FIXME: unused??? [geert] */ - struct fb_cmap saved_cmap; - unsigned short *saved_red; - unsigned short *saved_green; - unsigned short *saved_blue; - /* buildin video mode */ DisplayModeRec buildin; @@ -806,8 +800,6 @@ fbdevHWModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode) /* -------------------------------------------------------------------- */ /* video mode save/restore */ - -/* TODO: colormap */ void fbdevHWSave(ScrnInfoPtr pScrn) { From 63b7d9448abbded1cb91e82a13319d5e4313ca0c Mon Sep 17 00:00:00 2001 From: Tiago Vignatti Date: Sun, 30 May 2010 18:44:06 +0300 Subject: [PATCH 044/125] xfree86: fbdevhw: remove unnecessary debug code It very likely no one will want to print all functions of this file for debugging purposes. If this is the case, then a mix of ctags + cpp + gdb can do the same job. Signed-off-by: Tiago Vignatti Reviewed-by: Mikhail Gusarov --- hw/xfree86/fbdevhw/fbdevhw.c | 35 ----------------------------------- 1 file changed, 35 deletions(-) diff --git a/hw/xfree86/fbdevhw/fbdevhw.c b/hw/xfree86/fbdevhw/fbdevhw.c index bc9a65a4f..f50d562ca 100644 --- a/hw/xfree86/fbdevhw/fbdevhw.c +++ b/hw/xfree86/fbdevhw/fbdevhw.c @@ -16,24 +16,11 @@ #include "fbdevhw.h" #include "fbpriv.h" - -#define PAGE_MASK (~(getpagesize() - 1)) - #include "globals.h" #include -#define DEBUG 0 - #define PAGE_MASK (~(getpagesize() - 1)) -#if DEBUG -# define TRACE_ENTER(str) ErrorF("fbdevHW: " str " %d\n",pScrn->scrnIndex) -#else -# define TRACE_ENTER(str) -#endif - -/* -------------------------------------------------------------------- */ - static MODULESETUPPROTO(fbdevhwSetup); static XF86ModuleVersionInfo fbdevHWVersRec = @@ -439,8 +426,6 @@ fbdevHWInit(ScrnInfoPtr pScrn, struct pci_device * pPci, char *device) { fbdevHWPtr fPtr; - TRACE_ENTER("Init"); - fbdevHWGetRec(pScrn); fPtr = FBDEVHWPTR(pScrn); @@ -535,8 +520,6 @@ fbdevHWSetMode(ScrnInfoPtr pScrn, DisplayModePtr mode, Bool check) { fbdevHWPtr fPtr = FBDEVHWPTR(pScrn); struct fb_var_screeninfo req_var = fPtr->var, set_var; - - TRACE_ENTER("SetMode"); xfree2fbdev_fblayout(pScrn, &req_var); xfree2fbdev_timing(mode, &req_var); @@ -580,7 +563,6 @@ fbdevHWSetVideoModes(ScrnInfoPtr pScrn) char **modename; DisplayModePtr mode,this,last = pScrn->modes; - TRACE_ENTER("VerifyModes"); if (NULL == pScrn->display->modes) return; @@ -637,7 +619,6 @@ fbdevHWUseBuildinMode(ScrnInfoPtr pScrn) { fbdevHWPtr fPtr = FBDEVHWPTR(pScrn); - TRACE_ENTER("UseBuildinMode"); pScrn->modes = &fPtr->buildin; pScrn->virtualX = pScrn->display->virtualX; pScrn->virtualY = pScrn->display->virtualY; @@ -663,7 +644,6 @@ fbdevHWMapVidmem(ScrnInfoPtr pScrn) { fbdevHWPtr fPtr = FBDEVHWPTR(pScrn); - TRACE_ENTER("MapVidmem"); if (NULL == fPtr->fbmem) { calculateFbmem_len(fPtr); fPtr->fbmem = mmap(NULL, fPtr->fbmem_len, PROT_READ | PROT_WRITE, @@ -689,7 +669,6 @@ fbdevHWLinearOffset(ScrnInfoPtr pScrn) { fbdevHWPtr fPtr = FBDEVHWPTR(pScrn); - TRACE_ENTER("LinearOffset"); return fPtr->fboff; } @@ -698,7 +677,6 @@ fbdevHWUnmapVidmem(ScrnInfoPtr pScrn) { fbdevHWPtr fPtr = FBDEVHWPTR(pScrn); - TRACE_ENTER("UnmapVidmem"); if (NULL != fPtr->fbmem) { if (-1 == munmap(fPtr->fbmem, fPtr->fbmem_len)) xf86DrvMsg(pScrn->scrnIndex, X_ERROR, @@ -715,7 +693,6 @@ fbdevHWMapMMIO(ScrnInfoPtr pScrn) fbdevHWPtr fPtr = FBDEVHWPTR(pScrn); - TRACE_ENTER("MapMMIO"); if (NULL == fPtr->mmio) { /* tell the kernel not to use accels to speed up console scrolling */ fPtr->var.accel_flags = 0; @@ -746,7 +723,6 @@ fbdevHWUnmapMMIO(ScrnInfoPtr pScrn) { fbdevHWPtr fPtr = FBDEVHWPTR(pScrn); - TRACE_ENTER("UnmapMMIO"); if (NULL != fPtr->mmio) { if (-1 == munmap((void *)((unsigned long)fPtr->mmio & PAGE_MASK), fPtr->mmio_len)) xf86DrvMsg(pScrn->scrnIndex, X_ERROR, @@ -805,7 +781,6 @@ fbdevHWSave(ScrnInfoPtr pScrn) { fbdevHWPtr fPtr = FBDEVHWPTR(pScrn); - TRACE_ENTER("Save"); if (0 != ioctl(fPtr->fd,FBIOGET_VSCREENINFO,(void*)(&fPtr->saved_var))) xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "FBIOGET_VSCREENINFO: %s\n", strerror(errno)); @@ -816,7 +791,6 @@ fbdevHWRestore(ScrnInfoPtr pScrn) { fbdevHWPtr fPtr = FBDEVHWPTR(pScrn); - TRACE_ENTER("Restore"); if (0 != ioctl(fPtr->fd,FBIOPUT_VSCREENINFO,(void*)(&fPtr->saved_var))) xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "FBIOPUT_VSCREENINFO: %s\n", strerror(errno)); @@ -834,7 +808,6 @@ fbdevHWLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices, unsigned short red,green,blue; int i; - TRACE_ENTER("LoadPalette"); cmap.len = 1; cmap.red = &red; cmap.green = &green; @@ -862,8 +835,6 @@ fbdevHWValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags) { ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; - TRACE_ENTER("ValidMode"); - if (!fbdevHWSetMode(pScrn, mode, TRUE)) return MODE_BAD; @@ -875,7 +846,6 @@ fbdevHWSwitchMode(int scrnIndex, DisplayModePtr mode, int flags) { ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; - TRACE_ENTER("SwitchMode"); if (!fbdevHWSetMode(pScrn, mode, FALSE)) return FALSE; @@ -889,7 +859,6 @@ fbdevHWAdjustFrame(int scrnIndex, int x, int y, int flags) ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; fbdevHWPtr fPtr = FBDEVHWPTR(pScrn); - TRACE_ENTER("AdjustFrame"); if ( x < 0 || x + fPtr->var.xres > fPtr->var.xres_virtual || y < 0 || y + fPtr->var.yres > fPtr->var.yres_virtual ) return; @@ -906,7 +875,6 @@ fbdevHWEnterVT(int scrnIndex, int flags) { ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; - TRACE_ENTER("EnterVT"); if (!fbdevHWModeInit(pScrn, pScrn->currentMode)) return FALSE; fbdevHWAdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0); @@ -918,7 +886,6 @@ fbdevHWLeaveVT(int scrnIndex, int flags) { ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; - TRACE_ENTER("LeaveVT"); fbdevHWRestore(pScrn); } @@ -928,7 +895,6 @@ fbdevHWDPMSSet(ScrnInfoPtr pScrn, int mode, int flags) fbdevHWPtr fPtr = FBDEVHWPTR(pScrn); unsigned long fbmode; - TRACE_ENTER("DPMSSet"); if (!pScrn->vtSema) return; @@ -961,7 +927,6 @@ fbdevHWSaveScreen(ScreenPtr pScreen, int mode) fbdevHWPtr fPtr = FBDEVHWPTR(pScrn); unsigned long unblank; - TRACE_ENTER("HWSaveScreen"); if (!pScrn->vtSema) return TRUE; From 4e09a69c5b1f3c8d6f2f92ec24aaab3a1119940c Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Sun, 15 Aug 2010 20:07:28 -0700 Subject: [PATCH 045/125] rootless: Remove ROOTLESS_WORKAROUND This was already removed for XWin (20701522be803fe47e921fcf059dadf64c7f287d) with no reported side effects. XQuartz seems to be behaving ok without it as well. While this possibly brings back bug #1168, we don't have any reproduction steps for that issue, and if it crops up again, we should fix it a real way rather than this hokey workaround which doesn't even work for COMPOSITE. This effectively reverts the following two changes: b2135e589baeb2ea26da50b9167feaea23bcce3c d7fef52254126aa5897a5c58faeda1f61d5b13d8 Signed-off-by: Jeremy Huddleston Reviewed-by: Jon TURNEY --- configure.ac | 2 +- miext/damage/damage.c | 6 +----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/configure.ac b/configure.ac index 9884fa7df..95f7a76a5 100644 --- a/configure.ac +++ b/configure.ac @@ -1926,7 +1926,7 @@ if test "x$XQUARTZ" = xyes; then AC_CHECK_LIB([Xplugin],[xp_init],[:]) - CFLAGS="${CFLAGS} -DROOTLESS_WORKAROUND -DROOTLESS_SAFEALPHA -DNO_ALLOCA" + CFLAGS="${CFLAGS} -DROOTLESS_SAFEALPHA -DNO_ALLOCA" PKG_CHECK_MODULES(XPBPROXY, $APPLEWMPROTO $LIBAPPLEWM xfixes x11) diff --git a/miext/damage/damage.c b/miext/damage/damage.c index 1cf0513d0..e0e96f276 100644 --- a/miext/damage/damage.c +++ b/miext/damage/damage.c @@ -89,11 +89,7 @@ getDrawableDamageRef (DrawablePtr pDrawable) ScreenPtr pScreen = pDrawable->pScreen; pPixmap = 0; - if (pScreen->GetWindowPixmap -#ifdef ROOTLESS_WORKAROUND - && ((WindowPtr)pDrawable)->viewable -#endif - ) + if (pScreen->GetWindowPixmap) pPixmap = (*pScreen->GetWindowPixmap) ((WindowPtr)pDrawable); if (!pPixmap) From 0a3e6b0345a96aae278dd776c00b5a7c7ccf65af Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Sat, 11 Sep 2010 14:25:21 -0700 Subject: [PATCH 046/125] XQuartz: Localization updates Signed-off-by: Jeremy Huddleston --- .../Resources/Dutch.lproj/locversion.plist | 4 +- .../Dutch.lproj/main.nib/designable.nib | 1591 ++++------ .../Dutch.lproj/main.nib/keyedobjects.nib | Bin 45943 -> 47472 bytes .../French.lproj/Localizable.strings | Bin 2894 -> 2894 bytes .../Resources/French.lproj/locversion.plist | 4 +- .../French.lproj/main.nib/designable.nib | 1720 +++++------ .../French.lproj/main.nib/keyedobjects.nib | Bin 55699 -> 55820 bytes .../Resources/German.lproj/locversion.plist | 4 +- .../German.lproj/main.nib/designable.nib | 1598 ++++------ .../German.lproj/main.nib/keyedobjects.nib | Bin 52610 -> 54286 bytes .../Italian.lproj/Localizable.strings | Bin 2802 -> 2796 bytes .../Resources/Italian.lproj/locversion.plist | 4 +- .../Italian.lproj/main.nib/designable.nib | 1543 ++++------ .../Italian.lproj/main.nib/keyedobjects.nib | Bin 49748 -> 51319 bytes .../Resources/Japanese.lproj/locversion.plist | 4 +- .../Japanese.lproj/main.nib/designable.nib | 1618 +++++------ .../Japanese.lproj/main.nib/keyedobjects.nib | Bin 47584 -> 49135 bytes .../Spanish.lproj/Localizable.strings | Bin 2744 -> 2744 bytes .../Resources/Spanish.lproj/locversion.plist | 4 +- .../Spanish.lproj/main.nib/designable.nib | 1586 ++++------ .../Spanish.lproj/main.nib/keyedobjects.nib | Bin 53366 -> 55270 bytes .../Resources/ar.lproj/InfoPlist.strings | Bin 320 -> 276 bytes .../Resources/ar.lproj/Localizable.strings | Bin 2452 -> 2632 bytes .../Resources/ar.lproj/locversion.plist | 4 +- .../ar.lproj/main.nib/designable.nib | 2585 +++++++---------- .../ar.lproj/main.nib/keyedobjects.nib | Bin 52847 -> 53979 bytes .../Resources/da.lproj/locversion.plist | 4 +- .../da.lproj/main.nib/designable.nib | 1530 ++++------ .../da.lproj/main.nib/keyedobjects.nib | Bin 51511 -> 53146 bytes .../Resources/fi.lproj/locversion.plist | 4 +- .../fi.lproj/main.nib/designable.nib | 1678 +++++------ .../fi.lproj/main.nib/keyedobjects.nib | Bin 53083 -> 54750 bytes .../Resources/ko.lproj/locversion.plist | 4 +- .../ko.lproj/main.nib/designable.nib | 1544 ++++------ .../ko.lproj/main.nib/keyedobjects.nib | Bin 46478 -> 47943 bytes .../Resources/no.lproj/locversion.plist | 4 +- .../no.lproj/main.nib/designable.nib | 1588 ++++------ .../no.lproj/main.nib/keyedobjects.nib | Bin 50084 -> 51758 bytes .../Resources/pl.lproj/locversion.plist | 4 +- .../pl.lproj/main.nib/designable.nib | 1554 ++++------ .../pl.lproj/main.nib/keyedobjects.nib | Bin 52193 -> 54034 bytes .../Resources/pt.lproj/locversion.plist | 4 +- .../pt.lproj/main.nib/designable.nib | 1530 ++++------ .../pt.lproj/main.nib/keyedobjects.nib | Bin 52696 -> 54537 bytes .../Resources/pt_PT.lproj/locversion.plist | 4 +- .../pt_PT.lproj/main.nib/designable.nib | 1530 ++++------ .../pt_PT.lproj/main.nib/keyedobjects.nib | Bin 53711 -> 55486 bytes .../Resources/ru.lproj/locversion.plist | 4 +- .../ru.lproj/main.nib/designable.nib | 1537 ++++------ .../ru.lproj/main.nib/keyedobjects.nib | Bin 54972 -> 56631 bytes .../Resources/sv.lproj/locversion.plist | 4 +- .../sv.lproj/main.nib/designable.nib | 1583 ++++------ .../sv.lproj/main.nib/keyedobjects.nib | Bin 52356 -> 54129 bytes .../Resources/zh_CN.lproj/locversion.plist | 4 +- .../zh_CN.lproj/main.nib/designable.nib | 1564 ++++------ .../zh_CN.lproj/main.nib/keyedobjects.nib | Bin 43954 -> 43969 bytes .../Resources/zh_TW.lproj/locversion.plist | 4 +- .../zh_TW.lproj/main.nib/designable.nib | 1598 +++++----- .../zh_TW.lproj/main.nib/keyedobjects.nib | Bin 44214 -> 45835 bytes 59 files changed, 11850 insertions(+), 17699 deletions(-) diff --git a/hw/xquartz/bundle/Resources/Dutch.lproj/locversion.plist b/hw/xquartz/bundle/Resources/Dutch.lproj/locversion.plist index 4985b9029..b512569f8 100644 --- a/hw/xquartz/bundle/Resources/Dutch.lproj/locversion.plist +++ b/hw/xquartz/bundle/Resources/Dutch.lproj/locversion.plist @@ -3,12 +3,12 @@ LprojCompatibleVersion - 93 + 97 LprojLocale nl LprojRevisionLevel 1 LprojVersion - 93 + 97 diff --git a/hw/xquartz/bundle/Resources/Dutch.lproj/main.nib/designable.nib b/hw/xquartz/bundle/Resources/Dutch.lproj/main.nib/designable.nib index ec62e0293..e95db0cf6 100644 --- a/hw/xquartz/bundle/Resources/Dutch.lproj/main.nib/designable.nib +++ b/hw/xquartz/bundle/Resources/Dutch.lproj/main.nib/designable.nib @@ -1,33 +1,25 @@ - + - 1050 + 1040 11A79a - 732 + 784 1059 478.00 com.apple.InterfaceBuilder.CocoaPlugin - 732 + 784 - - YES - - - YES + + + + + + com.apple.InterfaceBuilder.CocoaPlugin - - - YES - - YES - - - YES - - - - YES + + + NSApplication @@ -41,8 +33,7 @@ MainMenu - - YES + X11 @@ -60,8 +51,7 @@ submenuAction: X11 - - YES + Over X11 @@ -101,9 +91,7 @@ submenuAction: Voorzieningen - - YES - + _NSServicesMenu @@ -187,7 +175,7 @@ - + _NSAppleMenu @@ -202,8 +190,7 @@ submenuAction: Programma's - - YES + YES @@ -224,7 +211,7 @@ - + @@ -238,8 +225,7 @@ submenuAction: Wijzig - - YES + Kopieer @@ -249,7 +235,7 @@ - + @@ -263,8 +249,7 @@ submenuAction: Venster - - YES + Sluit @@ -341,7 +326,7 @@ - + _NSWindowsMenu @@ -356,8 +341,7 @@ submenuAction: Help - - YES + X11 Help @@ -367,10 +351,10 @@ - + - + _NSMainMenu @@ -389,17 +373,15 @@ {1.7976931348623157e+308, 1.7976931348623157e+308} {320, 240} - + 256 - - YES + 256 {{13, 10}, {538, 292}} - - YES + 1 @@ -407,12 +389,11 @@ 256 - - YES + 256 - {{18, 210}, {402, 18}} + {{18, 215}, {402, 18}} YES @@ -427,7 +408,7 @@ 1211912703 2 - + NSImage NSSwitch @@ -443,7 +424,7 @@ 256 - {{36, 34}, {468, 42}} + {{36, 55}, {480, 42}} YES @@ -480,7 +461,7 @@ 256 - {{36, 170}, {468, 34}} + {{36, 179}, {468, 34}} YES @@ -499,7 +480,7 @@ ZW4uCg 256 - {{18, 82}, {402, 18}} + {{18, 99}, {402, 18}} YES @@ -510,7 +491,7 @@ ZW4uCg 1211912703 2 - + @@ -521,7 +502,7 @@ ZW4uCg 256 - {{36, 111}, {468, 29}} + {{36, 126}, {468, 29}} YES @@ -538,7 +519,7 @@ ZW4uCg 256 - {{18, 146}, {402, 18}} + {{18, 157}, {402, 18}} YES @@ -549,7 +530,7 @@ ZW4uCg 1211912703 2 - + @@ -557,7 +538,45 @@ ZW4uCg 25 - + + + 256 + {{36, 8}, {468, 31}} + + YES + + 67239424 + 4194304 + Indien ingeschakeld, worden met de Option-toetsen de X11-toetssymbolen Alt_L en Alt_R verstuurd in plaats van Mode_switch. + + + + + + + + + 256 + {{18, 41}, {402, 18}} + + YES + + 67239424 + 0 + Option-toetsen versturen Alt_L en Alt_R + + + 1211912703 + 2 + + + + + 200 + 25 + + + {{10, 33}, {518, 246}} @@ -572,8 +591,7 @@ ZW4uCg 256 - - YES + 256 @@ -588,7 +606,7 @@ ZW4uCg 1211912703 2 - + @@ -655,8 +673,7 @@ ZW4uCg OtherViews - - YES + @@ -694,7 +711,7 @@ ZW4uCg 24 - + 3 YES @@ -711,7 +728,7 @@ ZW4uCg 67239424 4194304 - S2xldXJlbjoKA + Kleuren: @@ -750,7 +767,7 @@ ZW4uCg 1211912703 2 - + @@ -772,7 +789,7 @@ ZW4uCg 1211912703 2 - + @@ -789,7 +806,7 @@ ZW4uCg 67239424 4194304 - Hiermee schakelt u het X11-rootvenster in. Gebruik de toetscombinatie Command + Option + A om de schermvullende weergave te starten en te stoppen. + Schakelt het X11-rootvenster in. Gebruik de toetscombinatie Command + Option + A om de schermvullende weergave te starten en te stoppen. @@ -797,7 +814,7 @@ ZW4uCg - + {{10, 33}, {518, 246}} Uitvoer @@ -811,12 +828,11 @@ ZW4uCg 256 - - YES + 256 - {{18, 222}, {409, 23}} + {{12, 222}, {409, 23}} YES @@ -827,7 +843,7 @@ ZW4uCg 1211912703 2 - + @@ -838,13 +854,13 @@ ZW4uCg 256 - {{36, 174}, {473, 42}} + {{30, 174}, {473, 42}} YES 67239424 4194304 - Hiermee schakelt u het menuonderdeel "kopieer" in en maakt u synchronisatie mogelijk tussen het klembord van OS X en de CLIPBOARD- en PRIMARY-buffer van X11. + Schakelt het menuonderdeel 'kopieer' in en maakt synchronisatie mogelijk tussen het klembord van OS X en de CLIPBOARD- en PRIMARY-buffer van X11. @@ -854,7 +870,7 @@ ZW4uCg 256 - {{34, 96}, {409, 23}} + {{28, 96}, {409, 23}} YES @@ -865,7 +881,7 @@ ZW4uCg 1211912703 2 - + @@ -876,7 +892,7 @@ ZW4uCg 256 - {{34, 71}, {409, 23}} + {{28, 71}, {409, 23}} YES @@ -887,7 +903,7 @@ ZW4uCg 1211912703 2 - + @@ -898,7 +914,7 @@ ZW4uCg 256 - {{34, 51}, {486, 18}} + {{28, 51}, {486, 18}} YES @@ -909,7 +925,7 @@ ZW4uCg 1211912703 2 - + @@ -920,7 +936,7 @@ ZW4uCg 256 - {{34, 159}, {409, 23}} + {{28, 159}, {409, 23}} YES @@ -931,7 +947,7 @@ ZW4uCg 1211912703 2 - + @@ -942,7 +958,7 @@ ZW4uCg 256 - {{48, 125}, {461, 28}} + {{42, 125}, {461, 28}} YES @@ -958,7 +974,7 @@ ZW4uCg 256 - {{48, 19}, {461, 28}} + {{42, 19}, {461, 28}} YES @@ -971,7 +987,7 @@ ZW4uCg - + {{10, 33}, {518, 246}} Plakbord @@ -985,8 +1001,7 @@ ZW4uCg 256 - - YES + 256 @@ -1001,7 +1016,7 @@ ZW4uCg 1211912703 2 - + @@ -1039,7 +1054,7 @@ ZW4uCg 1211912703 2 - + @@ -1077,7 +1092,7 @@ ZW4uCg 1211912703 2 - + @@ -1101,7 +1116,7 @@ ZW4uCg - + {{10, 33}, {518, 246}} Vensters @@ -1112,8 +1127,7 @@ ZW4uCg 256 - - YES + 256 @@ -1128,7 +1142,7 @@ ZW4uCg 1211912703 2 - + @@ -1150,7 +1164,7 @@ ZW4uCg 1211912703 2 - + @@ -1209,26 +1223,26 @@ ZW4uCg - + {{10, 33}, {518, 246}} Beveiliging - + 0 YES YES - - YES + - + - + {564, 308} + {{0, 0}, {1280, 938}} {320, 262} @@ -1248,10 +1262,9 @@ ZW4uCg {1.7976931348623157e+308, 1.7976931348623157e+308} {320, 240} - + 256 - - YES + 265 @@ -1305,13 +1318,11 @@ ZW4uCg 274 - - YES + 2304 - - YES + 256 @@ -1331,8 +1342,7 @@ ZW4uCg {{302, 0}, {16, 17}} - - YES + 121.73100280761719 62.730998992919922 @@ -1440,7 +1450,7 @@ ZW4uCg YES - + 3 2 @@ -1463,7 +1473,7 @@ ZW4uCg YES 0 - + {{1, 17}, {301, 198}} @@ -1493,10 +1503,9 @@ ZW4uCg 2304 - - YES + - + {{1, 0}, {301, 17}} @@ -1505,7 +1514,7 @@ ZW4uCg 4 - + {{20, 20}, {318, 231}} @@ -1540,8 +1549,9 @@ ZW4uCg 25 - + {454, 271} + {{0, 0}, {1280, 938}} {320, 262} @@ -1550,8 +1560,7 @@ ZW4uCg Menu - - YES + YES @@ -1574,8 +1583,7 @@ ZW4uCg submenuAction: Programma's - - YES + YES @@ -1596,16 +1604,15 @@ ZW4uCg - + - + - + - - YES + copy: @@ -2150,13 +2157,28 @@ ZW4uCg 300475 - + + + prefs_changed: + + + + 300480 + + + + option_sends_alt + + + + 300481 + + - - YES + 0 - + @@ -2181,31 +2203,28 @@ ZW4uCg 29 - - YES + - + MainMenu 19 - - YES + - + 24 - - YES + @@ -2214,7 +2233,7 @@ ZW4uCg - + @@ -2260,17 +2279,15 @@ ZW4uCg 56 - - YES + - + 57 - - YES + @@ -2283,7 +2300,7 @@ ZW4uCg - + @@ -2299,10 +2316,9 @@ ZW4uCg 131 - - YES + - + @@ -2358,19 +2374,17 @@ ZW4uCg 163 - - YES + - + 169 - - YES + - + @@ -2381,20 +2395,18 @@ ZW4uCg 269 - - YES + - + 270 - - YES + - + @@ -2410,19 +2422,17 @@ ZW4uCg 419 - - YES + - + 420 - - YES + - + @@ -2439,126 +2449,115 @@ ZW4uCg 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 + @@ -2567,169 +2566,152 @@ ZW4uCg - + 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 @@ -2741,20 +2723,18 @@ ZW4uCg 526 - - YES + - + 527 - - YES + - + @@ -2810,10 +2790,9 @@ ZW4uCg 100382 - - YES + - + @@ -2864,13 +2843,12 @@ ZW4uCg 380 - - YES + - + @@ -2896,13 +2874,12 @@ ZW4uCg 295 - - YES + - + @@ -2923,21 +2900,19 @@ ZW4uCg 296 - - YES + - + 535 - - YES + - + @@ -2948,10 +2923,9 @@ ZW4uCg 298 - - YES + - + @@ -2962,10 +2936,9 @@ ZW4uCg 297 - - YES + - + @@ -2976,10 +2949,9 @@ ZW4uCg 310 - - YES + - + @@ -2990,10 +2962,9 @@ ZW4uCg 292 - - YES + - + @@ -3004,10 +2975,9 @@ ZW4uCg 293 - - YES + - + @@ -3018,42 +2988,38 @@ ZW4uCg 300337 - - YES + - + 300338 - - YES + - + 300358 - - YES + - + 300359 - - YES + - + @@ -3069,10 +3035,9 @@ ZW4uCg 300362 - - YES + - + @@ -3083,10 +3048,9 @@ ZW4uCg 300364 - - YES + - + @@ -3097,10 +3061,9 @@ ZW4uCg 300368 - - YES + - + @@ -3111,10 +3074,9 @@ ZW4uCg 300370 - - YES + - + @@ -3125,17 +3087,15 @@ ZW4uCg 300421 - - YES + - + 300422 - - YES + @@ -3144,25 +3104,23 @@ ZW4uCg - + 300423 - - YES + - + 300424 - - YES + - + @@ -3178,10 +3136,9 @@ ZW4uCg 300447 - - YES + - + @@ -3192,10 +3149,9 @@ ZW4uCg 300451 - - YES + - + @@ -3206,10 +3162,9 @@ ZW4uCg 300453 - - YES + - + @@ -3220,10 +3175,9 @@ ZW4uCg 300455 - - YES + - + @@ -3234,10 +3188,9 @@ ZW4uCg 300457 - - YES + - + @@ -3248,10 +3201,9 @@ ZW4uCg 300459 - - YES + - + @@ -3262,10 +3214,9 @@ ZW4uCg 300472 - - YES + - + @@ -3273,604 +3224,342 @@ ZW4uCg - - - - YES - - YES - -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.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.IBPluginDependency - 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.IBPluginDependency - 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 - - {{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}} - {{437, 749}, {484, 308}} - com.apple.InterfaceBuilder.CocoaPlugin - {{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}} - 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 - - {{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 - + + 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 + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + 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 + + {{310, 988}, {127, 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 + + {{370, 868}, {313, 143}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{271, 666}, {301, 153}} + {{507, 565}, {564, 308}} + com.apple.InterfaceBuilder.CocoaPlugin + {{507, 565}, {564, 308}} + + {{184, 290}, {481, 345}} + + + {3.40282e+38, 3.40282e+38} + {320, 240} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{203, 978}, {131, 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}, {356, 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 + IBBuiltInLabel-Red + 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 + + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + 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 + + {{440, 988}, {128, 23}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{84, 998}, {155, 33}} + 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 + + {{157, 808}, {319, 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 - - + - 300475 + 300481 - - YES + FirstResponder NSObject @@ -3895,19 +3584,21 @@ ZW4uCg - + 0 + IBCocoaFramework com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - + YES ../X11.xcodeproj 3 + + {9, 8} + {7, 2} + {15, 15} + diff --git a/hw/xquartz/bundle/Resources/Dutch.lproj/main.nib/keyedobjects.nib b/hw/xquartz/bundle/Resources/Dutch.lproj/main.nib/keyedobjects.nib index 0e8eff5dd0ba7a6643c4f507c76875049310bbf9..9523b392edad2259d29a4411c251e486ac50be3f 100644 GIT binary patch literal 47472 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
viv*kRx)&M~ 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%0AJ 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 delta 26 icmX>nc1~= LprojCompatibleVersion - 93 + 98 LprojLocale fr LprojRevisionLevel 1 LprojVersion - 93 + 98 diff --git a/hw/xquartz/bundle/Resources/French.lproj/main.nib/designable.nib b/hw/xquartz/bundle/Resources/French.lproj/main.nib/designable.nib index 69f7075ac..d35e44f59 100644 --- a/hw/xquartz/bundle/Resources/French.lproj/main.nib/designable.nib +++ b/hw/xquartz/bundle/Resources/French.lproj/main.nib/designable.nib @@ -1,34 +1,21 @@ - + - 1050 - 10A432 - 732 - 1038 - 437.00 + 1040 + 11A194b + 787 + 1079 + 502.00 com.apple.InterfaceBuilder.CocoaPlugin - 732 + 787 - - YES - - - - YES + + com.apple.InterfaceBuilder.CocoaPlugin - - - YES - - YES - - - YES - - - - YES + + + NSApplication @@ -42,8 +29,7 @@ MainMenu - - YES + X11 @@ -61,8 +47,7 @@ submenuAction: X11 - - YES + À propos d’X11 @@ -104,9 +89,7 @@ Services - - YES - + _NSServicesMenu @@ -190,7 +173,7 @@ - + _NSAppleMenu @@ -205,8 +188,7 @@ submenuAction: Applications - - YES + YES @@ -227,7 +209,7 @@ - + @@ -241,8 +223,7 @@ submenuAction: Édition - - YES + Copier @@ -252,7 +233,7 @@ - + @@ -266,8 +247,7 @@ submenuAction: Fenêtre - - YES + Fermer @@ -344,7 +324,7 @@ - + _NSWindowsMenu @@ -359,8 +339,7 @@ submenuAction: Aide - - YES + Aide X11 @@ -370,10 +349,10 @@ - + -
+ _NSMainMenu
@@ -382,40 +361,38 @@ 3 2 - {{414, 406}, {582, 308}} + {{414, 417}, {582, 329}} 1350041600 Préférences d’X11 NSPanel View - {3.40282e+38, 3.40282e+38} + + {1.7976931348623157e+308, 1.7976931348623157e+308} {320, 240} - + 256 - - YES + 256 - {{13, 10}, {556, 292}} + {{13, 10}, {556, 313}} - - YES + 1 - + 256 - - YES + 256 - {{67, 210}, {402, 18}} + {{67, 235}, {402, 18}} YES @@ -430,7 +407,7 @@ 1211912703 2 - + NSImage NSSwitch @@ -446,13 +423,13 @@ 256 - {{85, 39}, {369, 42}} + {{85, 64}, {385, 42}} YES 67239424 4194304 - Quand cette option est activée, les touches équivalentes de la barre des menus peuvent perturber les applications X11 qui utilisent le modificateur d'instructions virtuelles. + Quand cette option est activée, les touches équivalentes de la barre des menus peuvent perturber les applications X11 qui utilisent le modificateur d’instructions virtuelles. LucidaGrande 11 @@ -466,7 +443,7 @@ controlColor 3 - MC42NjY2NjY2ODY1AA + MC42NjY2NjY2NjY3AA @@ -483,7 +460,7 @@ 256 - {{85, 170}, {385, 34}} + {{85, 195}, {385, 34}} YES @@ -502,7 +479,7 @@ A 256 - {{67, 87}, {402, 18}} + {{67, 112}, {402, 18}} YES @@ -513,7 +490,7 @@ A 1211912703 2 - + @@ -524,13 +501,13 @@ A 256 - {{85, 111}, {385, 29}} + {{85, 136}, {385, 29}} YES 67239424 4194304 - Autorise les modifications du menu d'entrée pour remplacer la disposition des touches du clavier X11. + Autorise les modifications du menu d’entrée pour remplacer la disposition des touches du clavier X11. @@ -541,7 +518,7 @@ A 256 - {{67, 146}, {402, 18}} + {{67, 171}, {402, 18}} YES @@ -552,7 +529,7 @@ A 1211912703 2 - + @@ -560,9 +537,46 @@ A 25 - - {{10, 33}, {536, 246}} - + + + 256 + {{85, 6}, {385, 28}} + + YES + + 67239424 + 4194304 + Une fois activées, les touches option envoient les symboles Alt_L et Alt_R au lieu de Mode_switch. + + + + + + + + + 256 + {{67, 40}, {402, 18}} + + YES + + 67239424 + 0 + Les touches option envoient Alt_L et Alt_R + + + 1211912703 + 2 + + + + + 200 + 25 + + + + {{10, 33}, {536, 267}} Entrée @@ -575,23 +589,22 @@ A 256 - - YES + 256 - {{34, 63}, {402, 18}} + {{34, 84}, {402, 18}} YES 67239424 0 - Utiliser l'effet d'avertissement du système + Utiliser l’effet d’avertissement du système 1211912703 2 - + @@ -602,13 +615,13 @@ A 256 - {{52, 29}, {385, 28}} + {{52, 50}, {385, 28}} YES 67239424 4194304 - Les sons émis par X11 utiliseront l'avertissement standard du système, comme défini dans le panneau Effets sonores des Préférences Système. + Les sons émis par X11 utiliseront l’avertissement standard du système, comme défini dans le panneau Effets sonores des Préférences Système. @@ -619,7 +632,7 @@ A 256 - {{104, 202}, {128, 26}} + {{104, 223}, {128, 26}} YES @@ -658,8 +671,7 @@ A OtherViews - - YES + @@ -697,7 +709,7 @@ A 24 - + 3 YES @@ -708,13 +720,13 @@ A 256 - {{33, 205}, {71, 20}} + {{33, 226}, {71, 20}} YES 67239424 4194304 - Q291bGV1cnPCoDoKA + Couleurs : @@ -725,7 +737,7 @@ A 256 - {{52, 183}, {392, 14}} + {{52, 204}, {392, 14}} YES @@ -742,7 +754,7 @@ A 256 - {{34, 149}, {409, 23}} + {{34, 170}, {409, 23}} YES @@ -753,7 +765,7 @@ A 1211912703 2 - + @@ -764,7 +776,7 @@ A 256 - {{53, 88}, {445, 18}} + {{53, 109}, {445, 18}} YES @@ -775,7 +787,7 @@ A 1211912703 2 - + @@ -786,7 +798,7 @@ A 256 - {{52, 112}, {385, 31}} + {{52, 133}, {385, 31}} YES @@ -800,8 +812,8 @@ A - - {{10, 33}, {536, 246}} + + {{10, 33}, {536, 267}} Sortie @@ -814,12 +826,11 @@ A 256 - - YES + 256 - {{25, 222}, {409, 23}} + {{25, 235}, {409, 23}} YES @@ -830,7 +841,7 @@ A 1211912703 2 - + @@ -841,7 +852,7 @@ A 256 - {{43, 174}, {378, 42}} + {{43, 187}, {378, 42}} YES @@ -857,7 +868,7 @@ A 256 - {{41, 92}, {424, 18}} + {{41, 105}, {424, 18}} YES @@ -868,7 +879,7 @@ A 1211912703 2 - + @@ -879,7 +890,7 @@ A 256 - {{41, 70}, {489, 18}} + {{41, 83}, {489, 18}} YES @@ -890,7 +901,7 @@ A 1211912703 2 - + @@ -901,7 +912,7 @@ A 256 - {{41, 48}, {437, 18}} + {{41, 61}, {437, 18}} YES @@ -912,7 +923,7 @@ A 1211912703 2 - + @@ -923,7 +934,7 @@ A 256 - {{41, 150}, {424, 18}} + {{41, 163}, {424, 18}} YES @@ -934,7 +945,7 @@ A 1211912703 2 - + @@ -945,7 +956,7 @@ A 256 - {{55, 116}, {385, 28}} + {{55, 129}, {385, 28}} YES @@ -961,7 +972,7 @@ A 256 - {{55, 16}, {385, 28}} + {{55, 29}, {385, 28}} YES @@ -974,8 +985,8 @@ A - - {{10, 33}, {536, 246}} + + {{10, 33}, {536, 267}} Presse-papiers @@ -986,14 +997,13 @@ A 2 - + 256 - - YES + 256 - {{67, 212}, {402, 18}} + {{67, 235}, {402, 18}} YES @@ -1004,7 +1014,7 @@ A 1211912703 2 - + @@ -1015,7 +1025,7 @@ A 256 - {{75, 175}, {385, 31}} + {{75, 198}, {385, 31}} YES @@ -1032,7 +1042,7 @@ A 256 - {{67, 151}, {402, 18}} + {{67, 174}, {402, 18}} YES @@ -1043,7 +1053,7 @@ A 1211912703 2 - + @@ -1054,7 +1064,7 @@ A 256 - {{75, 117}, {381, 28}} + {{75, 140}, {381, 28}} YES @@ -1071,7 +1081,7 @@ A 256 - {{67, 93}, {402, 18}} + {{67, 116}, {402, 18}} YES @@ -1082,7 +1092,7 @@ A 1211912703 2 - + @@ -1093,7 +1103,7 @@ A 256 - {{75, 45}, {385, 42}} + {{75, 68}, {385, 42}} YES @@ -1107,8 +1117,9 @@ A - - {{10, 33}, {536, 246}} + + {{10, 33}, {536, 267}} + Fenêtres @@ -1118,12 +1129,11 @@ A 256 - - YES + 256 - {{67, 210}, {402, 18}} + {{67, 235}, {402, 18}} YES @@ -1134,7 +1144,7 @@ A 1211912703 2 - + @@ -1145,7 +1155,7 @@ A 256 - {{67, 133}, {402, 18}} + {{67, 158}, {402, 18}} YES @@ -1156,7 +1166,7 @@ A 1211912703 2 - + @@ -1167,13 +1177,13 @@ A 256 - {{85, 162}, {385, 42}} + {{85, 187}, {385, 42}} YES 67239424 4194304 - Le lancement d’X11 créera des touches de contrôle d'accès Xauthority. Si l'adresse IP du système change, ces touches ne seront plus valides, ce qui risquera d'empêcher le lancement des applications X11. + Le lancement d’X11 créera des touches de contrôle d’accès Xauthority. Si l’adresse IP du système change, ces touches ne seront plus valides, ce qui risquera d’empêcher le lancement des applications X11. @@ -1184,13 +1194,13 @@ A 256 - {{85, 71}, {385, 56}} + {{85, 96}, {385, 56}} YES 67239424 4194304 - En cas d'activation de cette option, « Authentifier les connexions » doit aussi être activée pour garantir la sécurité du système. En cas de désactivation, les connexions à partir d'applications distantes sont interdites. + En cas d’activation de cette option, « Authentifier les connexions » doit aussi être activée pour garantir la sécurité du système. En cas de désactivation, les connexions à partir d’applications distantes sont interdites. @@ -1201,7 +1211,7 @@ A 256 - {{20, -16}, {404, 14}} + {{20, 5}, {404, 14}} YES @@ -1215,31 +1225,29 @@ A - - {{10, 33}, {536, 246}} + + {{10, 33}, {536, 267}} Sécurité - - + + 0 YES YES - - YES - - + + + - - {582, 308} - + + {582, 329} {{0, 0}, {1440, 878}} {320, 262} - {3.40282e+38, 3.40282e+38} + {1.7976931348623157e+308, 1.7976931348623157e+308} x11_prefs @@ -1247,18 +1255,18 @@ A 2 {{302, 440}, {548, 271}} 1350041600 - Menu de l'application X11 + Menu de l’application X11 NSPanel View - {3.40282e+38, 3.40282e+38} + + {1.7976931348623157e+308, 1.7976931348623157e+308} {320, 240} 256 - - YES + 265 @@ -1312,13 +1320,11 @@ A 274 - - YES + 2304 - - YES + 256 @@ -1338,8 +1344,7 @@ A {{334, 0}, {16, 17}} - - YES + 155 62.730998992919922 @@ -1351,7 +1356,7 @@ A 3 - MC4zMzMzMzI5ODU2AA + MC4zMzMzMzI5OQA 6 @@ -1450,7 +1455,7 @@ A - + 3 2 @@ -1473,7 +1478,7 @@ A YES 0 - + {{1, 17}, {333, 198}} @@ -1488,7 +1493,7 @@ A _doScroller: - 0.99492377042770386 + 0.99492380000000002 @@ -1498,15 +1503,14 @@ A 1 _doScroller: - 0.97368419170379639 + 0.97368421052631582 2304 - - YES + - + {{1, 0}, {333, 17}} @@ -1515,7 +1519,7 @@ A 4 - + {{20, 20}, {350, 231}} @@ -1524,7 +1528,6 @@ A - QSAAAEEgAABBmAAAQZgAAA @@ -1550,18 +1553,17 @@ A 25 - + {548, 271} {{0, 0}, {1440, 878}} {320, 262} - {3.40282e+38, 3.40282e+38} + {1.7976931348623157e+308, 1.7976931348623157e+308} x11_apps Menu - - YES + YES @@ -1584,8 +1586,7 @@ A submenuAction: Applications - - YES + YES @@ -1606,16 +1607,15 @@ A - + - + - + - - YES + copy: @@ -2160,13 +2160,28 @@ A 300475 - + + + prefs_changed: + + + + 300480 + + + + option_sends_alt + + + + 300481 + + - - YES + 0 - + @@ -2191,31 +2206,28 @@ A 29 - - YES + - + MainMenu 19 - - YES + - + 24 - - YES + @@ -2224,7 +2236,7 @@ A - + @@ -2270,17 +2282,15 @@ A 56 - - YES + - + 57 - - YES + @@ -2293,7 +2303,7 @@ A - + @@ -2309,10 +2319,9 @@ A 131 - - YES + - + @@ -2368,19 +2377,17 @@ A 163 - - YES + - + 169 - - YES + - + @@ -2391,20 +2398,18 @@ A 269 - - YES + - + 270 - - YES + - + @@ -2420,19 +2425,17 @@ A 419 - - YES + - + 420 - - YES + - + @@ -2449,126 +2452,115 @@ A 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 + @@ -2577,169 +2569,152 @@ A - + 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 @@ -2751,20 +2726,18 @@ A 526 - - YES + - + 527 - - YES + - + @@ -2820,10 +2793,9 @@ A 100382 - - YES + - + @@ -2874,13 +2846,12 @@ A 380 - - YES + - + @@ -2906,13 +2877,12 @@ A 295 - - YES + - + @@ -2933,21 +2903,19 @@ A 296 - - YES + - + 535 - - YES + - + @@ -2958,10 +2926,9 @@ A 298 - - YES + - + @@ -2972,10 +2939,9 @@ A 297 - - YES + - + @@ -2986,10 +2952,9 @@ A 310 - - YES + - + @@ -3000,10 +2965,9 @@ A 292 - - YES + - + @@ -3014,10 +2978,9 @@ A 293 - - YES + - + @@ -3028,42 +2991,38 @@ A 300337 - - YES + - + 300338 - - YES + - + 300358 - - YES + - + 300359 - - YES + - + @@ -3079,10 +3038,9 @@ A 300362 - - YES + - + @@ -3093,10 +3051,9 @@ A 300364 - - YES + - + @@ -3107,10 +3064,9 @@ A 300368 - - YES + - + @@ -3121,10 +3077,9 @@ A 300370 - - YES + - + @@ -3135,17 +3090,15 @@ A 300421 - - YES + - + 300422 - - YES + @@ -3154,25 +3107,23 @@ A - + 300423 - - YES + - + 300424 - - YES + - + @@ -3188,10 +3139,9 @@ A 300447 - - YES + - + @@ -3202,10 +3152,9 @@ A 300451 - - YES + - + @@ -3216,10 +3165,9 @@ A 300453 - - YES + - + @@ -3230,10 +3178,9 @@ A 300455 - - YES + - + @@ -3244,10 +3191,9 @@ A 300457 - - YES + - + @@ -3258,10 +3204,9 @@ A 300459 - - YES + - + @@ -3272,10 +3217,9 @@ A 300472 - - YES + - + @@ -3283,633 +3227,351 @@ A - - - - YES - - YES - -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.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.IBPluginDependency - 244.IBViewEditorWindowController.showingLayoutRectangles - 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.IBPluginDependency - 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 - 300447.object.labelIdentifier - 300450.IBPluginDependency - 300450.object.labelIdentifier - 300451.IBPluginDependency - 300451.ImportedFromIB2 - 300451.object.labelIdentifier - 300452.IBPluginDependency - 300452.object.labelIdentifier - 300453.IBPluginDependency - 300453.ImportedFromIB2 - 300453.object.labelIdentifier - 300454.IBPluginDependency - 300454.object.labelIdentifier - 300455.IBPluginDependency - 300455.ImportedFromIB2 - 300456.IBPluginDependency - 300457.IBPluginDependency - 300457.ImportedFromIB2 - 300457.object.labelIdentifier - 300458.IBPluginDependency - 300458.object.labelIdentifier - 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.IBUserGuides - 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.IBEditorWindowLastContentRect - 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 - - {{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}} - {{437, 749}, {582, 308}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{437, 749}, {582, 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 - - IBBuiltInLabel-Red - com.apple.InterfaceBuilder.CocoaPlugin - IBBuiltInLabel-Red - com.apple.InterfaceBuilder.CocoaPlugin - - IBBuiltInLabel-Red - com.apple.InterfaceBuilder.CocoaPlugin - IBBuiltInLabel-Red - com.apple.InterfaceBuilder.CocoaPlugin - - IBBuiltInLabel-Red - com.apple.InterfaceBuilder.CocoaPlugin - IBBuiltInLabel-Red - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - IBBuiltInLabel-Red - com.apple.InterfaceBuilder.CocoaPlugin - IBBuiltInLabel-Red - 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 - - YES - - - 36 - 0 - + + 300476 + + + + + - - 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 - - {{553, 917}, {155, 83}} - 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 - + + 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 + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + {{318, 756}, {64, 6}} + 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 + + {{176, 789}, {120, 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 + + {{242, 669}, {365, 143}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{271, 666}, {301, 153}} + {{575, 463}, {582, 329}} + com.apple.InterfaceBuilder.CocoaPlugin + {{575, 463}, {582, 329}} + + {{184, 290}, {481, 345}} + + + {3.40282e+38, 3.40282e+38} + {320, 240} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{74, 779}, {171, 33}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{100, 746}, {155, 33}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{838, 503}, {548, 271}} + com.apple.InterfaceBuilder.CocoaPlugin + + + {{838, 503}, {548, 271}} + + {{433, 406}, {486, 327}} + + + {3.40282e+38, 3.40282e+38} + {320, 240} + com.apple.InterfaceBuilder.CocoaPlugin + + {{16, 812}, {356, 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 + + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + 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 + + {{274, 290}, {155, 83}} + 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 + + {{311, 789}, {128, 23}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{567, 341}, {150, 33}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{717, 331}, {171, 33}} + 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 + + {{28, 609}, {290, 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 - - + - 300475 + 300481 - - YES + FirstResponder NSObject @@ -3934,19 +3596,21 @@ A - + 0 + IBCocoaFramework com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - + YES ../X11.xcodeproj 3 + + {9, 8} + {7, 2} + {15, 15} + diff --git a/hw/xquartz/bundle/Resources/French.lproj/main.nib/keyedobjects.nib b/hw/xquartz/bundle/Resources/French.lproj/main.nib/keyedobjects.nib index 689405d2918f0498a55e7ee2dd78fa054bcb7803..981332331193001c56a249447859e14930bd0962 100644 GIT binary patch literal 55820 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 literal 55699 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 z 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 diff --git a/hw/xquartz/bundle/Resources/German.lproj/locversion.plist b/hw/xquartz/bundle/Resources/German.lproj/locversion.plist index e10376e68..061f05311 100644 --- a/hw/xquartz/bundle/Resources/German.lproj/locversion.plist +++ b/hw/xquartz/bundle/Resources/German.lproj/locversion.plist @@ -3,12 +3,12 @@ LprojCompatibleVersion - 93 + 97 LprojLocale de LprojRevisionLevel 1 LprojVersion - 93 + 97 diff --git a/hw/xquartz/bundle/Resources/German.lproj/main.nib/designable.nib b/hw/xquartz/bundle/Resources/German.lproj/main.nib/designable.nib index 5fc898489..f2ae22d37 100644 --- a/hw/xquartz/bundle/Resources/German.lproj/main.nib/designable.nib +++ b/hw/xquartz/bundle/Resources/German.lproj/main.nib/designable.nib @@ -1,33 +1,24 @@ - + - 1050 - 11A79a + 1040 + 10A432 732 - 1059 - 478.00 + 1038 + 437.00 com.apple.InterfaceBuilder.CocoaPlugin 732 - - YES - - - YES + + com.apple.InterfaceBuilder.CocoaPlugin - + - YES - - YES - - - YES - + PluginDependencyRecalculationVersion + - - YES + NSApplication @@ -41,8 +32,7 @@ MainMenu - - YES + X11 @@ -60,8 +50,7 @@ submenuAction: X11 - - YES + Über X11 @@ -101,9 +90,7 @@ submenuAction: Dienste - - YES - + _NSServicesMenu @@ -187,7 +174,7 @@ - + _NSAppleMenu @@ -202,8 +189,7 @@ submenuAction: Programme - - YES + YES @@ -224,7 +210,7 @@ - + @@ -238,8 +224,7 @@ submenuAction: Bearbeiten - - YES + Kopieren @@ -249,7 +234,7 @@ - + @@ -263,8 +248,7 @@ submenuAction: Fenster - - YES + Schließen @@ -341,7 +325,7 @@ - + _NSWindowsMenu @@ -356,8 +340,7 @@ submenuAction: Hilfe - - YES + X11 Hilfe @@ -367,10 +350,10 @@ - + - + _NSMainMenu @@ -386,20 +369,19 @@ View - {1.7976931348623157e+308, 1.7976931348623157e+308} + {3.40282e+38, 3.40282e+38} {320, 240} - + 256 - - YES + 256 {{13, 10}, {579, 286}} - - YES + + 1 @@ -407,13 +389,13 @@ 256 - - YES + 256 - {{18, 204}, {402, 18}} + {{18, 211}, {402, 18}} + YES 67239424 @@ -427,7 +409,7 @@ 1211912703 2 - + NSImage NSSwitch @@ -443,8 +425,9 @@ 256 - {{36, 43}, {376, 28}} + {{36, 60}, {376, 28}} + YES 67239424 @@ -463,7 +446,7 @@ controlColor 3 - MC42NjY2NjY2NjY3AA + MC42NjY2NjY2ODY1AA @@ -480,8 +463,9 @@ 256 - {{36, 156}, {385, 42}} + {{36, 171}, {385, 34}} + YES 67239424 @@ -499,8 +483,9 @@ dmllcmVuLgo 256 - {{18, 77}, {402, 18}} + {{18, 94}, {402, 18}} + YES 67239424 @@ -510,7 +495,7 @@ dmllcmVuLgo 1211912703 2 - + @@ -521,8 +506,9 @@ dmllcmVuLgo 256 - {{36, 106}, {385, 28}} + {{36, 118}, {385, 28}} + YES 67239424 @@ -538,8 +524,9 @@ dmllcmVuLgo 256 - {{18, 140}, {402, 18}} + {{18, 152}, {402, 18}} + YES 67239424 @@ -549,7 +536,7 @@ dmllcmVuLgo 1211912703 2 - + @@ -557,9 +544,50 @@ dmllcmVuLgo 25 - + + + 256 + {{36, -1}, {385, 31}} + + + YES + + 67239424 + 4194304 + Bei Aktivierung entsprechen die Wahltasten Alt_L und Alt_R X11-Tastensymbolen anstatt „Mode_switch“. + + + + + + + + + 256 + {{18, 36}, {402, 18}} + + + YES + + 67239424 + 0 + Wahltasten entsprechen Alt_L und Alt_R + + + 1211912703 + 2 + + + + + 200 + 25 + + + {{10, 33}, {559, 240}} + Eingabe @@ -572,8 +600,7 @@ dmllcmVuLgo 256 - - YES + 256 @@ -588,7 +615,7 @@ dmllcmVuLgo 1211912703 2 - + @@ -655,8 +682,7 @@ dmllcmVuLgo OtherViews - - YES + @@ -694,7 +720,7 @@ dmllcmVuLgo 24 - + 3 YES @@ -711,7 +737,7 @@ dmllcmVuLgo 67239424 4194304 - RmFyYmVuOgo + Farben: @@ -750,7 +776,7 @@ dmllcmVuLgo 1211912703 2 - + @@ -772,7 +798,7 @@ dmllcmVuLgo 1211912703 2 - + @@ -797,7 +823,7 @@ dmllcmVuLgo - + {{10, 33}, {559, 240}} Ausgabe @@ -811,8 +837,7 @@ dmllcmVuLgo 256 - - YES + 256 @@ -827,7 +852,7 @@ dmllcmVuLgo 1211912703 2 - + @@ -865,7 +890,7 @@ dmllcmVuLgo 1211912703 2 - + @@ -882,12 +907,12 @@ dmllcmVuLgo 67239424 0 - PRIMARY (Middle-Click) aktualisieren, wenn Pasteboard geändert wird + PRIMARY (Mittel-Klick) aktualisieren, wenn Pasteboard geändert wird 1211912703 2 - + @@ -909,7 +934,7 @@ dmllcmVuLgo 1211912703 2 - + @@ -931,7 +956,7 @@ dmllcmVuLgo 1211912703 2 - + @@ -971,7 +996,7 @@ dmllcmVuLgo - + {{10, 33}, {559, 240}} Zwischenablage @@ -985,8 +1010,7 @@ dmllcmVuLgo 256 - - YES + 256 @@ -1001,7 +1025,7 @@ dmllcmVuLgo 1211912703 2 - + @@ -1039,7 +1063,7 @@ dmllcmVuLgo 1211912703 2 - + @@ -1077,7 +1101,7 @@ dmllcmVuLgo 1211912703 2 - + @@ -1101,7 +1125,7 @@ dmllcmVuLgo - + {{10, 33}, {559, 240}} Fenster @@ -1112,23 +1136,22 @@ dmllcmVuLgo 256 - - YES + 256 - {{18, 204}, {199, 18}} + {{18, 204}, {215, 18}} YES 67239424 0 - Verbindungen identifizieren + Verbindungen authentifizieren 1211912703 2 - + @@ -1139,7 +1162,7 @@ dmllcmVuLgo 256 - {{18, 113}, {312, 18}} + {{18, 121}, {312, 18}} YES @@ -1150,7 +1173,7 @@ dmllcmVuLgo 1211912703 2 - + @@ -1161,7 +1184,7 @@ dmllcmVuLgo 256 - {{36, 142}, {463, 56}} + {{36, 150}, {463, 48}} YES @@ -1178,13 +1201,13 @@ dmllcmVuLgo 256 - {{36, 51}, {463, 56}} + {{36, 59}, {463, 56}} YES 67239424 4194304 - Bei Aktivierung muss „Verbindungen Identifizieren“ ebenfalls aktiviert sein, damit die Sicherheit des System gewährleistet ist. Bei Deaktivierung sind Verbindungen von entfernten Programmen nicht erlaubt. + Bei Aktivierung muss „Verbindungen authentifizieren“ ebenfalls aktiviert sein, damit die Sicherheit des System gewährleistet ist. Bei Deaktivierung sind Verbindungen von entfernten Programmen nicht erlaubt. @@ -1209,30 +1232,31 @@ dmllcmVuLgo - + {{10, 33}, {559, 240}} Sicherheit - + 0 YES YES - - YES + - + - + {613, 302} + + {{0, 0}, {1440, 878}} {320, 262} - {1.7976931348623157e+308, 1.7976931348623157e+308} + {3.40282e+38, 3.40282e+38} x11_prefs @@ -1245,13 +1269,12 @@ dmllcmVuLgo View - {1.7976931348623157e+308, 1.7976931348623157e+308} - {320, 240} + {3.40282e+38, 3.40282e+38} + {512, 240} 256 - - YES + 265 @@ -1305,13 +1328,11 @@ dmllcmVuLgo 274 - - YES + 2304 - - YES + 256 @@ -1331,8 +1352,7 @@ dmllcmVuLgo {{302, 0}, {16, 17}} - - YES + 122.73100280761719 62.730998992919922 @@ -1344,7 +1364,7 @@ dmllcmVuLgo 3 - MC4zMzMzMzI5OQA + MC4zMzMzMzI5ODU2AA 6 @@ -1440,7 +1460,7 @@ dmllcmVuLgo YES - + 3 2 @@ -1463,10 +1483,9 @@ dmllcmVuLgo YES 0 - + {{1, 17}, {301, 198}} - 4 @@ -1478,7 +1497,7 @@ dmllcmVuLgo _doScroller: - 0.99492380000000002 + 0.99492377042770386 @@ -1488,27 +1507,24 @@ dmllcmVuLgo 1 _doScroller: - 0.68852460000000004 + 0.68852460384368896 2304 - - YES + - + {{1, 0}, {301, 17}} - 4 - + {{20, 20}, {318, 231}} - 50 @@ -1540,18 +1556,17 @@ dmllcmVuLgo 25 - + {512, 271} {{0, 0}, {1440, 878}} - {320, 262} - {1.7976931348623157e+308, 1.7976931348623157e+308} + {512, 262} + {3.40282e+38, 3.40282e+38} x11_apps Menü - - YES + YES @@ -1574,8 +1589,7 @@ dmllcmVuLgo submenuAction: Programme - - YES + YES @@ -1596,16 +1610,15 @@ dmllcmVuLgo - + - + - + - - YES + copy: @@ -2150,13 +2163,28 @@ dmllcmVuLgo 300475 - + + + prefs_changed: + + + + 300480 + + + + option_sends_alt + + + + 300481 + + - - YES + 0 - + @@ -2181,31 +2209,28 @@ dmllcmVuLgo 29 - - YES + - + MainMenu 19 - - YES + - + 24 - - YES + @@ -2214,7 +2239,7 @@ dmllcmVuLgo - + @@ -2260,17 +2285,15 @@ dmllcmVuLgo 56 - - YES + - + 57 - - YES + @@ -2283,7 +2306,7 @@ dmllcmVuLgo - + @@ -2299,10 +2322,9 @@ dmllcmVuLgo 131 - - YES + - + @@ -2358,19 +2380,17 @@ dmllcmVuLgo 163 - - YES + - + 169 - - YES + - + @@ -2381,20 +2401,18 @@ dmllcmVuLgo 269 - - YES + - + 270 - - YES + - + @@ -2410,19 +2428,17 @@ dmllcmVuLgo 419 - - YES + - + 420 - - YES + - + @@ -2439,126 +2455,115 @@ dmllcmVuLgo 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 + @@ -2567,169 +2572,152 @@ dmllcmVuLgo - + 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 @@ -2741,20 +2729,18 @@ dmllcmVuLgo 526 - - YES + - + 527 - - YES + - + @@ -2810,10 +2796,9 @@ dmllcmVuLgo 100382 - - YES + - + @@ -2864,13 +2849,12 @@ dmllcmVuLgo 380 - - YES + - + @@ -2896,13 +2880,12 @@ dmllcmVuLgo 295 - - YES + - + @@ -2923,21 +2906,19 @@ dmllcmVuLgo 296 - - YES + - + 535 - - YES + - + @@ -2948,10 +2929,9 @@ dmllcmVuLgo 298 - - YES + - + @@ -2962,10 +2942,9 @@ dmllcmVuLgo 297 - - YES + - + @@ -2976,10 +2955,9 @@ dmllcmVuLgo 310 - - YES + - + @@ -2990,10 +2968,9 @@ dmllcmVuLgo 292 - - YES + - + @@ -3004,10 +2981,9 @@ dmllcmVuLgo 293 - - YES + - + @@ -3018,42 +2994,38 @@ dmllcmVuLgo 300337 - - YES + - + 300338 - - YES + - + 300358 - - YES + - + 300359 - - YES + - + @@ -3069,10 +3041,9 @@ dmllcmVuLgo 300362 - - YES + - + @@ -3083,10 +3054,9 @@ dmllcmVuLgo 300364 - - YES + - + @@ -3097,10 +3067,9 @@ dmllcmVuLgo 300368 - - YES + - + @@ -3111,10 +3080,9 @@ dmllcmVuLgo 300370 - - YES + - + @@ -3125,17 +3093,15 @@ dmllcmVuLgo 300421 - - YES + - + 300422 - - YES + @@ -3144,25 +3110,23 @@ dmllcmVuLgo - + 300423 - - YES + - + 300424 - - YES + - + @@ -3178,10 +3142,9 @@ dmllcmVuLgo 300447 - - YES + - + @@ -3192,10 +3155,9 @@ dmllcmVuLgo 300451 - - YES + - + @@ -3206,10 +3168,9 @@ dmllcmVuLgo 300453 - - YES + - + @@ -3220,10 +3181,9 @@ dmllcmVuLgo 300455 - - YES + - + @@ -3234,10 +3194,9 @@ dmllcmVuLgo 300457 - - YES + - + @@ -3248,10 +3207,9 @@ dmllcmVuLgo 300459 - - YES + - + @@ -3262,10 +3220,9 @@ dmllcmVuLgo 300472 - - YES + - + @@ -3273,604 +3230,333 @@ dmllcmVuLgo - - - - YES - - YES - -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.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.IBPluginDependency - 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.IBPluginDependency - 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 - - {{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}} - {{437, 749}, {484, 308}} - com.apple.InterfaceBuilder.CocoaPlugin - {{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}} - 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 - - {{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 - + + 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, 554}, {613, 302}} + com.apple.InterfaceBuilder.CocoaPlugin + {{507, 554}, {613, 302}} + + {{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}, {512, 271}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{68, 585}, {512, 271}} + + {{433, 406}, {486, 327}} + + + {3.40282e+38, 3.40282e+38} + {512, 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 + IBBuiltInLabel-Red + 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 - - + - 300475 + 300481 - - YES + FirstResponder NSObject @@ -3895,16 +3581,12 @@ dmllcmVuLgo - + 0 com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - + YES ../X11.xcodeproj diff --git a/hw/xquartz/bundle/Resources/German.lproj/main.nib/keyedobjects.nib b/hw/xquartz/bundle/Resources/German.lproj/main.nib/keyedobjects.nib index 467adef598bf2b07cf046af5afd04f13720ae53b..20ede8b1cdc70ee12c4e5de53137a5e63d002588 100644 GIT binary patch literal 54286 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 diff --git a/hw/xquartz/bundle/Resources/Italian.lproj/Localizable.strings b/hw/xquartz/bundle/Resources/Italian.lproj/Localizable.strings index de1d777bb148163a7145ce3ccc1d6c8907b107b5..20b3475158b8a0c8ad673548f2865d0c1ecb934b 100644 GIT binary patch delta 20 bcmew)`bKm^BNKZuLn1>CL)qp&rW6hUPi+RM delta 26 hcmaDO`bl&{BNJ~CLn=c$LncEpLkUCC<_@M54ghzj2l4;_ diff --git a/hw/xquartz/bundle/Resources/Italian.lproj/locversion.plist b/hw/xquartz/bundle/Resources/Italian.lproj/locversion.plist index b170cc465..144d5da54 100644 --- a/hw/xquartz/bundle/Resources/Italian.lproj/locversion.plist +++ b/hw/xquartz/bundle/Resources/Italian.lproj/locversion.plist @@ -3,12 +3,12 @@ LprojCompatibleVersion - 93 + 97 LprojLocale it LprojRevisionLevel 1 LprojVersion - 93 + 97 diff --git a/hw/xquartz/bundle/Resources/Italian.lproj/main.nib/designable.nib b/hw/xquartz/bundle/Resources/Italian.lproj/main.nib/designable.nib index 90f8d4cb1..2993e3a3c 100644 --- a/hw/xquartz/bundle/Resources/Italian.lproj/main.nib/designable.nib +++ b/hw/xquartz/bundle/Resources/Italian.lproj/main.nib/designable.nib @@ -1,7 +1,7 @@ - + - 1050 + 1040 11A79a 732 1059 @@ -10,24 +10,12 @@ com.apple.InterfaceBuilder.CocoaPlugin 732 - - YES - - - YES + + com.apple.InterfaceBuilder.CocoaPlugin - - - YES - - YES - - - YES - - - - YES + + + NSApplication @@ -41,8 +29,7 @@ MainMenu - - YES + X11 @@ -60,8 +47,7 @@ submenuAction: X11 - - YES + Informazioni su X11 @@ -101,9 +87,7 @@ submenuAction: Servizi - - YES - + _NSServicesMenu @@ -187,7 +171,7 @@ - + _NSAppleMenu @@ -202,8 +186,7 @@ submenuAction: Applicazioni - - YES + YES @@ -224,7 +207,7 @@ - + @@ -238,8 +221,7 @@ submenuAction: Composizione - - YES + Copia @@ -249,7 +231,7 @@ - + @@ -263,8 +245,7 @@ submenuAction: Finestra - - YES + Chiudi @@ -341,7 +322,7 @@ - + _NSWindowsMenu @@ -356,8 +337,7 @@ submenuAction: Aiuto - - YES + Aiuto X11 @@ -367,10 +347,10 @@ - + - + _NSMainMenu @@ -391,15 +371,13 @@ 256 - - YES + 256 {{13, 10}, {638, 292}} - - YES + 1 @@ -407,8 +385,7 @@ 256 - - YES + 256 @@ -427,7 +404,7 @@ 1211912703 2 - + NSImage NSSwitch @@ -510,7 +487,7 @@ Q29tYW5kby4KA 1211912703 2 - + @@ -549,7 +526,7 @@ Q29tYW5kby4KA 1211912703 2 - + @@ -557,7 +534,45 @@ Q29tYW5kby4KA 25 - + + + 256 + {{93, -1}, {385, 31}} + + YES + + 67239424 + 4194304 + Se abilitati, i tasti Opzione inviano i simboli dei tasti X11 Alt_L e Alt_R anziché Mode_switch. + + + + + + + + + 256 + {{75, 32}, {402, 18}} + + YES + + 67239424 + 0 + I tasti Opzione inviano Alt_L e Alt_R + + + 1211912703 + 2 + + + + + 200 + 25 + + + {{10, 33}, {618, 246}} @@ -572,8 +587,7 @@ Q29tYW5kby4KA 256 - - YES + 256 @@ -588,7 +602,7 @@ Q29tYW5kby4KA 1211912703 2 - + @@ -655,8 +669,7 @@ Q29tYW5kby4KA OtherViews - - YES + @@ -694,7 +707,7 @@ Q29tYW5kby4KA 24 - + 3 YES @@ -711,7 +724,7 @@ Q29tYW5kby4KA 67239424 4194304 - Q29sb3JpOgo + Colori: @@ -750,7 +763,7 @@ Q29tYW5kby4KA 1211912703 2 - + @@ -772,7 +785,7 @@ Q29tYW5kby4KA 1211912703 2 - + @@ -797,7 +810,7 @@ Q29tYW5kby4KA - + {{10, 33}, {618, 246}} Uscita @@ -811,8 +824,7 @@ Q29tYW5kby4KA 256 - - YES + 256 @@ -827,7 +839,7 @@ Q29tYW5kby4KA 1211912703 2 - + @@ -865,7 +877,7 @@ Q29tYW5kby4KA 1211912703 2 - + @@ -887,7 +899,7 @@ Q29tYW5kby4KA 1211912703 2 - + @@ -909,7 +921,7 @@ Q29tYW5kby4KA 1211912703 2 - + @@ -931,7 +943,7 @@ Q29tYW5kby4KA 1211912703 2 - + @@ -971,7 +983,7 @@ Q29tYW5kby4KA - + {{10, 33}, {618, 246}} Appunti @@ -985,8 +997,7 @@ Q29tYW5kby4KA 256 - - YES + 256 @@ -1001,7 +1012,7 @@ Q29tYW5kby4KA 1211912703 2 - + @@ -1039,7 +1050,7 @@ Q29tYW5kby4KA 1211912703 2 - + @@ -1077,7 +1088,7 @@ Q29tYW5kby4KA 1211912703 2 - + @@ -1101,10 +1112,10 @@ Q29tYW5kby4KA - + {{10, 33}, {618, 246}} - Finestre + Windows @@ -1112,8 +1123,7 @@ Q29tYW5kby4KA 256 - - YES + 256 @@ -1128,7 +1138,7 @@ Q29tYW5kby4KA 1211912703 2 - + @@ -1150,7 +1160,7 @@ Q29tYW5kby4KA 1211912703 2 - + @@ -1209,25 +1219,24 @@ Q29tYW5kby4KA - + {{10, 33}, {618, 246}} Protezione - + 0 YES YES - - YES + - + - + {664, 308} {{0, 0}, {1280, 938}} @@ -1250,8 +1259,7 @@ Q29tYW5kby4KA 256 - - YES + 265 @@ -1305,13 +1313,11 @@ Q29tYW5kby4KA 274 - - YES + 2304 - - YES + 256 @@ -1331,8 +1337,7 @@ Q29tYW5kby4KA {{334, 0}, {16, 17}} - - YES + 132.73100280761719 62.730998992919922 @@ -1344,7 +1349,7 @@ Q29tYW5kby4KA 3 - MC4zMzMzMzI5OQA + MC4zMzMzMzI5ODU2AA 6 @@ -1443,7 +1448,7 @@ Q29tYW5kby4KA - + 3 2 @@ -1466,7 +1471,7 @@ Q29tYW5kby4KA YES 0 - + {{1, 17}, {333, 198}} @@ -1481,7 +1486,7 @@ Q29tYW5kby4KA _doScroller: - 0.99492380000000002 + 0.99492377042770386 @@ -1491,15 +1496,14 @@ Q29tYW5kby4KA 1 _doScroller: - 0.68852460000000004 + 0.68852460384368896 2304 - - YES + - + {{1, 0}, {333, 17}} @@ -1508,7 +1512,7 @@ Q29tYW5kby4KA 4 - + {{20, 20}, {350, 231}} @@ -1543,7 +1547,7 @@ Q29tYW5kby4KA 25 - + {546, 271} {{0, 0}, {1280, 938}} @@ -1553,8 +1557,7 @@ Q29tYW5kby4KA Menu - - YES + YES @@ -1577,8 +1580,7 @@ Q29tYW5kby4KA submenuAction: Applicazioni - - YES + YES @@ -1599,16 +1601,15 @@ Q29tYW5kby4KA - + - + - + - - YES + copy: @@ -2153,13 +2154,28 @@ Q29tYW5kby4KA 300475 - + + + prefs_changed: + + + + 300480 + + + + option_sends_alt + + + + 300481 + + - - YES + 0 - + @@ -2184,31 +2200,28 @@ Q29tYW5kby4KA 29 - - YES + - + MainMenu 19 - - YES + - + 24 - - YES + @@ -2217,7 +2230,7 @@ Q29tYW5kby4KA - + @@ -2263,17 +2276,15 @@ Q29tYW5kby4KA 56 - - YES + - + 57 - - YES + @@ -2286,7 +2297,7 @@ Q29tYW5kby4KA - + @@ -2302,10 +2313,9 @@ Q29tYW5kby4KA 131 - - YES + - + @@ -2361,19 +2371,17 @@ Q29tYW5kby4KA 163 - - YES + - + 169 - - YES + - + @@ -2384,20 +2392,18 @@ Q29tYW5kby4KA 269 - - YES + - + 270 - - YES + - + @@ -2413,19 +2419,17 @@ Q29tYW5kby4KA 419 - - YES + - + 420 - - YES + - + @@ -2442,126 +2446,115 @@ Q29tYW5kby4KA 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 + @@ -2570,169 +2563,152 @@ Q29tYW5kby4KA - + 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 @@ -2744,20 +2720,18 @@ Q29tYW5kby4KA 526 - - YES + - + 527 - - YES + - + @@ -2813,10 +2787,9 @@ Q29tYW5kby4KA 100382 - - YES + - + @@ -2867,13 +2840,12 @@ Q29tYW5kby4KA 380 - - YES + - + @@ -2899,13 +2871,12 @@ Q29tYW5kby4KA 295 - - YES + - + @@ -2926,21 +2897,19 @@ Q29tYW5kby4KA 296 - - YES + - + 535 - - YES + - + @@ -2951,10 +2920,9 @@ Q29tYW5kby4KA 298 - - YES + - + @@ -2965,10 +2933,9 @@ Q29tYW5kby4KA 297 - - YES + - + @@ -2979,10 +2946,9 @@ Q29tYW5kby4KA 310 - - YES + - + @@ -2993,10 +2959,9 @@ Q29tYW5kby4KA 292 - - YES + - + @@ -3007,10 +2972,9 @@ Q29tYW5kby4KA 293 - - YES + - + @@ -3021,42 +2985,38 @@ Q29tYW5kby4KA 300337 - - YES + - + 300338 - - YES + - + 300358 - - YES + - + 300359 - - YES + - + @@ -3072,10 +3032,9 @@ Q29tYW5kby4KA 300362 - - YES + - + @@ -3086,10 +3045,9 @@ Q29tYW5kby4KA 300364 - - YES + - + @@ -3100,10 +3058,9 @@ Q29tYW5kby4KA 300368 - - YES + - + @@ -3114,10 +3071,9 @@ Q29tYW5kby4KA 300370 - - YES + - + @@ -3128,17 +3084,15 @@ Q29tYW5kby4KA 300421 - - YES + - + 300422 - - YES + @@ -3147,25 +3101,23 @@ Q29tYW5kby4KA - + 300423 - - YES + - + 300424 - - YES + - + @@ -3181,10 +3133,9 @@ Q29tYW5kby4KA 300447 - - YES + - + @@ -3195,10 +3146,9 @@ Q29tYW5kby4KA 300451 - - YES + - + @@ -3209,10 +3159,9 @@ Q29tYW5kby4KA 300453 - - YES + - + @@ -3223,10 +3172,9 @@ Q29tYW5kby4KA 300455 - - YES + - + @@ -3237,10 +3185,9 @@ Q29tYW5kby4KA 300457 - - YES + - + @@ -3251,10 +3198,9 @@ Q29tYW5kby4KA 300459 - - YES + - + @@ -3265,10 +3211,9 @@ Q29tYW5kby4KA 300472 - - YES + - + @@ -3276,604 +3221,338 @@ Q29tYW5kby4KA - - - - YES - - YES - -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.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.IBPluginDependency - 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.IBPluginDependency - 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 - - {{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}} - {{437, 749}, {484, 308}} - com.apple.InterfaceBuilder.CocoaPlugin - {{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}} - 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 - - {{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 - + + 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 + IBBuiltInLabel-Red + 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, 548}, {664, 308}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{507, 548}, {664, 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}, {546, 271}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{68, 585}, {546, 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 + + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + 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 - - + - 300475 + 300481 - - YES + FirstResponder NSObject @@ -3898,16 +3577,12 @@ Q29tYW5kby4KA - + 0 com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - + YES ../X11.xcodeproj diff --git a/hw/xquartz/bundle/Resources/Italian.lproj/main.nib/keyedobjects.nib b/hw/xquartz/bundle/Resources/Italian.lproj/main.nib/keyedobjects.nib index 74222e9c3845207a2e8696bde3c16a74758dedc2..79c41ea58fb671df9fb207de2008badb68cd758f 100644 GIT binary patch literal 51319 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 literal 49748 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 diff --git a/hw/xquartz/bundle/Resources/Japanese.lproj/locversion.plist b/hw/xquartz/bundle/Resources/Japanese.lproj/locversion.plist index be26034a4..2f7e575e8 100644 --- a/hw/xquartz/bundle/Resources/Japanese.lproj/locversion.plist +++ b/hw/xquartz/bundle/Resources/Japanese.lproj/locversion.plist @@ -3,12 +3,12 @@ LprojCompatibleVersion - 93 + 97 LprojLocale ja LprojRevisionLevel 1 LprojVersion - 93 + 97 diff --git a/hw/xquartz/bundle/Resources/Japanese.lproj/main.nib/designable.nib b/hw/xquartz/bundle/Resources/Japanese.lproj/main.nib/designable.nib index b211f8037..d13f81fca 100644 --- a/hw/xquartz/bundle/Resources/Japanese.lproj/main.nib/designable.nib +++ b/hw/xquartz/bundle/Resources/Japanese.lproj/main.nib/designable.nib @@ -1,33 +1,21 @@ - + - 1050 - 10A432 - 732 - 1038 - 437.00 + 1040 + 11A79a + 784 + 1059 + 478.00 com.apple.InterfaceBuilder.CocoaPlugin - 732 + 784 - - YES - - - YES + + com.apple.InterfaceBuilder.CocoaPlugin - - - YES - - YES - - - YES - - - - YES + + + NSApplication @@ -41,8 +29,7 @@ MainMenu - - YES + X11 @@ -60,8 +47,7 @@ submenuAction: X11 - - YES + X11 について @@ -101,9 +87,7 @@ submenuAction: サービス - - YES - + _NSServicesMenu @@ -187,7 +171,7 @@ - + _NSAppleMenu @@ -202,8 +186,7 @@ submenuAction: アプリケーション - - YES + YES @@ -224,7 +207,7 @@ - + @@ -238,8 +221,7 @@ submenuAction: 編集 - - YES + コピー @@ -249,7 +231,7 @@ - + @@ -263,8 +245,7 @@ submenuAction: ウインドウ - - YES + 閉じる @@ -341,7 +322,7 @@ - + _NSWindowsMenu @@ -356,8 +337,7 @@ submenuAction: ヘルプ - - YES + X11 ヘルプ @@ -367,10 +347,10 @@ - + - + _NSMainMenu

@@ -386,21 +366,18 @@ View - {3.40282e+38, 3.40282e+38} + {3.4028235e+38, 3.4028235e+38} {320, 240} - + 256 - - YES + 256 {{13, 10}, {558, 292}} - - - YES + 1 @@ -408,14 +385,12 @@ 256 - - YES + 256 {{18, 210}, {402, 18}} - YES 67239424 @@ -429,7 +404,7 @@ 1211912703 2 - + NSImage NSSwitch @@ -447,7 +422,6 @@ 256 {{36, 59}, {466, 28}} - YES 67239424 @@ -485,7 +459,6 @@ 256 {{36, 176}, {466, 28}} - YES 67239424 @@ -506,7 +479,6 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 256 {{18, 93}, {402, 18}} - YES 67239424 @@ -516,7 +488,7 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 1211912703 2 - + @@ -529,7 +501,6 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 256 {{36, 123}, {466, 17}} - YES 67239424 @@ -547,7 +518,6 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 256 {{18, 146}, {402, 18}} - YES 67239424 @@ -557,7 +527,7 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 1211912703 2 - + @@ -565,10 +535,47 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 25 - + + + 256 + {{36, -1}, {385, 31}} + + YES + + 67239424 + 4194304 + 有効にすると、option キー で Mode_switch の代わりに X11 キーシンボルの Alt_L と Alt_R が送信されます。 + + + + + + + + + 256 + {{18, 36}, {402, 18}} + + YES + + 67239424 + 0 + Option キーで Alt_L と Alt_R が送信されます + + + 1211912703 + 2 + + + + + 200 + 25 + + + {{10, 33}, {538, 246}} - 入力 @@ -581,8 +588,7 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 256 - - YES + 256 @@ -597,7 +603,7 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 1211912703 2 - + @@ -664,8 +670,7 @@ nOOBq+OBquOCiuOBvuOBmeOAggo OtherViews - - YES + @@ -703,7 +708,7 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 24 - + 3 YES @@ -720,7 +725,7 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 67239424 4194304 - 44Kr44Op44O877yaCg + カラー: @@ -759,7 +764,7 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 1211912703 2 - + @@ -781,7 +786,7 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 1211912703 2 - + @@ -806,7 +811,7 @@ nOOBq+OBquOCiuOBvuOBmeOAggo - + {{10, 33}, {538, 246}} 出力 @@ -820,8 +825,7 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 256 - - YES + 256 @@ -836,7 +840,7 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 1211912703 2 - + @@ -874,7 +878,7 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 1211912703 2 - + @@ -896,7 +900,7 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 1211912703 2 - + @@ -918,7 +922,7 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 1211912703 2 - + @@ -940,7 +944,7 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 1211912703 2 - + @@ -980,7 +984,7 @@ nOOBq+OBquOCiuOBvuOBmeOAggo - + {{10, 33}, {538, 246}} ペーストボード @@ -994,8 +998,7 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 256 - - YES + 256 @@ -1010,7 +1013,7 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 1211912703 2 - + @@ -1049,7 +1052,7 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 1211912703 2 - + @@ -1088,7 +1091,7 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 1211912703 2 - + @@ -1113,7 +1116,7 @@ nOOBq+OBquOCiuOBvuOBmeOAggo - + {{10, 33}, {538, 246}} ウインドウ @@ -1124,8 +1127,7 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 256 - - YES + 256 @@ -1140,7 +1142,7 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 1211912703 2 - + @@ -1162,7 +1164,7 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 1211912703 2 - + @@ -1221,32 +1223,29 @@ nOOBq+OBquOCiuOBvuOBmeOAggo - + {{10, 33}, {538, 246}} セキュリティ - + 0 YES YES - - YES + - + - + {584, 308} - - {{0, 0}, {1440, 878}} {320, 262} - {3.40282e+38, 3.40282e+38} + {3.4028235e+38, 3.4028235e+38} x11_prefs @@ -1259,18 +1258,18 @@ nOOBq+OBquOCiuOBvuOBmeOAggo View - {3.40282e+38, 3.40282e+38} + {3.4028235e+38, 3.4028235e+38} {454, 271} - + 256 - - YES + 265 {{340, 191}, {105, 32}} + YES 67239424 @@ -1298,6 +1297,7 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 265 {{340, 159}, {105, 32}} + YES 67239424 @@ -1319,24 +1319,24 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 274 - - YES + 2304 - - YES + 256 {301, 198} + YES 256 {301, 17} + @@ -1344,9 +1344,9 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 256 {{302, 0}, {16, 17}} + - - YES + 103 43 @@ -1457,7 +1457,7 @@ nOOBq+OBquOCiuOBvuOBmeOAggo - + 3 2 @@ -1480,9 +1480,11 @@ nOOBq+OBquOCiuOBvuOBmeOAggo YES 0 - + {{1, 17}, {301, 198}} + + 4 @@ -1492,6 +1494,7 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 256 {{302, 17}, {15, 198}} + _doScroller: 0.99492377042770386 @@ -1501,6 +1504,7 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 256 {{1, 215}, {301, 15}} + 1 _doScroller: @@ -1509,20 +1513,23 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 2304 - - YES + - + {{1, 0}, {301, 17}} + + 4 - + {{20, 20}, {318, 231}} + + 50 @@ -1536,6 +1543,7 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 265 {{340, 223}, {105, 32}} + YES -2080244224 @@ -1554,18 +1562,19 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 25 - + {454, 271} + + {{0, 0}, {1440, 878}} {454, 293} - {3.40282e+38, 3.40282e+38} + {3.4028235e+38, 3.4028235e+38} x11_apps メニュー - - YES + YES @@ -1588,8 +1597,7 @@ nOOBq+OBquOCiuOBvuOBmeOAggo submenuAction: アプリケーション - - YES + YES @@ -1610,16 +1618,15 @@ nOOBq+OBquOCiuOBvuOBmeOAggo - + - + - + - - YES + copy: @@ -2164,13 +2171,28 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 300475 - + + + prefs_changed: + + + + 300480 + + + + option_sends_alt + + + + 300481 + + - - YES + 0 - + @@ -2195,31 +2217,28 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 29 - - YES + - + MainMenu 19 - - YES + - + 24 - - YES + @@ -2228,7 +2247,7 @@ nOOBq+OBquOCiuOBvuOBmeOAggo - + @@ -2274,17 +2293,15 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 56 - - YES + - + 57 - - YES + @@ -2297,7 +2314,7 @@ nOOBq+OBquOCiuOBvuOBmeOAggo - + @@ -2313,10 +2330,9 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 131 - - YES + - + @@ -2372,19 +2388,17 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 163 - - YES + - + 169 - - YES + - + @@ -2395,20 +2409,18 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 269 - - YES + - + 270 - - YES + - + @@ -2424,19 +2436,17 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 419 - - YES + - + 420 - - YES + - + @@ -2453,126 +2463,115 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 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 + @@ -2581,169 +2580,152 @@ nOOBq+OBquOCiuOBvuOBmeOAggo - + 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 @@ -2755,20 +2737,18 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 526 - - YES + - + 527 - - YES + - + @@ -2824,10 +2804,9 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 100382 - - YES + - + @@ -2878,13 +2857,12 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 380 - - YES + - + @@ -2910,13 +2888,12 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 295 - - YES + - + @@ -2937,21 +2914,19 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 296 - - YES + - + 535 - - YES + - + @@ -2962,10 +2937,9 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 298 - - YES + - + @@ -2976,10 +2950,9 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 297 - - YES + - + @@ -2990,10 +2963,9 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 310 - - YES + - + @@ -3004,10 +2976,9 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 292 - - YES + - + @@ -3018,10 +2989,9 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 293 - - YES + - + @@ -3032,42 +3002,38 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 300337 - - YES + - + 300338 - - YES + - + 300358 - - YES + - + 300359 - - YES + - + @@ -3083,10 +3049,9 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 300362 - - YES + - + @@ -3097,10 +3062,9 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 300364 - - YES + - + @@ -3111,10 +3075,9 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 300368 - - YES + - + @@ -3125,10 +3088,9 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 300370 - - YES + - + @@ -3139,17 +3101,15 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 300421 - - YES + - + 300422 - - YES + @@ -3158,25 +3118,23 @@ nOOBq+OBquOCiuOBvuOBmeOAggo - + 300423 - - YES + - + 300424 - - YES + - + @@ -3192,10 +3150,9 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 300447 - - YES + - + @@ -3206,10 +3163,9 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 300451 - - YES + - + @@ -3220,10 +3176,9 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 300453 - - YES + - + @@ -3234,10 +3189,9 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 300455 - - YES + - + @@ -3248,10 +3202,9 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 300457 - - YES + - + @@ -3262,10 +3215,9 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 300459 - - YES + - + @@ -3276,10 +3228,9 @@ nOOBq+OBquOCiuOBvuOBmeOAggo 300472 - - YES + - + @@ -3287,624 +3238,347 @@ nOOBq+OBquOCiuOBvuOBmeOAggo - - - - YES - - YES - -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.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.IBPluginDependency - 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.IBPluginDependency - 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 - 300447.object.labelIdentifier - 300450.IBPluginDependency - 300450.object.labelIdentifier - 300451.IBPluginDependency - 300451.ImportedFromIB2 - 300451.object.labelIdentifier - 300452.IBPluginDependency - 300452.object.labelIdentifier - 300453.IBPluginDependency - 300453.ImportedFromIB2 - 300453.object.labelIdentifier - 300454.IBPluginDependency - 300454.object.labelIdentifier - 300455.IBPluginDependency - 300455.ImportedFromIB2 - 300456.IBPluginDependency - 300457.IBPluginDependency - 300457.ImportedFromIB2 - 300457.object.labelIdentifier - 300458.IBPluginDependency - 300458.object.labelIdentifier - 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.IBEditorWindowLastContentRect - 423.IBPluginDependency - 423.ImportedFromIB2 - 435.IBPluginDependency - 435.ImportedFromIB2 - 5.IBPluginDependency - 5.ImportedFromIB2 - 524.IBPluginDependency - 524.ImportedFromIB2 - 526.IBPluginDependency - 526.ImportedFromIB2 - 527.IBEditorWindowLastContentRect - 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 - - {{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}} - {{437, 548}, {584, 308}} - com.apple.InterfaceBuilder.CocoaPlugin - {{437, 548}, {584, 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} - {454, 271} - com.apple.InterfaceBuilder.CocoaPlugin - - {{145, 836}, {394, 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 - - IBBuiltInLabel-Red - com.apple.InterfaceBuilder.CocoaPlugin - IBBuiltInLabel-Red - com.apple.InterfaceBuilder.CocoaPlugin - - IBBuiltInLabel-Red - com.apple.InterfaceBuilder.CocoaPlugin - IBBuiltInLabel-Red - com.apple.InterfaceBuilder.CocoaPlugin - - IBBuiltInLabel-Red - com.apple.InterfaceBuilder.CocoaPlugin - IBBuiltInLabel-Red - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - IBBuiltInLabel-Red - com.apple.InterfaceBuilder.CocoaPlugin - IBBuiltInLabel-Red - 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 - - {{717, 463}, {178, 33}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{895, 453}, {164, 33}} - 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 - + + 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 + IBBuiltInLabel-Red + 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}} + IBBuiltInLabel-Red + + + {3.40282e+38, 3.40282e+38} + {454, 271} + 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 + + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + 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 - - + - 300475 + 300481 - - YES + FirstResponder NSObject @@ -3929,19 +3603,21 @@ nOOBq+OBquOCiuOBvuOBmeOAggo - + 0 + IBCocoaFramework com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - + YES ../X11.xcodeproj 3 + + {9, 8} + {7, 2} + {15, 15} + diff --git a/hw/xquartz/bundle/Resources/Japanese.lproj/main.nib/keyedobjects.nib b/hw/xquartz/bundle/Resources/Japanese.lproj/main.nib/keyedobjects.nib index 7728acbb07ed70133330f5a25a31a7033f6c8219..c1a0d5b75cfafc6c765a6176295f96b85d0e8d4e 100644 GIT binary patch literal 49135 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 Iw}q+y2MVGt_5c6? literal 47584 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 AVgLXD diff --git a/hw/xquartz/bundle/Resources/Spanish.lproj/Localizable.strings b/hw/xquartz/bundle/Resources/Spanish.lproj/Localizable.strings index ec90bf90c5831fe4a19ac856c66a486508516179..e16b454a466ed72f59e8e64dcc2f1ca8440634d1 100644 GIT binary patch delta 19 bcmdlXx LprojCompatibleVersion - 93 + 97 LprojLocale es LprojRevisionLevel 1 LprojVersion - 93 + 97 diff --git a/hw/xquartz/bundle/Resources/Spanish.lproj/main.nib/designable.nib b/hw/xquartz/bundle/Resources/Spanish.lproj/main.nib/designable.nib index b315636bf..19e139bb7 100644 --- a/hw/xquartz/bundle/Resources/Spanish.lproj/main.nib/designable.nib +++ b/hw/xquartz/bundle/Resources/Spanish.lproj/main.nib/designable.nib @@ -1,34 +1,21 @@ - + - 1050 - 10A432 - 732 - 1038 - 437.00 + 1040 + 11A79a + 784 + 1059 + 478.00 com.apple.InterfaceBuilder.CocoaPlugin - 732 + 784 - - YES - - - - YES + + com.apple.InterfaceBuilder.CocoaPlugin - - - YES - - YES - - - YES - - - - YES + + + NSApplication @@ -42,8 +29,7 @@ MainMenu - - YES + X11 @@ -61,8 +47,7 @@ submenuAction: X11 - - YES + Acerca de X11 @@ -102,9 +87,7 @@ submenuAction: Servicios - - YES - + _NSServicesMenu @@ -188,7 +171,7 @@ - + _NSAppleMenu @@ -203,8 +186,7 @@ submenuAction: Aplicaciones - - YES + YES @@ -225,7 +207,7 @@ - + @@ -239,8 +221,7 @@ submenuAction: Edición - - YES + Copiar @@ -250,7 +231,7 @@ - + @@ -264,8 +245,7 @@ submenuAction: Ventana - - YES + Cerrar @@ -342,7 +322,7 @@ - + _NSWindowsMenu @@ -357,8 +337,7 @@ submenuAction: Ayuda - - YES + Ayuda X11 @@ -368,10 +347,10 @@ - + - + _NSMainMenu

@@ -387,20 +366,19 @@ View - {1.79769e+308, 1.79769e+308} + {1.7976931348623157e+308, 1.7976931348623157e+308} {320, 240} 256 - - YES + 256 {{13, 10}, {593, 292}} - - YES + + 1 @@ -408,13 +386,13 @@ 256 - - YES + 256 - {{18, 210}, {402, 18}} + {{18, 215}, {402, 18}} + YES 67239424 @@ -428,7 +406,7 @@ 1211912703 2 - + NSImage NSSwitch @@ -444,8 +422,9 @@ 256 - {{36, 40}, {501, 42}} + {{36, 65}, {501, 28}} + YES 67239424 @@ -481,8 +460,9 @@ 256 - {{36, 170}, {501, 34}} + {{36, 181}, {501, 28}} + YES 67239424 @@ -499,8 +479,9 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 256 - {{18, 88}, {402, 18}} + {{18, 99}, {402, 18}} + YES 67239424 @@ -510,7 +491,7 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 1211912703 2 - + @@ -521,8 +502,9 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 256 - {{36, 112}, {501, 28}} + {{36, 123}, {501, 28}} + YES 67239424 @@ -538,8 +520,9 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 256 - {{18, 146}, {402, 18}} + {{18, 157}, {402, 18}} + YES 67239424 @@ -549,7 +532,7 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 1211912703 2 - + @@ -557,9 +540,50 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA25 - + + + 256 + {{36, 7}, {501, 28}} + + + YES + + 67239424 + 4194304 + Si esta opción está seleccionada, las teclas Opción envían los símbolos de tecla de X11 Alt_L y Alt_R en vez de Mode_switch. + + + + + + + + + 256 + {{18, 41}, {402, 18}} + + + YES + + 67239424 + 0 + Las teclas Opción envían Alt_L y Alt_R + + + 1211912703 + 2 + + + + + 200 + 25 + + + {{10, 33}, {573, 246}} + Entrada @@ -572,8 +596,7 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 256 - - YES + 256 @@ -588,7 +611,7 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 1211912703 2 - + @@ -655,8 +678,7 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA OtherViews - - YES + @@ -694,7 +716,7 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA24 - + 3 YES @@ -711,7 +733,7 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 67239424 4194304 - Q29sb3JlczoKA + Colores: @@ -750,7 +772,7 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 1211912703 2 - + @@ -772,7 +794,7 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 1211912703 2 - + @@ -797,7 +819,7 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA - + {{10, 33}, {573, 246}} Salida @@ -811,8 +833,7 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 256 - - YES + 256 @@ -827,7 +848,7 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 1211912703 2 - + @@ -865,7 +886,7 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 1211912703 2 - + @@ -887,7 +908,7 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 1211912703 2 - + @@ -909,7 +930,7 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 1211912703 2 - + @@ -931,7 +952,7 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 1211912703 2 - + @@ -971,7 +992,7 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA - + {{10, 33}, {573, 246}} Portapapeles @@ -985,8 +1006,7 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 256 - - YES + 256 @@ -1001,7 +1021,7 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 1211912703 2 - + @@ -1039,7 +1059,7 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 1211912703 2 - + @@ -1077,7 +1097,7 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 1211912703 2 - + @@ -1101,7 +1121,7 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA - + {{10, 33}, {573, 246}} Ventanas @@ -1112,8 +1132,7 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 256 - - YES + 256 @@ -1128,7 +1147,7 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 1211912703 2 - + @@ -1150,7 +1169,7 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 1211912703 2 - + @@ -1209,31 +1228,31 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA - + {{10, 33}, {573, 246}} Seguridad - + 0 YES YES - - YES + - + - + {619, 308} + {{0, 0}, {1280, 938}} {320, 262} - {1.79769e+308, 1.79769e+308} + {1.7976931348623157e+308, 1.7976931348623157e+308} x11_prefs
@@ -1246,13 +1265,12 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA View - {1.79769e+308, 1.79769e+308} + {1.7976931348623157e+308, 1.7976931348623157e+308} {320, 240} 256 - - YES + 265 @@ -1306,13 +1324,11 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 274 - - YES + 2304 - - YES + 256 @@ -1332,8 +1348,7 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA{{302, 0}, {16, 17}} - - YES + 121.73100280761719 62.730998992919922 @@ -1444,7 +1459,7 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA - + 3 2 @@ -1467,7 +1482,7 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KAYES 0 - + {{1, 17}, {301, 198}} @@ -1497,10 +1512,9 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 2304 - - YES + - + {{1, 0}, {301, 17}} @@ -1509,7 +1523,7 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA4 - + {{20, 20}, {318, 231}} @@ -1518,7 +1532,6 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA - QSAAAEEgAABBmAAAQZgAAA @@ -1544,18 +1557,17 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA25 -
+ {454, 271}
{{0, 0}, {1280, 938}} {320, 262} - {1.79769e+308, 1.79769e+308} + {1.7976931348623157e+308, 1.7976931348623157e+308} x11_apps
Menú - - YES + YES @@ -1578,8 +1590,7 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KAsubmenuAction: Aplicaciones - - YES + YES @@ -1600,16 +1611,15 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA - + - + -
+ - - YES + copy: @@ -2154,13 +2164,28 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 300475 - + + + prefs_changed: + + + + 300480 + + + + option_sends_alt + + + + 300481 + + - - YES + 0 - + @@ -2185,31 +2210,28 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 29 - - YES + - + MainMenu 19 - - YES + - + 24 - - YES + @@ -2218,7 +2240,7 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA - + @@ -2264,17 +2286,15 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 56 - - YES + - + 57 - - YES + @@ -2287,7 +2307,7 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA - + @@ -2303,10 +2323,9 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 131 - - YES + - + @@ -2362,19 +2381,17 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 163 - - YES + - + 169 - - YES + - + @@ -2385,20 +2402,18 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 269 - - YES + - + 270 - - YES + - + @@ -2414,19 +2429,17 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 419 - - YES + - + 420 - - YES + - + @@ -2443,126 +2456,115 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 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 + @@ -2571,169 +2573,152 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA - + 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 @@ -2745,20 +2730,18 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 526 - - YES + - + 527 - - YES + - + @@ -2814,10 +2797,9 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 100382 - - YES + - + @@ -2868,13 +2850,12 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 380 - - YES + - + @@ -2900,13 +2881,12 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 295 - - YES + - + @@ -2927,21 +2907,19 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 296 - - YES + - + 535 - - YES + - + @@ -2952,10 +2930,9 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 298 - - YES + - + @@ -2966,10 +2943,9 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 297 - - YES + - + @@ -2980,10 +2956,9 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 310 - - YES + - + @@ -2994,10 +2969,9 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 292 - - YES + - + @@ -3008,10 +2982,9 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 293 - - YES + - + @@ -3022,42 +2995,38 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 300337 - - YES + - + 300338 - - YES + - + 300358 - - YES + - + 300359 - - YES + - + @@ -3073,10 +3042,9 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 300362 - - YES + - + @@ -3087,10 +3055,9 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 300364 - - YES + - + @@ -3101,10 +3068,9 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 300368 - - YES + - + @@ -3115,10 +3081,9 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 300370 - - YES + - + @@ -3129,17 +3094,15 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 300421 - - YES + - + 300422 - - YES + @@ -3148,25 +3111,23 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA - + 300423 - - YES + - + 300424 - - YES + - + @@ -3182,10 +3143,9 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 300447 - - YES + - + @@ -3196,10 +3156,9 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 300451 - - YES + - + @@ -3210,10 +3169,9 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 300453 - - YES + - + @@ -3224,10 +3182,9 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 300455 - - YES + - + @@ -3238,10 +3195,9 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 300457 - - YES + - + @@ -3252,10 +3208,9 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 300459 - - YES + - + @@ -3266,10 +3221,9 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA 300472 - - YES + - + @@ -3277,606 +3231,338 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA - - - - YES - - YES - -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.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.IBPluginDependency - 244.IBViewEditorWindowController.showingLayoutRectangles - 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.IBPluginDependency - 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 - - {{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}} - {{437, 698}, {619, 308}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{437, 698}, {619, 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 - - {{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 - + + 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 + IBBuiltInLabel-Red + 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}, {619, 308}} + com.apple.InterfaceBuilder.CocoaPlugin + {{507, 565}, {619, 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, 986}, {375, 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 + + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + 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 - - + - 300475 + 300481
- - YES + FirstResponder NSObject @@ -3901,19 +3587,21 @@ IHBhcmEgYWN0aXZhciBlbCBib3TDs24gY2VudHJhbCBvIGRlcmVjaG8gZGVsIHJhdMOzbi4KA - +
0 + IBCocoaFramework com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - + YES ../X11.xcodeproj 3 + + {9, 8} + {7, 2} + {15, 15} + diff --git a/hw/xquartz/bundle/Resources/Spanish.lproj/main.nib/keyedobjects.nib b/hw/xquartz/bundle/Resources/Spanish.lproj/main.nib/keyedobjects.nib index 408b7eea26279ba16a0f38c7dce0fef555e85d42..806c0e84a791e901ef52f1c5c5b9d1b19b9d6685 100644 GIT binary patch literal 55270 zcmeEv2YeLO*7)3er|!<|%qEd0W$7RgNgzN#h0vt8&|6%RB?OXe$R6~!Z6`%;UeJ@;Zor;VY6_xaFcMeaEI`e@U-x}@PhE7 z@QU!d@P_cV@R{(r@P+WTuwVF-C`2VXF^NTvAkD~;q%FxNN0aU(j|?WG$Y?T|Od(TA zF{va`QblUX60(%6CTEZ{$p&&U*+#A+SCgB`E#y9OKY5b8NM0f@lUK-lWH>Y`&`KJmRdgv`Mwio5 z=mvTgJ)2%aFQu2!&GagI6TO+sBR>>B#C2T1>k*#7I*jem6b|JfzUB))EZR}=tH@k=JV9&E%>~;1IdzXFA zzGnN`_v|P3JNrXWL_w59S@erpVl(kbF-Oc5dx^cpe&R7=e{ryQyf{o8EshZj#TjB) zoFgt3PZGI!rg)BcuDDUWK)g)6PP|^cLA+bMN4!^jLVQwuN_<{?Nqkv+U3^1)SA0+W zQ2a>zT>MV_N&H!oBw11@sor7hAm(#_H>(u2}N(!22v9>0Rjq=}YM= z=@;o&={H%Bo69ZamU1h(joemlCwG;*%LVcfd7L~=o-UWj5qZA6K(3S*%S+^y@+x_~ ze1?31e4%`$yji|UzFEFUzE|EMKPEpeKPf*YzbL;Yzbn5de;|J@evabW!q@UdnMwe`UBbLYbfxDzlW?N|ADcQmV{Xs+8r*DrL2DwsMYgv9d|o zs%%rXD>o|lDfcUnDUT~JE3YVTEAJ?uD_Mrp5>-=uYNnc{HdkAy9n_9$C$+QM zUG1SBqYhSwsAJTz>J)XV8dm41^VJ1vjasWNQWvW$)HUiE>Y3_=>P706>Spx@b-Q|p zdZ+rZ`iT0dx&`|1bkr|M_wUiE8rzxuuU zi~6g2Koc}clQqAlYe6kTYpgZVnrp4KHd;rmlh#ek)_Q0?wS29w)?XW-4bg^bBeap) zIBmQ(S(~EG)JnAZ+5&Bfwp2SwJ6T()tjoO{sUD{*X zO~2*O@*m-EV8iS0%#t>tualA3i7;cO(MjE4x(Z(2KtTE0Q zZ%i->jfuu2W3n;Dm}*QjrW-SinZ_(*wozo9V1$i1MzK+1M2xvcsWHzeGv*r$jB=yG zs5GKRm9fyMHeyDNQEMzR78^^9rN%O2xpAVg!Z^t|*{}_6tTa{`tBp0rDaKl3opGvh znsK_Z-Z;ZJ)7W5~Wt?rCW1MSjG|n^5H!d(PG%hkOHZ~cT7?%fZGi=T=i_H=RHJ6#o%@fTP=1JzsrfqU_rMb#n zZLTp-G1r>w%u~(N%+t;F<{9Rh<_7aD^KA1R^IUVId7gQ`d4YMMd69Xsxyii5ywtqR zyxhFPywcokZZWr-+sv!XtIcc7Yt8G->&+X??dFZyH@`5yG`}+U znqQmWnBSV;nfuKB=J)0g=8xu2=FjFY=C9^&=I`bo=AY&POR$JVEoO<9WXYCdsg`E> zEWf2&h83_(%d&!2hLve$Sw~ontj1OotEtt@I?`%xwXj-Rt*nsM+G=C9wc1(jtqxX4 ztCQ8)I?C!|b+x)#+1AlkcPq!rwR%`Rtvsuj)!XW0-3E{{wp zt1O8wj?EfVIM$W_ZUb{n;h^$xEEb7P4wu(PVl&1R4y_JXL>5P@7fc>gI3XIXDYBZT z>ECS*-Nhfr?q)*gFtmGXa=T*ec-ol4F_9%TaDBRa7aQVZ(aK6tLqH>eX~Hbxvr5cj z3``;pME&98k4CGppP|vpn$h9PaA~9(emPIMeQ>(dRyb{he`TA(ALsusaCTFMAfC5_ z)8}oC)1I8>adx9EaN6r-Sb%KdXrVh`!2t`qvn8A1ja;FJ&=a7^j@49`RhHT!3|CME z`c`omp?F#7CG-~h2>H`pxGUk&sqWW^3*qS6nlLOxq4W3_XxdlkH+4**`y0Nv7;yVJ zRyb}p%%L_`6RmKsZx)Uf`oV$@A2=vl91SNH38z*d3={?ddb6YM(%R}3ZZ|`Op|B?2 zz>%6Q!Vuwjq2DAJHB#d~Ib0ZFx4X$2DvT6H38RHE!dPLPFkYA-6bciCNy21diZE4} zCQKJ*2s4FQ!fc^PI6(*tbA)1{M2HA;g;HUjP$tY576|1+g-|I(g(_j8P%XrS8lhHL zBrFz|2up=!!gAq6VTEv#aIyfn7FG(Ygw?_t;S^!5uueEtI88WRSTCF*oGEM&&a!>B zX?L_&*eBa}*gNdU?f2|G_6PPy_Luf|_D}W!P9#qJoCG;(%t;GQZsp{5PVVI7Zcgsy zwxT{K3heoE+d3h=Xv-I2AdSIaN9JajJ7_a2nv$Edc>=+ zD(4923LAyiABIQ6dgCnt;vPy?&aQUOP)x{AzU>mmIrXB@u0;)zlt*e3yJCxQxp1Y>59kN( zC9bB$YQc*Br|wPlM&M@vSBW5|GTCa~$oRyvJ< z#=Rzh$loc`9I&&-y#n)l2KM{2!gIn-z}AFF%vlR((>Jjj+l>J1_}qX&;Y!!-eXA_b3sC2Z`)W-dQbg>TN54D@7cx5(T;o1FtCqo)Q+SLmiy8AR6(( z8pc^&L3MR_=@z)=7y7{>IzQcJ1_{KeYBMo_|CU6H7a-Cn;(wFoj z$B<*mail*PKnln}GRW?3=h}I8FZ&q#SbKn7U=Oy3+QaPOuh%6w(jh**;V`|Cc6Qxa z<;*H5j#L+iLnVY{WCAIK=O=lnKWUki*SpajYu=}{P%C8Sx?`egR>P2O+RqAh) zB;pqW;$zT9UqF06ySIn<#dbSj&1Mk_S?nSbLn=8KOv}9qIWVm}I7|)kyC#m`Q^{!n z%lZsZ8HG3;{XP61S7f!r9lj`BeRN4A7Iwdes=}2u;qvlus5n|t1;QgdK76nVo?T~x z7an|qZ<0;*_cpnNTpFL`m1Hwaax17F6T_v}QK`f*$eZlI8DooU%WJ~bNKfPEHH7$@ zL}%NfGtlFb5GOhrGRx~E3X(IHZdSLF+dQDi-O$m!b?1}i&FA=;qobhh!F+0>CDDT+ z=s~Y9X9XWWID#6&^Hdz3=g3Z&#tW%P8R<=8#LU8Qd0BOQmyKUI69^0S&WKA@Y2*ZX zmApoFC3wr*C@1VOZs%j`^OhF%_)1(3kUfqZ7zd>7$pP{)$N};R`P3e7PdFGdz974j za)5l7M8?>^k^|&>?@{s#AmcZ0zI8ZZA+ifFWJW6iC(FXsz%J77^*_l0DtIWMlJFo^ z?8$DIQ|hB&QYom#B_L3W;op9tGCfA9U$_A}nF<)06yNI9vfEurgZ8urD@!w}fOw#d zX%iT`nKv>5Gs9ci>5~UVtIERFL zO+LY`Xcw4%H|XI603c@1@<7P3+g(F*X%E_y=FwiXH|<07?XX>9m)d3ae7nM~vKKZ4 zuOAIL;Ps~iU|IvcNg;T}9(Z#m4~l>st{%U*;qyb|&yS!Z;rY?2&(HOqk4zg~R#{eo z%RIiKVHe}wE`;rLGITLDwTr|Co;PuNG+J>GTBS3+9&qE*;v}sW{S~d!x$*hWryxdX zMe5+?-uxGUN;@G^9IdX7REHM1s}mc4OhZT(#yhK}i=eY5shvf=&MKo;GdPq*gkm^g zRm1;K84AJi3f1r$P=rt^ioq3BjY7`-MPQAOjX&;S(66Wi{p!C1{aWu)x*jHcX6l3! zsIP|8$;9d~fR4N~6fO_V1rc8pnGNhKZi_f51Ec5AbLqweHhZ1TA zfZ{2E6D#T}k@R-*iEsg&u}%VR>7O00s)`lGywggGvPtiy_c`ruw{6?M+iFA~qz}=D z=_B+}x`RF@WYEXy6ZA>?6n&aLL!YJ3(Vg^p`T~8CzC>T9uh3WNYjhWVoxTD8-lT8Q zx9L0dUHTr~P4~dB4}h*eg8QEck9mfj!m?!%I5aF8S{^P1y9C%)21UzjD=G_W;TRQ( zl`R9?Mq$m;ayXE|p$APjaIUF}R+dCyMO(q?wK`l{ifx>;5}wkAMytm}E8(OSE_V)b z1H;7&N~@!_l_k(~6rO5}G9M0RlglEDy~k4y!Om!K02&-W-@;jLSR@SNVf!Mh2^_+J zZs3qyUS3!gE{3s(MaoL&)c`~jqKn<{aQd0(fz~10 zxqZ6!7X6%lLBFJ5(Y-(&F9NkZLcgZp(EH$j`{;i9J^g|H2>*TtAO;@qECC#daUtR8 zj3|ZcgQLaqZ^bUw;E?24lwcX)6p0|k>>Ge0Z3`?O%{gshuM28|y^hl(r!Vi(J*R6Z zC%?~%UGz7c08HZ%Alv)sAM{Upfd0V<;3l!+(8+3m+&;x#ZLc}le%h3#mDZw!a2>c05ctua|TNi%~ocyAj?2|85kAn-Gt*G!j9DA5%z0I zRI)5~1dQL9{$QVKp9WCF%-6k3zhKSiUUsC5aMqkY!dkGF^lR3N?qaQ38~AL;+OrO< zBWn-vAH}+`uCU2s&L#uwqZJ33Uwqujg~hH($FT^w(;ie_R)x2LB;C6O6*Xv#9p<$K zy2<6VgUvbZ$jSRb0>-A6@Woy|*0Kshg5dnS5dOkHPMdMs1~~9?Kv-_qQ1=yGL(6k| z!K(FM5l7w8totnBU&+m|mF2idt9v=FC$OG&yDcn_^q~!Q{n#-= z20NA=$NIAYtU!2-4FZm~oegEjvtevF8v$2F!TuN?19SuL!Ci%$9roQI*wGG`aZxZa z8ZDn#Rs|S{qXcfFT_n83*>Cu@tkU`F8fzR@g$xLu7#W1peopB+85dz?G5%hlgC6W z=2S8YCE6dj}4sx2-n2_Ih_1}5y% zeF=-eQ)v3$%t{<%6Dwu&SQ#6^=HoPx?;@{suraT!CSspEvU_$9{4X~@UvN7qXBB`f zr|o7|F7$hiMF9y_(9=Rz4Sm(HTDAy@7nZ6#T8d^dL0U z(ij*GVM*sX{5ydaFoq@Ox7Hg+~yxCz9DRnZ%x>Zxc7>z%rS-I$^mWj zqU9ieT+4h$Rt_wrDA*SRJzZ{JYHtGeoi!WAC~-_5H87KC-941U9L5K01k!yo z+amNk_?Ere*|OKcmc4;(cedblAxS z*s|(R?mHm5ea_^z+cy?jjp9U?9LJeyD)IhkpF6sHb}#S0-VNyZSLpILr^}n|Tc(wI zDphJ92kdhPchAmqxqwJSiY(OA5Vwg;6kSP_dKow?GF;fI(;a2nVfHDCw5W=jqewq$ z-)Z|_2PJv0sC(Lp@R%47P0UfR24V|=lhXh{%a`Zmbq(d_9&x#fAiOty~6|wiH{5AvTV!7Fz?~ znIN_i+luYP_F@P6I`}=di=D-zL{01}c4O+Jv7==!3Zsi?U~NrJ zv@))u15+v}2L%{hMiEcuIAYUtg@nsNw}7X{M5`;p<#CS%czzR4C7l@FSfFc%mx35g z87S9knjw-ug^Xdxj0g7!{O>;dUclu8_QUoj>nV#CSv`jVZ>$a#gU=Hzh}B{Eh=Fko z?7y{@Veg0=0^gQnWekNwV1Wz6!nPieSeCJh;i0}kX;Qt;Gj&z8ycW)rV z?hX;=^y&lOd#zZp+sYK1i^VB~*c!;NM2rY`JA^n_EEVSgzT1kRCW!OJ1!6f6WThAt z$BPSLgT#O&YaL6-YvL06nnPi(WxhI6GNhywwKhDlqhGMdYL@(gYBZd03d+k$D*+o2 zF94^XNf1$hEr(V|EAS~GPlp_1j^E4a9K15o#p9x}GIXC?Bb`&v>ViK9WXLNA96*7a zWj|{_0~mZxvv=B?g5)esv)``6;lvZg6?G)7Wud+bu6oh7#c}VT7foCVc4_cNimTwx zz2J)kPnx(|TmuK^-C|65M4XI1N%3^yLGcXGhn)EVRZI+5mqu#rxJ`B^ScINN_n~Kx zc|LAn5H|=nh-cd`fq~)0*@Gh?FsXaCbzs{?Rne+RRfq>yKk4hu?tELEKDK6_dkl@m zb!_n>yWLiCp}0xBM7-2~&VJc`&3@x;gdq(Cmy1`3SEkJWYMB4E_N$J~!cqZY^(Oqv zjNH6lVD1O)4dW3SPVHa=Z5MA8Z%P^H4jAYz`*n99v*AFyCXFsD|9eB+C*ChUkTS#$ z7~*mJEq90}4TpGhDhyGMPRw+Gxa{C*@fk;Mj>8p5a)qnJr^RQ1Gdw5mbX?>fMI*;J zs6HjWAif9$oYK`*a4EqrCY400YU=QbSHY!;#-H7GE8r98V=Qun7Hp4HPowx2ICHVx z`{1hePjlMUZ?Xs6>e%E%aIO1`tRtL8i=AMev<4;d6Y*2$fiLWj)A61!#jnJ@;@2Pt z_iFa1_Gk7dt^oWbmG|re-t#^1o*y~6I>~!3b_F2vn;hpvd6)w57x7o|w}b#ZAb#o! zKuHw4r;$0I!@T1%2fzih6tEPCu>r9I3%2ZvNHx4K_4&q#h6^j*DMFkqO7|*FdX~(=r4WZhX1|+JV09 zgaY8-l0=VH@XNJ|m&eqzD@&*`oWO*u@2T6k+H2-P;Z2RA+t5QnG z3y(>|r4iCdX_S}&pJPF2xQ1=b{?-27{>9x_zu3RMo-{8>$J4K+@nR#XP?`w;#!6E- zDS#cuNk?c7pEg7ubq2ZzMHBW}ew-W+N6(a|OEaXIiDf!L8XRAyNZMuk17J#!V+RyZ z;35u1F#5*PCnGVW%$f)U@qzh1Qi%p{IF-hcwji?9X&OsK*L-OKqKgxegF4et2bZE! zmAF@`c6bjbgcF+JKFKZEqsQUv*3x2WiL^8U^9pG}9OjkjVCID3#F9{hHe3PPM=EPU zph5iup5r0_bf4*Qm}`owQlVWdt#hIEaU!QDkM+_SKo}cb^3XU@I8jsRA^~%5PTt>u z`8?@->4F5zo1}Gdn6F3=GmI;HFh{KxLLqFc3OK&vCc+JgTd_s}w`XGe)WEffvmNKa zw!!UKiN9yg4KIik&2f$d*CDKW7q?qCiVcFshic=194W@^Y1MGUg>M; zn*_-Fr9E+we@+kbkvO}=@^^qhSJzjHGNssAeDs`-1^JM)=%7qmBHbgAJMPFkXW&y#`vSWK*`}pqwFR%31OeawEC1+(hgyHoN3s#1pt=$U+{$?1cYipMnP46P zLpj=!orALD%t4o4EW9X!hw8+mXz0YoWtDE@MqW2@(?Yx#Xb+wTP&;ra*rfGad5?pS z(47UEjKDPqT~C?lxjo!FP9!xP@Ns14yQ7!8_Z;6J+VDAP#Yu>h8#%d&llGi!=cFws zH*j(@C+#xEEdi$nY0U{ZHJX45(-SsH&pby7?Ue({T958vh5^V^L&=bpgV2IA-MDaN zq&$A~l3Uy2MAzDzyF4emcYg0)`8{%a^z73sw?|H1??@Nu3b;}F8!N#1mD?S3!=Bw& zyq@sBJ&00WY$SJ(J4$2a&hW2`Bhs%&4FKf%b@a9`O@`3 zdcQDk7rg_{!a0t}iPg205U3t0aiWl8oDAV)Fo#IMO@M7j^|%(k*uMdP?xcBB9fVUI zY5(H=J|1F4q;>Led4x1r9wm>K$4GlXx^Qw7Cpq@doaAwm&&jc{-O^}F@&vh18Yxeb zC!@9m0|A!0I;?<`?l$O2j@r`$yi~m$ahQj0##~s}G{$0ihCEZAB@cH@`BUXN!gkko zB@941=>{`$O!XT$$+oki*5$$=ka)P2OMu6t8i~>As6=A4dg`Xf>+i$$FkD3ibP;?* z<+3YWtAaiv@Cy~uh0b@B94IreN4(;;MDRl{<%4iOb@BRfEJT zgFaDSBTGV+7XM-&Zr}&1x30>J5XGf7w3rIXoH_8@V@a?+zNU4Y#c=_03(BP0$<7)#}4@^X1Zdcx?5bc#M4k1(PDq3&!?BQnP)#d_^b7Ad-b<=;*@7<}w%5p~0Jhg9u-%K3-s!OoCty4z9%>t& zDQ}R^l1HV-b{}8}b+8?d2XR*bc_J>8Bug(t@1Wc$C0m|h5035t57t_O_nknfZ4 zmmiSFc=VLY)CYiINl;VNI?*}E91bf-W```f*jaTqeZXVshqJSh>XMqEN2xK;4J&|_ zqR_W10$e&t@`$>Wa|j(0FpOik(R|Ai6o-}*?6U}PzZh1a#@XxH?uiMM5ci;**Bfj& zxjn%F;JSW;@)KLU;1{GjwD353QeHkb%+JM!m@+n8eg+a2K+||m-YGvXzu>3@!#SD5 z$vRFh+69W~OTszw%knF1q5P^;DDQ$LenXxE8eUxQ03`zz4p0?`m!OeuZds(7lVPCR zaB{p2SyV$o{Ni9>kC)%E#ql{)hJd69mxNs@v0L5)N^FV}vsr#$=vVhr!)bghPLV&A zVV3SdVf#r=Mx+e%B@C47f%r9OEb=$U$W;EQBy%yQ<(R zR}K6Q`U!=agIQoMTtnWUI@^>Pg<7PH=2{uukqcAc^kzK{=7tH9uAFwG1zc6ln=hJT z5`0z2Zn%8yl=iTE9plS4iId6omM_O~1iI=n&|_}*wA!-LRq3W=%ln+=TVG#W1{35& zXZheL0NV0YM~{od`Zkn)wDgC}h|)nMCN0*FS%EXiU$T^M@^#YqH}0{j&h z^$p=4rHlsn$Hw8G#mVe+@VmhQ&UWgNlOFzw$|Pm7{9}6fi+~-~f&Vn%*2&X|2U*?F zZ&&f#3psHf`Ng4t-;)4)2$xItt|=T+#eRA-Z_DsD|w zO>vW>+UspqZzlf}1OCCq;ABjfDG4_a97?fLqC}E{V=X5ooD?S|hf;=;BgGA-ED#$h z6+#y!%E>87H&`StT$E}ME=o+PQEHV%%3@`SvQ$~d$y`q6b5h9($ihXOz?G9YS=o@7 zRwyUIglsWGDFN18%E>&K5Lyf#fxoVh#~qy;4>dU)kCd`TIYn8U5HY7KvABpiE4_#* zgV}l_CTcaRLuR;GsP`e?s*ZCvOt_2_Ohb4!D(3+_7s!(xc)*}j?!p7I#skPb!?~^} z?^Mx12UIRmE>$j5YP`*nssmO4ZWCK0YSq@6F){&^0(*gfqo(R@1kb;O93F`u1r{qE&V12W5Ltuq5|# zj~s_ZJ~t^hE4L)b=MJSdPCoahC!d8t<{tSJS$W_?s&%unP)`{&YWTQ;V+$q>4i(p8 z#9yd5TrsCCg10a{He4010xMRmAss!aJOpq(5{C;cRW<40>g`$rat{lxCzL0ZrxI{I zr!0!Y^-_AcYGLnsa78U#q~viho^=e%05HwU$21)!Lp~NDg7#cX8G*@wB-IvF$ zr^tx$IvQ$Fb0~FYgz9)wclav?d@$`zZKO5^oHmW)bQLG7>*5qRrh`-0NON$Mwp3fG zA!S)Ql&%3upMugFU>&%%!*S$zJl(T8AUa&R* zr!z}?C!6{TGnQuwfh_W(m)#LvN$=Xu@XUfN2N@TtZD>PE<`$+mF&|tRn>j9p*Edkf z)UKkXW+zp$3+=l&IW?(~sktdp3~Y@wMXd_bx}pasps_C*2LGus7U9L)GKeVQTMmD}E--A!WsR zT1UhC4lccIm2@Z|enVit#npF7KPf!i6>xFy9$S)mp6-DqxlvvBgsa}yKNh&Ee`;G- zH^EupiofsZF0P14j_%Q4(wdAkf|TJ}p)286Qe(pHk3HZF8fq%)cy$7-!o>J0oW;r6 z=~e+!lTxkC4Od~BI$fQi=BHbQbASdCt59SW4FM&iw$e3|M8Ltlur`9C27)u=dARrs ze1l*(DTQ00lN8rNQh9ZDXb4nX!bmfyxU(n>CYI9L%4iH^6kLKw-MEl6AeN{R0I@U< z;zmx+O9c^iF)+UMOww6TFvB&3uw1QBE7gAKAUq%FI{{(TI_DptGt}deRU<3)=&BOF zMI0wrLmERG@D9VC5`s^o#{m!7$Vt3ICThY}@Y|&k)SzoX=XL1 zIVW2hGM=^SI&rUh8qmXDU_6&_a;X#PgpB7Cm+_!GtCw@ObIjpL5NZ6J>IU^J^=x&e zM-p`nZe^d807YdJtNs9&0((K zL=!t6*KpB2p@xU3hBKWHtvpkrJ4Yl&B=$wXNa&%dQ#a8lv;;WUN~(3NviBf^_$ewE#P!r;2;IjKqZn_(zt{kT9ird2u=YgxR1zpi5s;Q zBtV>}7Z2Kyw34LhlGOX~G?GlJ@|%>>-qNOlBmUf>mK{kR4P6K=5{S$7ym4LLh-B(Y zQ;$f~kjYKz%|Ir%#>r$WC)-lV1UMZArgY1RpZD?Dliv8M-lg8H-lMKgPbXIaJF7z{ z0}{qpoV^z=kiBKV@Pe4~ZFS-wW&FPK@C@;PTICGKp55xyeTLMwCRZ!0gaylS!N!_VF z?<9H0Befz>YzcyJHmi_)FvDq91hLp$Yc7bC*LmtkWvTnrLwKt7Pj{X{+d)oh-@hx%+*V*?U76Y{H>H(E$+2#$ z9Z($&CeWxRT3QMPF_N+P^%K4{RsP0(T zM>hz^DXSW--U2s|Ja`pI7^5YO(Zd&Q^t6ZzmFu^z55J3bbw~ga`z5z>J=^ zsSTNnEuz(sBMtdol{JtvRapY0S%9!O!FF{XJxaI$!@}Uv7h#~>IN`_UMHkm;)*VLZ z?=*WEMktsxudF0er$H}hFvw}}Dl`~A9daUJ#;~92v^oY_4RBiRf>wiJ`LH7=*$T^M z#mlwE>O3|sq3eVJ5;!_YhSLYebWjsgN2C9zNttef)X~G2>xW%B|XSSb{Jq;92 zZMIg#+G}Ak13o$VfRhiMA`u#T6W#|k*C`Y7AciSwbA>M2JgqF@(4d_-Z3=Zx&{&3y zFyAq)<~WKoXr=GgNp5Y8$*o>$t5&X6Xq8%2*sd+qs~m0sxn;d!F#0xZ$>J- zU?;5yEF_d6k^$K7fTS=!Ii-DrJ$F5zX1miGGF&*>-w-u7YqtPuZi}Pldrp2xi<(?F zSS%+86ptQ%K{a=4_h|QOP$Wcq08sOgw%tL^4n&Qc1PWQm4Jqd*2R#tIvEN0{0#G;6 zaqnvF3Ac}jtS230nJK_S2z#B)_pES%1d%R)sb3LxdA2K%i|2(aOCu!>nhy4w+CQiA zMd(F_;1I8u{QCF4N!}Y(@1E$c6O3+uTU;kjcWskng@t^*jXg9w~2j+i@B z0mFp`z1CYIz5cx&$$J^~?kV7Z@}8Sp{~q{>ynD&)Jdh1Ap0X%;&tYxn2v7_UH z-gC?9_qjNEZ&AH_Qb+Hey|4bQJ>D${y>{HwzCpghoc6fMxZLTW$B1V?pyGDx)O z4^mfozx<6eShPwfx2Xa`7tN`sX}(i!9v>0{wG+Ed;sY@_+wb_foCO8%8~rGh*{ zod98vmnzG&wQ6JGJNbE~mh@p)lh$f)aUrBY-mcvuP9c!)3c163)QFPLddUmrOsz=G zr*D&1Q0WCq8Y<_hH_Ok78fl}h6itX#eO!4+J6%~yx6$6pXjO!IxP5)EvyO5e)X41* zDc3_Cn=;UzY?s(w(BoXiX=8{J10Ci>I~N1T-p5nY?{+pAf$W!2i-vtyVz+^#J07!( zFo2`Xo`@zpVCvx4pKK4e@3Pm~z&@vff{1y3PeXm8u>BcC+F^1^C&-C{m`T+5A&@fz z-c!bp;|o6212@Mzh?>^x38b1Y*u1T^geBwQ%J?|aXdIBf!PfCWi?%^_-G zxbFiyOQ2# z+fMWw)-iL;&WVy{ZWN{O2j7oa;VE8}Ypd@E_b~Z}@DAN8uJZltrEK_q@%>7F@cj<| z{`4K7Kfq}dk_wB#yvS*Y(^mGnw*9}^H9xv%&J9j2F-}|C>zvc4Q~G>G5J8q4hKO$UH+B&?eREm?bi$lu!EMsDnHCwBL@ zmz()J`ax$siqkHf=5SQC-{-VDr`$>WJn5VjiQk{M8S9}t8^Jfo-zP2} zVx$A)BaW0tVy#)F1WJ2`fT{KahTcJ(;(Hwub_bJ|P%Uo?j^0oDcByK z^eHiUAL$@J&)P#~_!Nkl%>=QMM?+vOhkPF)gu+KDaYrGol*N!g^sTgjwUMTp2`C;^9}uhzLJf z_HeG>BNgH(tQXEojEPf(ZQ6GEIkF4jnJnC{_LKL+{6|QC!YKtr8OekiiTBZvQUe08 zP_*Ewy`mdpm3Um<=2{+A7${1^Bil;B0CUjzrnCvDK1mcgAT zfuGr*KxTCp_}q!NZDhW{GB1YD5 zg5nHBN)wO-AfGzIRrmuv3~|KGC=gB)vE2q37bouATZuF8h`nb+$v>RDD^V)A z69r^+#IGKWzUp7CR1LBN({?GB?d}k)=^^E|0}ZA-ZVyL| zX%2hrxr3-N?Hx_#LnQw7jvBKnjT!?QOdjeopwqzajjJ(0^t0_@pk%n3Oj3<0@D0){ zT;kO$^{8H@FVw5`m|mmT>WlQn`VxJqzD!@PpQx|UPts4;ZJp~Y^;P<6eT{yKzE)qS zpQ@jxpRTXh&(P1*H|S^SXY1$a=jt2v^Yrue3-k;1i}Z{2P5LGJrKG8TxqgLyrM_9; zqHoo==~wAj>(}Vl>euPl>o@4z^&9n@^qcit^jr1Y^xO42^gH#t^t<(Y^n3OD^!xP( z^au5a^oR9F^hfm_`eXXz`V;z-`cwMT`ZM~o`g8hD{dxTb{YCvH{bl_X{Z;)neV6{a z{)Yah{+9l>{*L~x{+_;D*rdO&f1rP;f24n`f1-b?f2Mz~f1!V=f2Hr$zt+Feztz9f z_v!of@AV(_AN8N~pY>n#U-jSg-}OKAKlKBKU=V{E%n%Jw{d#i>!YQBAzMS^s^cYT$ z<@7jC`*S*g(*jNhayp1pINuE6bSS6Ca|&xPoYN7Uj^uO{r=vLq9d|6J<2W79=>$#- zIi1MqBu*!DI)&4zoKE9(I;S%@oyqAePG@sk#OVo~hB=+XX)&iIoJKgEYlDVb%IQ2# z%Q&6S=>ks6IfccoD_zMc6t`W?=^9Q?;dCvh>o`4?)6+OTozwN4p26vvoNnOsEKbkn^c+sl<#Z#b z=W%*Irx$Q~A*UB{dNHS)IK70^OF6xa)5|%%g3~KG-OTA0PPcNpjnk_*y&C9?Uc>3N zoL2^+Ubo!Rce1KF;YAoPy+giqoe#eTLI#IeiXtys@-W2y>G|ot%nL;E!*T zdM)ME3Z0`?XNYK+2fngmc#%{HVq>G=FU078A>c9lhe|aF(CKO5yC882A04t z?AY~9yNlN;Y>t@Pz2)Tjb zR~=$i3V;B-ylXG$ap1EWh|>m0IB6yVo#@Y^Zz zx|+_jpiWt6QdP(;dRAl|nX&-m>b`2H^Xz!lhY+69xX^(;lv{{O{uZe_6cQE?0_&HNsk6c!;%3Wi(!VPW`B1jIsI;N+zr$ zjC)0`%!4q&A&$4v%b5f`UvUULrz<)0KCr@cdjvTuM#}w%Md+d+>sm*U{e`*{wc5ei z07Ea`vUGJtOe$p`h6rtj1!_XhTLj|zj+goj(@H(6q`rU+ZnYlhguX;dLatrjQJzAb zppZd%#Q7eVrnymT_#x=SQ-tatJ-moIRDb{1lbR9ZZ5qN|=Vb<+yX6*H-BWa%!>K(0 z{T56F#S^d)$49)@L)Va-klQtsnhVl3(GDNdbiN3X#%hAi8_h1sFiyVjdB!V z07Ed7B}wqtSO}-}I2e*xYH^bSU_)uk+@XHZCi z>_C=s(u5;k$CUmKQT-8CeET7|S32o-C^Jersh2Ku&C8kow=SrL%plX%*-~H03|A-D z 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 IOS|fS05O&DV*mgE delta 27626 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 diff --git a/hw/xquartz/bundle/Resources/ar.lproj/InfoPlist.strings b/hw/xquartz/bundle/Resources/ar.lproj/InfoPlist.strings index bf2a3336b03849bff088cab0eed3eef135f18981..88e1f04ac78e9f0b14a2b6fa57a4a02ae91d8edd 100644 GIT binary patch delta 96 zcmX@WG=*ux?#KuRLm*UOC}T)vC}JpP$YjW8$OH0?81xtn7<7OvXP`&{LnTl)lOdfU jgP{a0YXFor2eKT2as>=IK-~%qoPHY}* zPCyn&y&IbeSgi}2C6Mn5(#4hlgy}$*D^RT?P^|@Qpx5FVl(J5I5HFfVGcto Skmt#e$B@j%pu}L!zy$!?5EGIB diff --git a/hw/xquartz/bundle/Resources/ar.lproj/Localizable.strings b/hw/xquartz/bundle/Resources/ar.lproj/Localizable.strings index 558170441145a1f16f15be27bf11f2287abc82d0..ff90d591b755ac6381c1484a0d22a672dbb66cd7 100644 GIT binary patch delta 248 zcmbOtd_rV{3$qBDE1NN!I-4b%KAR?k0)sC@B17`zD5l8GYnk^kbGos403{vS3?`Sc zw<36(**N+b>lwHh^cl2(nnD>07*c>5OBhlaih=xGAf3lh3S^ZqWCC#xkguSi2IOl2 zb#O5#F*q}10L79SvVmf04EYR2KstiK5D3vt(_;WZC7`%15Gw&)hGDUcU3$p-&FGC_jGJ^tx2SX}D4nx7@D5l8G8=3bpbE~qMv#GNg0 LprojCompatibleVersion - 84.1 + 98 LprojLocale ar LprojRevisionLevel 1 LprojVersion - 85 + 98 diff --git a/hw/xquartz/bundle/Resources/ar.lproj/main.nib/designable.nib b/hw/xquartz/bundle/Resources/ar.lproj/main.nib/designable.nib index cf595d25e..8bc6b618d 100644 --- a/hw/xquartz/bundle/Resources/ar.lproj/main.nib/designable.nib +++ b/hw/xquartz/bundle/Resources/ar.lproj/main.nib/designable.nib @@ -1,35 +1,21 @@ - + - 1050 - 10A432 - 740 - 1038 - 437.00 + 1040 + 11A194b + 787 + 1079 + 502.00 com.apple.InterfaceBuilder.CocoaPlugin - 740 + 787 - - YES - - - - - YES + + com.apple.InterfaceBuilder.CocoaPlugin - - - YES - - YES - - - YES - - - - YES + + + NSApplication @@ -43,8 +29,7 @@ MainMenu - - YES + X11 @@ -62,8 +47,7 @@ submenuAction: X11 - - YES + حول X11 @@ -103,9 +87,7 @@ submenuAction: خدمات - - YES - + _NSServicesMenu @@ -152,7 +134,7 @@ - إخفاء الآخرين + إخفاء الأخرى h 1572864 2147483647 @@ -189,7 +171,7 @@ - + _NSAppleMenu @@ -204,8 +186,7 @@ submenuAction: التطبيقات - - YES + YES @@ -226,7 +207,7 @@ - + @@ -240,8 +221,7 @@ submenuAction: تحرير - - YES + نسخ @@ -251,12 +231,12 @@ - + - إطار + نافذة 1048576 2147483647 @@ -264,9 +244,8 @@ submenuAction: - إطار - - YES + نافذة + إغلاق @@ -307,7 +286,7 @@ - تدوير عبر إطارات + تدوير عبر النوافذ ` 1048840 2147483647 @@ -316,7 +295,7 @@ - عكس التدوير عبر الإطارات + عكس التدوير عبر النوافذ ~ 1179914 2147483647 @@ -343,24 +322,13 @@ - - - YES - YES - - - 1048576 - 2147483647 - - - - + _NSWindowsMenu - تعليمات + مساعدة 1048576 2147483647 @@ -368,22 +336,21 @@ submenuAction: - تعليمات - - YES + مساعدة + - تعليمات X11 + مساعدة X11 1048576 2147483647 - + - + _NSMainMenu @@ -399,48 +366,43 @@ View - {1.79769e+308, 1.79769e+308} + + {3.4028235e+38, 3.4028235e+38} {320, 240} - + 256 - - YES + 256 {{13, 10}, {458, 292}} - - YES - - - 1 - - - + + + + 256 - - YES - - + + + 256 - {{18, 207}, {402, 23}} - + {{18, 210}, {402, 18}} + YES - + 67239424 - 67125376 - مضاهاة ماوس ثلاثي الأزرار + 67108992 + مصادقة الاتصالات LucidaGrande 13 1044 - + 1210864127 2 - + NSImage NSSwitch @@ -453,30 +415,51 @@ 25 - - + + 256 - {{17, 60}, {385, 31}} - + {{18, 133}, {402, 18}} + YES - + 67239424 - 71319680 - في حالة التمكين، قد تتداخل مكافئات مفاتيح شريط القوائم مع تطبيقات X11 التي تستخدم مفتاح تعديل Meta. + 67108992 + السماح بالاتصالات من عملاء الشبكة + + + 1210864127 + 2 + + + + + 200 + 25 + + + + + 256 + {{17, 162}, {385, 42}} + + YES + + 67239424 + 71303296 + يؤدي بدء تشغيل X11 إلى إنشاء مفاتيح تحكم في وصول Xauthority. في حالة تغيير عنوان IP للنظام، تصبح هذه المفاتيح غير صالحة، مما قد يؤدي إلى الحيلولة دون بدء تشغيل تطبيقات X11. LucidaGrande 11 3100 - - + 6 System controlColor 3 - MC42NjY2NjY2NjY3AA + MC42NjY2NjY2ODY1AA @@ -490,92 +473,344 @@ - - + + 256 - {{17, 163}, {385, 42}} - + {{17, 85}, {385, 42}} + YES - + 67239424 - 71319680 - 2KfYtti62Lcg2YXYuSDYp9mE2KfYs9iq2YXYsdin2LEg2LnZhNmJINmF2YHYqtin2K0g2KfZhNin2K7Y -qtmK2KfYsSDYo9mIINmF2YHYqtin2K0g2KfZhNij2YjYp9mF2LEg2KPYq9mG2KfYoSDYp9mE2YbZgtix -INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF -2YYuCg + 71303296 + في حالة التمكين، يجب أيضًا تمكين مصادقة الاتصالات للتأكد من تأمين النظام. وفي حالة التعطيل، لا يتم السماح بالاتصالات من تطبيقات بعيدة. - - + - - + + 256 - {{18, 92}, {402, 25}} - + {{20, -16}, {404, 14}} + YES - + 67239424 - 67125376 - تمكين مكافئات المفاتيح في X11 - - - 1210864127 - 2 - - - - - 200 - 25 - - - - - 256 - {{17, 121}, {385, 19}} - - YES - - 67239424 - 71319680 - السماح بكتابة تغييرات قائمة الإدخال فوق مخطط مفاتيح X11 الحالي. + 71303296 + يتم تنفيذ هذه الخيارات في المرة التالية لبدء تشغيل X11. - - + - - - 256 - {{18, 142}, {402, 25}} - - YES - - 67239424 - 67125376 - اتباع تصميم لوحة مفاتيح النظام - - - 1210864127 - 2 - - - - - 200 - 25 - - - + {{10, 33}, {438, 246}} - - إدخال + أمان + + + + + + 2 + + + + 256 + + + + 256 + {{17, 212}, {402, 18}} + + YES + + 67239424 + 67108992 + النقر خلال النوافذ غير النشطة + + + 1210864127 + 2 + + + + + 200 + 25 + + + + + 256 + {{19, 175}, {385, 31}} + + YES + + 67239424 + 71303296 + عند تمكينه، سيؤدي النقر على نافذة غير نشطة إلى مرور نقرة الماوس هذه عبر هذه النافذة بالإضافة إلى تنشيطها. + + + + + + + + + 256 + {{17, 151}, {402, 18}} + + YES + + 67239424 + 67108992 + التركيز تبعًا لموضع مؤشر الماوس + + + 1210864127 + 2 + + + + + 200 + 25 + + + + + 256 + {{19, 128}, {385, 17}} + + YES + + 67239424 + 71303296 + يتبع تركيز نافذة X11 موضع المؤشر، ولهذا بعض الآثار السلبية. + + + + + + + + + 256 + {{17, 107}, {402, 18}} + + YES + + 67239424 + 67108992 + التركيز على النوافذ الجديدة + + + 1210864127 + 2 + + + + + 200 + 25 + + + + + 256 + {{19, 73}, {385, 28}} + + YES + + 67239424 + 71303296 + عند تمكينه، سيؤدي إنشاء نافذة X11 جديدة إلى انتقال تطبيق X11.app إلى المقدمة (بدلاً من Finder.app أو Terminal.app وما إلى ذلك) + + + + + + + + {{10, 33}, {438, 246}} + + Windows + + + + + + 2 + + + + 256 + + + + 256 + {{11, 222}, {409, 23}} + + YES + + 67239424 + 67108992 + تمكين المزامنة + + + 1210864127 + 2 + + + + + 200 + 25 + + + + + 256 + {{17, 188}, {385, 28}} + + YES + + 67239424 + 71303296 + يقوم بتمكين عنصر القائمة "نسخ" ويسمح بالمزامنة بين لوحة اللصق في OSX وحافظة X11 وذاكرات التخزين المؤقت الأساسية. + + + + + + + + + 256 + {{-8, 96}, {409, 23}} + + YES + + 67239424 + 67108992 + تحديث الحافظة عند إجراء تغييرات على لوحة اللصق + + + 1210864127 + 2 + + + + + 200 + 25 + + + + + 256 + {{-8, 71}, {409, 23}} + + YES + + 67239424 + 67108992 + تحديث الذاكرة الأساسية (نقر بالزر الأوسط) عند إجراء تغييرات على لوحة اللصق + + + 1210864127 + 2 + + + + + 200 + 25 + + + + + 256 + {{-8, 46}, {409, 23}} + + YES + + 67239424 + 67108992 + تحديث لوحة اللصق على الفور عند تحديد نص جديد + + + 1210864127 + 2 + + + + + 200 + 25 + + + + + 256 + {{-8, 159}, {409, 23}} + + YES + + 67239424 + 67108992 + تحديث لوحة اللصق عند إجراء تغييرات على الحافظة + + + 1210864127 + 2 + + + + + 200 + 25 + + + + + 256 + {{2, 125}, {385, 28}} + + YES + + 67239424 + 71303296 + قم بتعطيل هذا الخيار إذا كنت ترغب في استخدام xclipboard أوklipper أو أية أداة أخرى لإدارة حافظة X11. + + + + + + + + + 256 + {{17, 14}, {370, 28}} + + YES + + 67239424 + 71303296 + نظرًا للقيود الموجودة في بروتوكول X11، قد لا يعمل هذا الخيار دومًا في بعض التطبيقات. + + + + + + + + {{10, 33}, {438, 246}} + + لوحة اللصق @@ -586,23 +821,22 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 256 - - YES + 256 - {{16, 58}, {409, 25}} + {{18, 63}, {402, 18}} YES 67239424 - 67125376 + 67108992 استخدام تأثير تنبيه النظام 1210864127 2 - + @@ -613,15 +847,14 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 256 - {{22, 26}, {385, 31}} + {{17, 29}, {385, 28}} YES 67239424 - 71319680 + 71303296 تستخدم إشارات X11 الصوتية تنبيه النظام القياسي، كما هو محدد في لوحة تفضيلات النظام لمؤثرات الصوت. - @@ -630,22 +863,24 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 256 - {{238, 202}, {128, 26}} + {{253, 202}, {128, 26}} YES -2076049856 - 67126400 + 67110016 - 109199615 + 111821055 1 LucidaGrande 13 16 - + + + @@ -669,8 +904,7 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF OtherViews - - YES + @@ -708,8 +942,7 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 24 - - + 3 YES @@ -720,15 +953,14 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 256 - {{369, 205}, {55, 20}} + {{383, 205}, {55, 20}} YES 67239424 - 71303168 - 2KfZhNij2YTZiNin2YY6Cg + 4194432 + الألوان: - @@ -737,15 +969,14 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 256 - {{15, 178}, {392, 19}} + {{10, 183}, {392, 14}} YES 67239424 - 71319680 + 71303296 يتم تنفيذ هذا الخيار في المرة التالية لبدء تشغيل X11. - @@ -754,18 +985,18 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 256 - {{16, 149}, {409, 23}} + {{11, 149}, {409, 23}} YES 67239424 - 67125376 + 67108992 وضع ملء الشاشة 1210864127 2 - + @@ -776,18 +1007,18 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 256 - {{22, 84}, {384, 25}} + {{-8, 83}, {409, 23}} YES 67239424 - 67125376 - إظهار تلقائي لشريط القوائم في وضع ملء الشاشة + 67108992 + إظهار تلقائي لشريط القائمة في وضع ملء الشاشة 1210864127 2 - + @@ -798,51 +1029,49 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 256 - {{22, 113}, {385, 31}} + {{17, 112}, {385, 31}} YES 67239424 - 71319680 - تمكين إطار X11 الجذري. استخدم ضغط مفاتيح الأوامر-الاختيار-A لدخول ومغادرة وضع ملء الشاشة. + 71303296 + تمكين نافذة X11 الجذري. استخدم ضغط مفاتيح الأوامر-الاختيار-A لدخول ومغادرة وضع ملء الشاشة. - - + {{10, 33}, {438, 246}} الإخراج - + - 2 + 1 - - + + 256 - - YES - - + + + 256 - {{18, 221}, {409, 25}} - + {{18, 210}, {402, 18}} + YES - + 67239424 - 67125376 - تمكين المزامنة + 67108992 + مضاهاة ماوس ثلاثي الأزرار - + 1210864127 2 - + @@ -850,405 +1079,163 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 25 - - + + 256 - {{24, 184}, {385, 32}} - + {{17, 60}, {385, 31}} + YES - + 67239424 - 71319680 - يقوم بتمكين عنصر القائمة "نسخ" ويسمح بالمزامنة بين لوحة اللصق في OSX وحافظة X11 وذاكرات التخزين المؤقت الأساسية. + 71303296 + في حالة التمكين، قد تتداخل مكافئات مفاتيح شريط القائمة مع تطبيقات X11 التي تستخدم مفتاح تعديل Meta. - + - - + + 256 - {{14, 93}, {394, 26}} - + {{17, 162}, {385, 42}} + YES - + 67239424 - 67125376 - تحديث الحافظة عند إجراء تغييرات على لوحة اللصق - - - 1210864127 - 2 - - - - - 200 - 25 - - - - - 256 - {{14, 71}, {394, 23}} - - YES - - 67239424 - 67125376 - تحديث الذاكرة الأساسية (نقر بالزر الأوسط) عند إجراء تغييرات على لوحة اللصق - - - 1210864127 - 2 - - - - - 200 - 25 - - - - - 256 - {{14, 45}, {394, 25}} - - YES - - 67239424 - 67125376 - تحديث لوحة اللصق على الفور عند تحديد نص جديد - - - 1210864127 - 2 - - - - - 200 - 25 - - - - - 256 - {{-1, 157}, {409, 25}} - - YES - - 67239424 - 67125376 - تحديث لوحة اللصق عند إجراء تغييرات على الحافظة - - - 1210864127 - 2 - - - - - 200 - 25 - - - - - 256 - {{6, 122}, {385, 31}} - - YES - - 67239424 - 71319680 - قم بتعطيل هذا الخيار إذا كنت ترغب في استخدام xclipboard أوklipper أو أية أداة أخرى لإدارة حافظة X11. + 71303296 + 2KfYtti62Lcg2YXYuSDYp9mE2KfYs9iq2YXYsdin2LEg2LnZhNmJINmF2YHYqtin2K0g2KfZhNin2K7Y +qtmK2KfYsSDYo9mIINmF2YHYqtin2K0g2KfZhNij2YjYp9mF2LEg2KPYq9mG2KfYoSDYp9mE2YbZgtix +INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF +2YYuCg - + - - + + 256 - {{-5, 14}, {396, 28}} - + {{18, 97}, {402, 18}} + YES - + 67239424 - 71319680 - نظرًا للقيود الموجودة في بروتوكول X11، قد لا يعمل هذا الخيار دومًا في بعض التطبيقات. + 67108992 + تمكين مكافئات المفاتيح في X11 + + + 1210864127 + 2 + + + + + 200 + 25 + + + + + 256 + {{17, 126}, {385, 14}} + + YES + + 67239424 + 71303296 + السماح بكتابة تغييرات قائمة الإدخال فوق مخطط مفاتيح X11 الحالي. - + - + + + 256 + {{18, 146}, {402, 18}} + + YES + + 67239424 + 67108992 + اتباع تصميم لوحة مفاتيح النظام + + + 1210864127 + 2 + + + + + 200 + 25 + + + + + 256 + {{17, -1}, {385, 31}} + + YES + + 67239424 + 71303296 + عند التمكين، مفاتيح الخيار إرسال Alt_L و Alt_R X11 علامات المفتاح بدلًا من Mode_switch. + + + + + + + + + 256 + {{18, 36}, {402, 18}} + + YES + + 67239424 + 67108992 + مفاتيح الخيار إرسال Alt_L و Alt_R + + + 1210864127 + 2 + + + + + 200 + 25 + + + {{10, 33}, {438, 246}} + - لوحة اللصق + إدخال - - - 2 - - - - 256 - - YES - - - 256 - {{15, 209}, {402, 23}} - - YES - - 67239424 - 67125376 - النقر خلال الإطارات غير النشطة - - - 1210864127 - 2 - - - - - 200 - 25 - - - - - 256 - {{20, 175}, {385, 31}} - - YES - - 67239424 - 71319680 - عند تمكينه، سيؤدي النقر على إطار غير نشط إلى مرور نقرة الماوس هذه عبر هذا الإطار بالإضافة إلى تنشيطه. - - - - - - - - - 256 - {{15, 146}, {402, 23}} - - YES - - 67239424 - 67125376 - التركيز تبعًا لموضع مؤشر الماوس - - - 1210864127 - 2 - - - - - 200 - 25 - - - - - 256 - {{20, 127}, {385, 17}} - - YES - - 67239424 - 71319680 - يتبع تركيز إطار X11 موضع المؤشر. ولهذا بعض الآثار السلبية. - - - - - - - - - 256 - {{15, 99}, {402, 23}} - - YES - - 67239424 - 67125376 - التركيز على الإطارات الجديدة - - - 1210864127 - 2 - - - - - 200 - 25 - - - - - 256 - {{20, 65}, {385, 31}} - - YES - - 67239424 - 71319680 - عند تمكينه، سيؤدي إنشاء إطار X11 جديد إلى انتقال تطبيق X11.app إلى المقدمة (بدلاً من Finder.app أو Terminal.app وما إلى ذلك) - - - - - - - - {{10, 33}, {438, 246}} - - Windows - - - - - - - 256 - - YES - - - 256 - {{18, 207}, {402, 21}} - - YES - - 67239424 - 67125376 - مصادقة الاتصالات - - - 1210864127 - 2 - - - - - 200 - 25 - - - - - 256 - {{18, 128}, {402, 23}} - - YES - - 67239424 - 67125376 - السماح بالاتصالات من عملاء الشبكة - - - 1210864127 - 2 - - - - - 200 - 25 - - - - - 256 - {{18, 162}, {385, 42}} - - YES - - 67239424 - 71319680 - يؤدي بدء تشغيل X11 إلى إنشاء مفاتيح تحكم في وصول Xauthority. في حالة تغيير عنوان IP للنظام، تصبح هذه المفاتيح غير صالحة، مما قد يؤدي إلى الحيلولة دون بدء تشغيل تطبيقات X11. - - - - - - - - - - 256 - {{18, 85}, {385, 42}} - - YES - - 67239424 - 71319680 - في حالة التمكين، يجب أيضًا تمكين مصادقة الاتصالات للتأكد من تأمين النظام. وفي حالة التعطيل، لا يتم السماح بالاتصالات من تطبيقات بعيدة. - - - - - - - - - - 256 - {{20, -16}, {404, 14}} - - YES - - 67239424 - 71303168 - يتم تنفيذ هذه الخيارات في المرة التالية لبدء تشغيل X11. - - - - - - - - - {{10, 33}, {438, 246}} - - تأمين - - - - + 0 YES YES - - YES + - + - + {484, 308} - {{0, 0}, {1280, 938}} {320, 262} - {1.79769e+308, 1.79769e+308} + {3.4028235e+38, 3.4028235e+38} x11_prefs @@ -1261,22 +1248,23 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF View - {1.79769e+308, 1.79769e+308} + + {3.4028235e+38, 3.4028235e+38} {320, 240} 256 - - YES + - 265 - {{18, 191}, {100, 32}} + 268 + {{14, 191}, {100, 32}} + YES 67239424 - 137887744 + 137887872 تكرار @@ -1297,13 +1285,14 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF - 265 - {{18, 159}, {100, 32}} + 268 + {{14, 159}, {100, 32}} + YES 67239424 - 137887744 + 137887872 إزالة @@ -1321,24 +1310,24 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 274 - - YES + 2304 - - YES + 256 {301, 198} + YES 256 {301, 17} + @@ -1346,9 +1335,9 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 256 {{302, 0}, {16, 17}} + - - YES + 71 10 @@ -1376,14 +1365,13 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 338820672 - 67126400 + 67110016 Text Cell LucidaGrande 12 16 - YES @@ -1398,7 +1386,6 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF YES YES - 99 @@ -1417,10 +1404,9 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 338820672 - 67126400 + 67110016 Text Cell - @@ -1429,7 +1415,6 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF YES YES - 121.73100280761719 @@ -1445,10 +1430,9 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 338820672 - 67126400 + 67110016 Text Cell - @@ -1457,12 +1441,11 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF YES YES - - + 3 2 - + 6 System @@ -1482,9 +1465,10 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF YES 0 - + {{1, 17}, {301, 198}} + @@ -1495,6 +1479,7 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 256 {{302, 17}, {15, 198}} + _doScroller: 0.99492377042770386 @@ -1504,6 +1489,7 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 256 {{1, 215}, {301, 15}} + 1 _doScroller: @@ -1512,21 +1498,22 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 2304 - - YES + - + {{1, 0}, {301, 17}} + 4 - - {{122, 20}, {318, 231}} + + {{116, 20}, {318, 231}} + 50 @@ -1538,13 +1525,14 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF - 265 - {{18, 223}, {100, 32}} + 268 + {{14, 223}, {100, 32}} + YES -2080244224 - 137887744 + 137887872 إضافة عنصر @@ -1559,19 +1547,19 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 25 - + {454, 271} + {{0, 0}, {1280, 938}} {320, 262} - {1.79769e+308, 1.79769e+308} + {3.4028235e+38, 3.4028235e+38} x11_apps قائمة - - YES + YES @@ -1594,8 +1582,7 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF submenuAction: التطبيقات - - YES + YES @@ -1616,16 +1603,15 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF - + - + - + - - YES + copy: @@ -1986,14 +1972,6 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 549 - - - window_separator - - - - 300331 - menu @@ -2178,13 +2156,28 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 300475 - + + + prefs_changed: + + + + 300480 + + + + option_sends_alt + + + + 300481 + + - - YES + 0 - + @@ -2209,41 +2202,37 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 29 - - YES + - + MainMenu 19 - - YES + - + 24 - - YES + - - + @@ -2289,17 +2278,15 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 56 - - YES + - + 57 - - YES + @@ -2312,7 +2299,7 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF - + @@ -2328,10 +2315,9 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 131 - - YES + - + @@ -2387,19 +2373,17 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 163 - - YES + - + 169 - - YES + - + @@ -2410,20 +2394,18 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 269 - - YES + - + 270 - - YES + - + @@ -2439,19 +2421,17 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 419 - - YES + - + 420 - - YES + - + @@ -2468,126 +2448,115 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 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 + @@ -2596,169 +2565,152 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF - + 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 @@ -2770,20 +2722,18 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 526 - - YES + - + 527 - - YES + - + @@ -2839,10 +2789,9 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 100382 - - YES + - + @@ -2893,13 +2842,12 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 380 - - YES + - + @@ -2925,13 +2873,12 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 295 - - YES + - + @@ -2952,21 +2899,19 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 296 - - YES + + - - + 535 - - YES + - + @@ -2977,10 +2922,9 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 298 - - YES + - + @@ -2991,10 +2935,9 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 297 - - YES + - + @@ -3005,10 +2948,9 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 310 - - YES + - + @@ -3019,10 +2961,9 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 292 - - YES + - + @@ -3033,10 +2974,9 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 293 - - YES + - + @@ -3044,50 +2984,41 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF - - 300330 - - - 300337 - - YES + - + 300338 - - YES + - + 300358 - - YES + - + 300359 - - YES + - + @@ -3103,10 +3034,9 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 300362 - - YES + - + @@ -3117,10 +3047,9 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 300364 - - YES + - + @@ -3131,10 +3060,9 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 300368 - - YES + - + @@ -3145,10 +3073,9 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 300370 - - YES + - + @@ -3159,17 +3086,15 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 300421 - - YES + - + 300422 - - YES + @@ -3178,25 +3103,23 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF - + 300423 - - YES + - + 300424 - - YES + - + @@ -3212,10 +3135,9 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 300447 - - YES + - + @@ -3226,10 +3148,9 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 300451 - - YES + - + @@ -3240,10 +3161,9 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 300453 - - YES + - + @@ -3254,10 +3174,9 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 300455 - - YES + - + @@ -3268,10 +3187,9 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 300457 - - YES + - + @@ -3282,10 +3200,9 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 300459 - - YES + - + @@ -3296,10 +3213,9 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF 300472 - - YES + - + @@ -3307,612 +3223,337 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF - - - - YES - - YES - -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.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.IBPluginDependency - 244.IBViewEditorWindowController.showingLayoutRectangles - 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.IBPluginDependency - 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 - 300330.IBPluginDependency - 300330.ImportedFromIB2 - 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.IBEditorWindowLastContentRect - 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 - - {{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, 858}, {315, 153}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{271, 666}, {301, 153}} - {{537, 464}, {484, 308}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{537, 464}, {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 - - {{339, 212}, {454, 271}} - com.apple.InterfaceBuilder.CocoaPlugin - - - {{339, 212}, {454, 271}} - - {{433, 406}, {486, 327}} - - - {3.40282e+38, 3.40282e+38} - {320, 240} - com.apple.InterfaceBuilder.CocoaPlugin - - {{145, 1011}, {274, 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 - - {{787, 632}, {152, 83}} - 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 - + + 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 + IBBuiltInLabel-Red + 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}} + {{631, 535}, {484, 308}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{631, 535}, {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 + + {{209, 293}, {454, 271}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{209, 293}, {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 + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + 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 - - + - 300475 + 300481 - - YES + FirstResponder NSObject @@ -3937,19 +3578,21 @@ INmE2KrZhti02YrYtyDYstixINin2YTZhdin2YjYsyDYp9mE2KPZiNiz2Lcg2KPZiCDYp9mE2KPZitmF - + 0 + IBCocoaFramework com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - + YES ../X11.xcodeproj 3 + + {9, 8} + {7, 2} + {15, 15} + diff --git a/hw/xquartz/bundle/Resources/ar.lproj/main.nib/keyedobjects.nib b/hw/xquartz/bundle/Resources/ar.lproj/main.nib/keyedobjects.nib index 08c879639611c4553dafecbff5af1520327acb0d..f86a5b9f2c648bf19583fe6c8d032289773a37c4 100644 GIT binary patch literal 53979 zcmeFa1z;7&w?96zcP01k-Mukf1BFm530@>X@Zzp%NG=daazg|u(jA<7X(@FD@BQBQ`+rTjvO7C7=QC%{oH=vOxwFeliYu!+cYc*n z!U!h{@eth}WsjcFswz}IrB!J5{9s{K<&;*7f)$m;p|Yv13MvZc6~nieh)T4X!v=J8 zixd@96*%;k0KbhGB#Cq)Iix%3OZt-mWH1>{&L@|WE6A1PDzcqiPi`Z(lY7V>@+^6g zyhL6m`^W+E26>x&NldsA5lu&~vQ9ljPWLl3lrcG#T+L>n2Y}%a;rlaU+I)zT9 z(`b;E(}lExE~cl_Wpo`qhn`E%qnFWZ>2>sadON*?K1d&;&(N3YEA&;mj~=4$(hupU z^n3aT{gWjzFY_^*rLrchDQm{su@hN)mc@FrL2NJ^!p5+%Y#f`;X0W-eoGoM(Y#Ce5 zR`$)q6rRc(@)o>1@4HIu?IlqE$y-4*hsWnJJ$_G$r;(?zr=90SPkT?6r>CcvXQ*eGXSipyXR>FO zC*M=*Df5IpRi5RZ6`nIZXL`=^Z1P;o?AWldhYW)<$2okjOPWIpXH@VyU8q*5 z)#?g$rMh0-pq{Iqr(U97s%}%atGBCnsJqk$)F;#@)u+^F)II9U>Kp2N>Zj^w>JjyO z^>_6TP1AJE)&g2Xt&!GPYofK#GPU+vSFMlMR~w=Y)y8OJwQ1UPtxzk{O0_aAq?K!n zwNo`mJ3~8PyFlBjZPRYlc4~KNcWV!64{OhBFKDl6`?U|XkF+nfue9H_KXg^s^fWzP zZ>l%b+v=HmmY%Jjr1#eQ=zaA;`cQqmK3$)o&({~|m3o!FLSLz`)7R_g>gVYf>zC-; z^zHgi{U-fx{T}^Z{XTuS{+Rx_{>F?8C{I7Mla(eBiHC} z3^s-sBaD-cvBo%KvN6S&Y0NRojF7S1SYfO(RvYV#^~RaTX5&I*o3Y)v*0|2N$++3L z!+5}W(AZ-L>XOtmsc+K2q@hXgC4HOpUDA=HACrDc`q@joy4UA5y|%ZJx3Ra0x4E~S z_e5_eZ)b0ow+k`6UA^7B-Mu}$J-xlXeZ2j=2YgkgW!h%IOg2-@R5Q&?H|v@8%?4&e zvys`@Y+^Pwo0-kc7G_H`!)#@?Hcv3ym~G8Wvz>XO+1~76b~HPgoy{yW+srY$m|e|o zW_PoP+0*Q0o@Dkm`)QrQtMP}nYG+nVXd@Ivm8rUtE|=5 z8f&e!&RTD6ur^w!TW45jT4z~jTjyBkTIX4ttn;l4tj*Si))wm`>tgE?>r(47>vHP~ z>q_e?>uPJOwawaY?Xa$~uC=bSuD5QmZnSnrVwBEAbw%)N0T8FH6t@o_=tq-gZt&gmat;5zQ)~D8I*5}q2 z)|b{-*4NfI*0j&#c>nH1H>lf=+>o@Cn>ksQso7mK5Hn$bqW2?4i>$YJh z*Q+uI%Nj&>)zvz=vU+c|a@yQ|&J?r!(6d)mG1lkDDhAG@#J&(5{`+XL)@ zcAh=R9&8V>huR}1wkoSGDLH5-6EE=*llX~6Y!V>JB!#4sG?Gs0k@}WJaL*bwezdDPxTR-?TZn!O z7Y3E067CHSl~s)_C@Yv7te7-v{J2o4YAQSsTv7$?<=ghC@so<72PMJD#brgI#rQ;=JZ5v;3V z-5tXr4ofD==EodOuynk~_6qi*EOaZpz6_9eCRrpKV3c(su8zmyFOx2Ct1IaSgmtW} zswgg-3;ph24*FMNK^4H@C@+&9q$lY`PMYF&C|Eho{ZIyVY$GR;-lUK0=DoGWo zCX2{ovV<%pr;=r4IaxtglGBJo1X)E^lQm>5Sx45B4P+xZot#0=BxjMc$vNa)a-Ngq zSWX*fg>#y7xAVC3q;tr5&-uXl$oazg&iPqTBB&~;PtasR>kHac(Ax#QQ_#Bwy;sot z1${u!hXma%=%a!@F6fhjJ}v08f<7FV^V2WVCQo3MCg82k91@jAL31$lx5G+}+6v0vjOLJPi zN-iLqVPGyKTgXM^V$vG;B`;W6Ra_?dW%8);Cl|~Pmf-k@sw)bEj@L0Azr!Ldcsa10 zZ|0P&ESPFl6`_)nV8xW8U`cRpK~>Nl+pEdeZDcFihHRAz^R0OH=<2GHU{!P?1Mk4a z=+{_}c93hZM~>~BfK9$iZXh>8S9g+|$j#&yaw~LhLNQbYlNl!fOooxcvg%<~!O}`6 z;G{aOo#dc8Ky9O*pbk?gRgMpq7gQ90NOSDu)BgPP&t#CZ z1p1$5z)J(Ckul~K@*MQ6GkKo8K=uM&j;ML zNEBTR4+4holK05_kOP|&-B zqCQ*>V!K(D?$hq0y9G^Z9s0Jjhswp8Q{@w%E*G^ zGJI45Lz|LKJ7_c7oVK7XX@+y6Gt!yh%y6n=ASH|;G}DH*rJ1x{gi_kcX&VPpN2h&+ zTBpN!kO4=HP;|o5cC-uhs~eO*8T!@9?M@G}X(#PTd(o3|{G#oo-HVr;n5C^mp={!Ol=;nA2*%91fhYaxkEKL+P+c2c3?xdrnrQUvt$C>QFTg z6q6~iUS=ILmhkvkI*yJfkJE`b)58_GGcX5g>4Fn*K8$65*dq=HmTaT8BOUQ?Z2Ji3 zCrA&daR!}v6l=NNI%Zx+DoBJqlg_2{Xfd51p^AnQy4BO^9wE=^5tJL)LD;QY(VtJN z0R2Vq*hzqXFBknKWYbknD-aj?xX4y4DhB-vStZh^qlsEUR~{cxHDSDgZltFJ#%CsA zTpy%dUm&F)VjQwp3sUHQ z`Z_%jTR`Z+1mQC}ZnYS76zj(=4fF%KG>mbX{v%i#=*RT1Gu9awlX{7)et>>Xzc>n# z(Q#5QZe2bWk^}Td`V;**GDc4PgX1G3G%vO^xS}L7Hb)`AC}WJX=t9Gc1Oz5K6C*V` zlY&rZ2jHCH>d{g-3bis?+KiI-u2bR*%&ukF$nyXeY-3 zFb!Irjze1r1Dm6E99vjh|68z@EQ7U*pusW|`k(L2jP`$45bA0Jv#PV2dDLJ=R}t2V zbp#qZ!(){|#VIZo*<{moEQfVrU0FBQo%LWnSudx+DRSmI#m;=E)G2os)&yDF zT%d4(q%c2@!r9QTLZmPV%-c%}{Q+YaAB$238^(sS5m3j-W9kS(9dq0|+JPE?=EbbB zr8U(tflXwSA{aUG{g@ZQX90}vK&c63kxuYATwetD1O^7gXR-XF7&yMxx)>N9E@t!D z0wAe0ktC`+3!pnCNK(iSKqorE$_hk*i0KJki-?-Ra8(ZE*i&jEwu)7=MNs>agxZs7 zl2Zn?huqrhL5%~|oUriv>y}p52E=L1`R72K&dy+G);KN|k#PyxX}}>JKs88^wb1d_ zz%|3d1Z2Qs)lE) zO=Q|%1XE@kJk;7*;!cWwy+!6jcjM6ZD(=Zq&PLw?)>;xBTL|PATFY9 zPAE;#RzGHUgSNT_WbR7PR=u+d%F8SBD>0L)J}CtAVAnP@SWpC(qvGIV_>u=FQSOd7-_AgN0d{$KE3cwp?p&xTZVx@a zYH3MO?#s~D1iP;CP#IJN+tqQQ#Y2O|bLUk_GuOaSNp)#i|7zF>1}lqCg-Ya;ux%Pt zCO47rX~LqxB?WWAiqsgo5N^ut25vqFhbmxOT2KO2kFPFAr7pNQ->!cwosm|X)l$o- zP?@XvbBn5WG@;|)i-XhMO&K=GM zXO(lSbEdP}xiUb>o9qi?`&)`-XkX_5qu`!oFii;BOZU`!4n~`-T0=eq)~i zZLl3hh|so&LjyZ>972G3zz|6ee98+IhOZU6y@kD+Bwes(&PMoioGTs227^oUfC2WG z7S8Hv%W^trwQru)v&V}4oB)Snm)wr*;*8^e9BrP?Kf14w`%0e18*Jz4ydJNQW&ki<$kt$ z`~=>HG~#V}CeMV~`61xZk$2*qc^1!xx%npV%DYJegxj@&CB^08ehnR87&bAD8eb_V z0(5p#c zIU(}jMeq*)1UnH7R?7gy?Dow&uV~+VSynd~)$S|8aQ5UUZRfpQIA?= zK4jB2-k0~|xz1V6HO@}ZKKVdScpe|b2lF9(C?Cd$11clfE|eliT_vW(nwa^)9i$A0!IpTsBgDbUTSd>Wt5XYiSP7SHFW z@B(CJm_m_h1LCJVR8a-(g@*(!{@AP>HIyZh&)LrT&PC3-&Njg_nlIvu0Zd5>_8J8n8rrbe z_!-xVATk>uSrVEnZEzPln{Cy(z}Yfs{L)G=Ku(`07YkYb6~2rwgvyum5whaR^NOp2 z1G0#-#qG~&+}X+<(kIepe1}%?)ozEJOPq_beppA`s-tK}s^5Us59l1N_6&aR4t^#- zi=WNUId;M${&G#idIlEy@M00L{PbA@xc14ka)lT)+g=qt`t>{D}WCpO$y z%HiIck=r&lytW+=)pouk4As@nRW4NNg|1OL)?&hd+<=IU?A)=N`(KZ4T>-rKDp&EF zqv&sQtF*&aM&WnI@D6^~c7Xa$ewRGLI0i(w)II#(t^8in2at(dCTkZ2yZ8hAK`97! z^GEmun5EZdPr)pGhVOB%mvim9__;P0W?7z^A=UOl zYF31uo)3eQga2js?9sIwfb)86+}%-!8MB$cjH3=?{uoR zGIHC+hB2U|)(*izeu%#-A^3oQC?U8hBX{)7^G<>1GjeB@J-r(~00g)EB?O-V1Yhtk z!w}pY4?$2u&<1qrL3LC3Bmb#p3gfxv7yfIQYi@ULL#~-RH=-Yf!Bq%?o7cG`GMr=$ zg)8a~MNvHNdVVfL2@asY+`;johrXQQGpC zm3Gj{_DTn(qtZ#~tYpFU94Uq(ry~U=uzt(czkdnn=5PuXj2x7V3RRRAl*n(e#to>h zstT1!nV&5+_A$YV;!sg>q15RY6_mgviz_1=i4*~ywqR+#oq}q9xRJ;*1?LYBIS&8} z?{e;e6ZrxI$5EAz@ZE*Ps9n?O(e$*hJ%SLSfDye69HN+aVkZ3!0=se z`=i&pz;Q-q__#&sCXZVl#N!rNy~Zytt}2}OvT_n&)?4WVLoErFi_62#?pO&tzEyIS z{#%v)DAj=mmr7aO-3quIHBiahuH-3$l)+LYxusC3)+FTJM}{iHb|}LlObBhd56vuu zCemocXaYuw7>n&TB-8Baova@8!tn41} zx!Z~r2kjK4DY;jfqs#@yoTn56Yi% z{^`6Opy$fn(3<{#Zz9a7E*4Mma)oH3!GVs5a?*&Amdcu^V% z_Mi#Jc`0muP&SiWlr7H7V19U|6qLHbFc-qs{P3*k2}Vm$_XGLmq4J64h(P#!&+X}@ zq}#O7RrB0!XC?L@+z6B_$foVeLggyuYGo?`^s2MpdBbV-X1sAfftqWSYnAI_v?w<# zwv8Q_&VeGe zrIaB3|6VJPDvv3T$F;IYc{ZVyH{)8V@4SW9B0Rqu4u6AdYRMG>dzBZjQC?JD0@?Ah z@=9299D{=s6CogfBkWwaMA@gjc8&5{Os2q;iK}X2QLwx!CQ!)x${SKpG;`jS0tHV# z^W{PZb0~KHNp>iQWI5Y;AInXZI`x_JajmPA4I|zaM!XZOQ<>rU1_y=mnmoyz9+Z}) z{DSJZVenWUTSD=r^KDH~fV}pklP5g&l~hkdDX+f@L-Dn%9H8-|OHWrh=m|9E9H(;N zY2mSe&J0g0pz{Pz8=x~YO6NDum$lGY26MEV+7sxj;mi>DJWS&p@MfzltOy3nqAQc9 zgQugU^oa9QZIpHaO1lB2JtU>yhbjF57;4$F4ltrUa{d9K{X89j(EgqQKxm$45D+>f zO6ZTyky;21+3mru96Q--2h-VgZy7E{RTp{w(>*-UQO6hf-e1KMb;6W>3`}waN+=R5n#ekc!F^P zytWI2iRK8LIm4wvLc-}D{er3*25v!cX%HQODr1n9dln*Of>J>}HGl>(Ev0sEY$@{4^%U!g+Zw*ERVr)w&xrd4oy&R4RA;v+6-`P z0XQy39uicKz+pt;_-8WoD$m&f$5ziafMbW}8i3=v7#vB0YPG`A07%3G9z0M-DT=TR zm8VlD%JuX_Il0_TbT&*uFjLK#Q?MYIKU;25;`m{w=Oz~bQ_w&S0N@VIa|Zx$7XWY% zZp{SsM*y&*JFl#+S^r>iJmlF40POZW0suVb0lm)iWDEdXP_tG5ngL1ZiGAC46U70@z+ymiICBHOOT^WqA#U9VIE-ER4 z)~gMbmjIPl0F`|%Dyb1v(qgD|{wE^iEzcf6P}dw|LZF;vn8O{o=?M#rGi z6KIZ{`NeMn5sUWHu?3FlqG*K5^2@+1=4vD{G!A<{anWcXXpo9pNG?k#KXbbM0~Yzka~Qz*&GS2e@uy12%_@t5(OA$1wSv(C20LCtBFP;=TDr%g zt$}s$oDz1(5UW)JPPh5s$O{Wn-1l)HNkiqhtpe?=tf(@-prk5_imIxbi%K&=Z$nfL zg1eAc^{J-nS1r|618TCGqNb{8YPwpFG*auU4LB?YYD2Y=+E{I(HYKgp=4uO2v@_IJ zu!@3k2h|{QJ|z#@(6}x)XYQF58V%tL4)`llDr_SFgFBj>!7da21WK*@i1bE{ev_Wr zu-SI+jf3rAzTHG_^eUu{Vh)&*albRH2sVhtbBco%HMCW*1lxjI;4lMJ7px^(C7M;S z7j7B&GK}rJ&7GQ*9;aPC-u)^ycI- zO9))JRnQDUZ-Mhe*k5;pqmP_!T_jKS=mMWRgT)8E65`$B!roA@OB_>B7A%n)IJG_L zHUT^8DEW5NWjP%|_3e?J(=~Wv4svPy*A;MZmfacj#V(y!xH|QVXt)A#(h9hz3#tok zu%|b=s)F1Js@>r<+cOnZ2&dIs>PfDmq4rk$@blsH?-}`gU-E>S3j^O$9S9EcPpE_0 z8z9Svs>3AQ@}PG@MRgfC$Ont0vojp8rUBsc+&5SRhB)j$juhC;@WcRiKXDf;4M8&{ zasb}7&W-RjPxkNzK?k{=1mE?mJ!4?5wsOCZ2A>tr+3HwzoM(hOL7k{h^1#XutKx}* zW;?$K+D*`2g7$?O2M&*kRy>^l>I@)bmYT1g;?Do}IR6FB610OW0Kh!gO>Q)DdUOSp zvsSD)#;&Org5`FmI!7JLFHwut`2w6fw>swv+7Y?|##=OZB`djT>?(v&M*Xpalz5Si zL{w!`eQBO$~K1VP{wkdE;-+U;stDb7EmU$)x@6ZrD67K5-}p!;(K-_5-w^@co#M6sajkmT+5guMLNO4h9Ffq?*t?1JFDR&^*UQvwIZH z9x*h*$Oi^!iDp)p+R@ysP5?A7QZJ68*%M}1BAWdqRq-nCK%lG*s5!{)?Eq)AnjosU zBZ%KxAuX+e1v_F5aIZf|mI3fS2(EMwk51gmn83#Fgc?pd)`Y+nfWTEss=C!h;H1bJ z-`fQM_XS=4!6L6-uTF$@@kVv0(n-Bpy#*He+hU7+9}qmXF7i#0e7PII%{H151_3BI z_s~q%A*>w75sQ!jd-QfR7M#XySnH1nz7FaN}Bmu%qy52f_*`GpeGI z6(!=U*IJ4)SI8wY1p3wvl$;*1q;v(2ck3vC2(l^|un?(`gSQk!8j1mIHMU|#MF?C) zHbf^$*gr$a+Zec#2Y=ytB3DzKTW#gudkA>M4uKL8Ho_U`8X+P_OK9NB!`UaF9E6Mq z<=yo-Mt_7xw=B?){g*Qq-8gY4UjstWR$Tl|6tSbll^oljU~GSZvHi^*+mX?+9TlC+ zJ-SBabsejp#?*uS63wHj(V-m;OqDpa>y7~!2}_*Q!(r3a76{7#z`BKJT(ksS{|nnF zl)zzW2hR_bQbW#G`5na`LWXUIhfNOp&{}%c6JSKhQBeZf0I$Qbui+ZvR~@Vohu9rd zSAs;^O&AIouAWc}Y$%UeJ#aWQFL^>U)qKrzhhuDXIAEUz;sW*T4q4&l1N8Yi)=w=> zJp|)XUxN*4SVbIi2TKi3YpONhsx^x^Ttw7(*rCPg@2~NY)-omnwN{>~+6juK9)NvT zY-=V3;1nqX=b~8#WFQ=*Y3)e2vDx8MDXjz9bd6$Yojg0WEYBV-$GJz)X<%3pbQTyA z1f6}XR0M;M)&qvB7YtQz*R(M`I#e@UsR$9V$ayd6;@Q2~@5`cO6^eNg#>Lv6SckuW%*L!}}pmBi@a z##F)xTSVN(Bj4RNV{N#0$JWyL)<2<*sM3i>xnm~)q6(+C+DJfkw2Nwf6xCB=sAl(w z3MBOFt7VU*P1Ldg)hQZmGsCDBz>p@Q+FMQln3RA-yrnD-v*>ygvzNIOK-$c31mIbe z%7_OF37q112#KXyf&w1%G0%Z37#CT?Ceqp*S!M^R*)WJOfNJJZI|)g`H9*33!0}*nf&Rn) z3!^-bRy7zRFo|UKh|Tx9nEqC6H8A}h8pP^{=X)ifnaK3zF#86;Y{f;qZ9;ERyXzX= z2*+&|NlUl`@luc>1Lyg0_&g}?d?k)TS*NRF#CBFF1@fR~++51#6S5$T2bqF(p`O_v z_F2gC5v_J8N)f;?vT4QV(OQxXEyqx81yn?~DH+fsG$7O@S0u{!0m{38Q67w-TpeMQ zMN+Wfd1%kDQt`L=vRVEw z#O@Qo?lZvdiwJfrBG|2rVi&P#{4MN`XzKvGAG99f#-zo z)7C5Pb-!*Yo%Dd7Om5awV*soM`Clsli4&+c09?Dt@vuU|6s!q^1^_}MHD7NM0bwnI zAg$NyBp2W*cXmwQtwU1l8QKPZiGG6KCMv1d!$OxRsf$3uMWl3iBL<@s(Xp_*@unVE z^BM?aiBb_Yxn6P;8QHKzEY7eNfvjBurkWB^7Rn*lObAqo3Q#L>!#PxDn!)SkQlW6K zxm!`3TNxm++{5H>yf<8P&4{4mNliCSibXa(HG$b4!0ZTMc8-9#F$(7C5=^=7$#a{W z?s&FRyRN5q(>4N_J#{#F2rqkQpvsW2&zk_i^nfl#j(*VrWjIU;WPgMbRonLXT@vAf z2C<=Vr5*em2>+sn7rEtd%@mP6v2-SYnra>#G*k=Ia!EZ(Nz-#ZQ}qGLgg1dT3!rO}ZsUA! z4LehuP14{H)rxS)(RPPcG@OaGkP{{jncLNfaDNOIK)D5g!$bH6x*M=LGQP`W<;;`4$$&n(_Q_sH$s9SX7eJ3LgdSbw z_UMXekFJbPx-8c#E~h8T^4gDP^egmH(4(vMt z|Djo_CTgz*YOe=sZ*-~M8l`rdOD*mz+(?MOI;7BV)8VXDzf->}O6_)(3JKIsLt3Ld zpPDwxNO616?IG8LG&;s6D{_78Nbu-$7}V`>2bD!!t91MkUqL-j!DZ>hp=^Hi!fgb&cpUci`iWuW*_v735(h5q?o-Py}sP7u>J^$*(^uF zEDYfTHfh$=pU|J$u0QFXe#DL{VxOih>k@HNkdg)#J~x1~OBeXqqdP2u5nls1Zum>T zgsDrivhvHpW53dE{sn#SR(&seMnf*Gu;)jxw7diy2&T(o`Q_;U5cOWs*6Xjh-Yc*T zzXQEjAbz`YX<1=D1Xh&K4i!`suZZX*Q-{Ur5$$~Z1sjbmJbPI!Z;J*0Y#0q0~qJ4|@Mq8_Y<~|8VginNiN}`4o?EAX<30!S`$6})`tEaX$^7Ed(qK_B;8zm&)CT=W_bISkJd96Glh0Ja zA$(S>?v48IZmA7|K9X1}J6ekNH8_@X;CxetM#0>z3eBAharrT~;KZmEeYjz`6~js{ z<6EYK*IIt%(#qMvU<`WN)39XCpn*Mw&Cfz+DVQCqu1c(rY%$V|bjVHO74#WF_c#l| z*Jw6oXhg{7RDfRzWM+ck9;2brXq(ZQt%-Pdz$r%f|dXyCb zYxYN4q(e{Kqg#v<;ZaGeO@nwW=rOQDLa9Dbsy~)`4NK+0@L@$VFa+}mg|k~$COk6`o*978ypGR6#6x;@ z89oIbKMBvk=_e$TyU-X4&?O7{29};W5rdiHs@r0Wg4;QW>|0o%0D_`Izz>UMKtV#m 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 DAA-Mr literal 52847 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¥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 diff --git a/hw/xquartz/bundle/Resources/da.lproj/locversion.plist b/hw/xquartz/bundle/Resources/da.lproj/locversion.plist index 9ca0dff29..c565c6f71 100644 --- a/hw/xquartz/bundle/Resources/da.lproj/locversion.plist +++ b/hw/xquartz/bundle/Resources/da.lproj/locversion.plist @@ -3,12 +3,12 @@ LprojCompatibleVersion - 93 + 97 LprojLocale da LprojRevisionLevel 1 LprojVersion - 93 + 97 diff --git a/hw/xquartz/bundle/Resources/da.lproj/main.nib/designable.nib b/hw/xquartz/bundle/Resources/da.lproj/main.nib/designable.nib index 2810e5269..087c79245 100644 --- a/hw/xquartz/bundle/Resources/da.lproj/main.nib/designable.nib +++ b/hw/xquartz/bundle/Resources/da.lproj/main.nib/designable.nib @@ -1,7 +1,7 @@ - + - 1050 + 1040 11A79a 732 1059 @@ -10,24 +10,12 @@ com.apple.InterfaceBuilder.CocoaPlugin 732

- - YES - - - YES + + com.apple.InterfaceBuilder.CocoaPlugin - - - YES - - YES - - - YES - - - - YES + + + NSApplication @@ -41,8 +29,7 @@ MainMenu - - YES + X11 @@ -60,8 +47,7 @@ submenuAction: X11 - - YES + Om X11 @@ -101,9 +87,7 @@ submenuAction: Tjenester - - YES - + _NSServicesMenu @@ -187,7 +171,7 @@ - + _NSAppleMenu @@ -202,8 +186,7 @@ submenuAction: Programmer - - YES + YES @@ -224,7 +207,7 @@ - + @@ -238,8 +221,7 @@ submenuAction: Rediger - - YES + Kopier @@ -249,7 +231,7 @@ - + @@ -263,8 +245,7 @@ submenuAction: Vindue - - YES + Luk @@ -341,7 +322,7 @@ - + _NSWindowsMenu @@ -356,8 +337,7 @@ submenuAction: Hjælp - - YES + X11-hjælp @@ -367,10 +347,10 @@ - + - + _NSMainMenu
@@ -391,15 +371,13 @@ 256 - - YES + 256 {{13, 10}, {458, 292}} - - YES + 1 @@ -407,8 +385,7 @@ 256 - - YES + 256 @@ -427,7 +404,7 @@ 1211912703 2 - + NSImage NSSwitch @@ -510,7 +487,7 @@ ZW4uCg 1211912703 2 - + @@ -549,7 +526,7 @@ ZW4uCg 1211912703 2 - + @@ -557,7 +534,45 @@ ZW4uCg 25 - + + + 256 + {{36, -1}, {385, 31}} + + YES + + 67239424 + 4194304 + Når det er slået til, sender Alternativtasterne Alt_L og Alt_R X11-nøglesymboler i stedet for Mode_switch. + + + + + + + + + 256 + {{18, 36}, {402, 18}} + + YES + + 67239424 + 0 + Alternativtaster sender Alt_L og Alt_R + + + 1211912703 + 2 + + + + + 200 + 25 + + + {{10, 33}, {438, 246}} @@ -572,8 +587,7 @@ ZW4uCg 256 - - YES + 256 @@ -588,7 +602,7 @@ ZW4uCg 1211912703 2 - + @@ -655,8 +669,7 @@ ZW4uCg OtherViews - - YES + @@ -694,7 +707,7 @@ ZW4uCg 24 - + 3 YES @@ -711,7 +724,7 @@ ZW4uCg 67239424 4194304 - RmFydmVyOgo + Farver: @@ -750,7 +763,7 @@ ZW4uCg 1211912703 2 - + @@ -772,7 +785,7 @@ ZW4uCg 1211912703 2 - + @@ -797,7 +810,7 @@ ZW4uCg - + {{10, 33}, {438, 246}} Resultat @@ -811,8 +824,7 @@ ZW4uCg 256 - - YES + 256 @@ -827,7 +839,7 @@ ZW4uCg 1211912703 2 - + @@ -865,7 +877,7 @@ ZW4uCg 1211912703 2 - + @@ -887,7 +899,7 @@ ZW4uCg 1211912703 2 - + @@ -909,7 +921,7 @@ ZW4uCg 1211912703 2 - + @@ -931,7 +943,7 @@ ZW4uCg 1211912703 2 - + @@ -971,7 +983,7 @@ ZW4uCg - + {{10, 33}, {438, 246}} Opslagstavle @@ -985,8 +997,7 @@ ZW4uCg 256 - - YES + 256 @@ -1001,7 +1012,7 @@ ZW4uCg 1211912703 2 - + @@ -1039,7 +1050,7 @@ ZW4uCg 1211912703 2 - + @@ -1077,7 +1088,7 @@ ZW4uCg 1211912703 2 - + @@ -1101,7 +1112,7 @@ ZW4uCg - + {{10, 33}, {438, 246}} Vinduer @@ -1112,8 +1123,7 @@ ZW4uCg 256 - - YES + 256 @@ -1128,7 +1138,7 @@ ZW4uCg 1211912703 2 - + @@ -1150,7 +1160,7 @@ ZW4uCg 1211912703 2 - + @@ -1209,25 +1219,24 @@ ZW4uCg - + {{10, 33}, {438, 246}} Sikkerhed - + 0 YES YES - - YES + - + -
+ {484, 308}
{{0, 0}, {1440, 878}} @@ -1250,8 +1259,7 @@ ZW4uCg 256 - - YES + 265 @@ -1305,13 +1313,11 @@ ZW4uCg 274 - - YES + 2304 - - YES + 256 @@ -1331,8 +1337,7 @@ ZW4uCg {{302, 0}, {16, 17}} - - YES + 122.73100280761719 62.730998992919922 @@ -1440,7 +1445,7 @@ ZW4uCg YES - + 3 2 @@ -1463,7 +1468,7 @@ ZW4uCg YES 0 - + {{1, 17}, {301, 198}} @@ -1493,10 +1498,9 @@ ZW4uCg 2304 - - YES + - + {{1, 0}, {301, 17}} @@ -1505,7 +1509,7 @@ ZW4uCg 4 - + {{20, 20}, {318, 231}} @@ -1540,7 +1544,7 @@ ZW4uCg 25 - + {454, 271} {{0, 0}, {1440, 878}} @@ -1550,8 +1554,7 @@ ZW4uCg
Menu - - YES + YES @@ -1574,8 +1577,7 @@ ZW4uCg submenuAction: Programmer - - YES + YES @@ -1596,16 +1598,15 @@ ZW4uCg - + - + -
+ - - YES + copy: @@ -2150,13 +2151,28 @@ ZW4uCg 300475 - + + + prefs_changed: + + + + 300480 + + + + option_sends_alt + + + + 300481 + + - - YES + 0 - + @@ -2181,31 +2197,28 @@ ZW4uCg 29 - - YES + - + MainMenu 19 - - YES + - + 24 - - YES + @@ -2214,7 +2227,7 @@ ZW4uCg - + @@ -2260,17 +2273,15 @@ ZW4uCg 56 - - YES + - + 57 - - YES + @@ -2283,7 +2294,7 @@ ZW4uCg - + @@ -2299,10 +2310,9 @@ ZW4uCg 131 - - YES + - + @@ -2358,19 +2368,17 @@ ZW4uCg 163 - - YES + - + 169 - - YES + - + @@ -2381,20 +2389,18 @@ ZW4uCg 269 - - YES + - + 270 - - YES + - + @@ -2410,19 +2416,17 @@ ZW4uCg 419 - - YES + - + 420 - - YES + - + @@ -2439,126 +2443,115 @@ ZW4uCg 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 + @@ -2567,169 +2560,152 @@ ZW4uCg - + 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 @@ -2741,20 +2717,18 @@ ZW4uCg 526 - - YES + - + 527 - - YES + - + @@ -2810,10 +2784,9 @@ ZW4uCg 100382 - - YES + - + @@ -2864,13 +2837,12 @@ ZW4uCg 380 - - YES + - + @@ -2896,13 +2868,12 @@ ZW4uCg 295 - - YES + - + @@ -2923,21 +2894,19 @@ ZW4uCg 296 - - YES + - + 535 - - YES + - + @@ -2948,10 +2917,9 @@ ZW4uCg 298 - - YES + - + @@ -2962,10 +2930,9 @@ ZW4uCg 297 - - YES + - + @@ -2976,10 +2943,9 @@ ZW4uCg 310 - - YES + - + @@ -2990,10 +2956,9 @@ ZW4uCg 292 - - YES + - + @@ -3004,10 +2969,9 @@ ZW4uCg 293 - - YES + - + @@ -3018,42 +2982,38 @@ ZW4uCg 300337 - - YES + - + 300338 - - YES + - + 300358 - - YES + - + 300359 - - YES + - + @@ -3069,10 +3029,9 @@ ZW4uCg 300362 - - YES + - + @@ -3083,10 +3042,9 @@ ZW4uCg 300364 - - YES + - + @@ -3097,10 +3055,9 @@ ZW4uCg 300368 - - YES + - + @@ -3111,10 +3068,9 @@ ZW4uCg 300370 - - YES + - + @@ -3125,17 +3081,15 @@ ZW4uCg 300421 - - YES + - + 300422 - - YES + @@ -3144,25 +3098,23 @@ ZW4uCg - + 300423 - - YES + - + 300424 - - YES + - + @@ -3178,10 +3130,9 @@ ZW4uCg 300447 - - YES + - + @@ -3192,10 +3143,9 @@ ZW4uCg 300451 - - YES + - + @@ -3206,10 +3156,9 @@ ZW4uCg 300453 - - YES + - + @@ -3220,10 +3169,9 @@ ZW4uCg 300455 - - YES + - + @@ -3234,10 +3182,9 @@ ZW4uCg 300457 - - YES + - + @@ -3248,10 +3195,9 @@ ZW4uCg 300459 - - YES + - + @@ -3262,10 +3208,9 @@ ZW4uCg 300472 - - YES + - + @@ -3273,604 +3218,333 @@ ZW4uCg - - - - YES - - YES - -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.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.IBPluginDependency - 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.IBPluginDependency - 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 - - {{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}} - {{437, 749}, {484, 308}} - com.apple.InterfaceBuilder.CocoaPlugin - {{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}} - 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 - - {{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 - + + 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 - - + - 300475 + 300481 - - YES + FirstResponder NSObject @@ -3895,16 +3569,12 @@ ZW4uCg - + 0 com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - + YES ../X11.xcodeproj diff --git a/hw/xquartz/bundle/Resources/da.lproj/main.nib/keyedobjects.nib b/hw/xquartz/bundle/Resources/da.lproj/main.nib/keyedobjects.nib index e0c669aa2ee798421cc0b7dc9164ba27e75ac991..e5f27d575950c5e483fa93cb4ce355ee6f553849 100644 GIT binary patch literal 53146 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 literal 51511 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 LprojCompatibleVersion - 93 + 97 LprojLocale fi LprojRevisionLevel 1 LprojVersion - 93 + 97 diff --git a/hw/xquartz/bundle/Resources/fi.lproj/main.nib/designable.nib b/hw/xquartz/bundle/Resources/fi.lproj/main.nib/designable.nib index a67e3d769..0c7cee1fd 100644 --- a/hw/xquartz/bundle/Resources/fi.lproj/main.nib/designable.nib +++ b/hw/xquartz/bundle/Resources/fi.lproj/main.nib/designable.nib @@ -1,33 +1,21 @@ - + - 1050 - 10A432 + 1040 + 11A79a 732 - 1038 - 437.00 + 1059 + 478.00 com.apple.InterfaceBuilder.CocoaPlugin 732 - - YES - - - YES + + com.apple.InterfaceBuilder.CocoaPlugin - - - YES - - YES - - - YES - - - - YES + + + NSApplication @@ -41,8 +29,7 @@ MainMenu - - YES + X11 @@ -60,8 +47,7 @@ submenuAction: X11 - - YES + Tietoja: X11 @@ -101,9 +87,7 @@ submenuAction: Palvelut - - YES - + _NSServicesMenu @@ -187,7 +171,7 @@ - + _NSAppleMenu @@ -202,8 +186,7 @@ submenuAction: Ohjelmat - - YES + YES @@ -224,7 +207,7 @@ - + @@ -238,8 +221,7 @@ submenuAction: Muokkaa - - YES + Kopioi @@ -249,7 +231,7 @@ - + @@ -263,8 +245,7 @@ submenuAction: Ikkuna - - YES + Sulje @@ -341,7 +322,7 @@ - + _NSWindowsMenu @@ -356,8 +337,7 @@ submenuAction: Ohje - - YES + X11-ohje @@ -367,10 +347,10 @@ - + - + _NSMainMenu @@ -386,21 +366,18 @@ View - {3.40282e+38, 3.40282e+38} + {1.7976931348623157e+308, 1.7976931348623157e+308} {320, 240} - + 256 - - YES + 256 {{13, 10}, {604, 307}} - - - YES + 1 @@ -408,14 +385,12 @@ 256 - - YES + 256 - {{18, 225}, {402, 18}} + {{38, 225}, {402, 18}} - YES 67239424 @@ -429,7 +404,7 @@ 1211912703 2 - + NSImage NSSwitch @@ -445,9 +420,8 @@ 256 - {{36, 78}, {488, 28}} + {{56, 67}, {488, 28}} - YES 67239424 @@ -466,7 +440,7 @@ controlColor 3 - MC42NjY2NjY2ODY1AA + MC42NjY2NjY2NjY3AA @@ -483,15 +457,14 @@ 256 - {{36, 177}, {488, 42}} + {{56, 177}, {488, 42}} - YES 67239424 4194304 QWt0aXZvaSBoaWlyZW4ga2Vza2ktIHRhaSBvaWtlYSBwYWluaWtlIHBpdMOkbcOkbGzDpCBPcHRpby0g -dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo +dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgb3NvaXRldHRhZXNzYS4KA @@ -502,9 +475,8 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 256 - {{18, 112}, {402, 18}} + {{38, 101}, {402, 18}} - YES 67239424 @@ -514,7 +486,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 1211912703 2 - + @@ -525,9 +497,8 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 256 - {{36, 141}, {385, 14}} + {{56, 137}, {385, 14}} - YES 67239424 @@ -543,9 +514,8 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 256 - {{18, 161}, {402, 18}} + {{38, 157}, {402, 18}} - YES 67239424 @@ -555,7 +525,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 1211912703 2 - + @@ -563,10 +533,47 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 25 - + + + 256 + {{56, -1}, {385, 31}} + + YES + + 67239424 + 4194304 + Kun käytössä, Optio-näppäimet lähettävät Alt_L- ja Alt_R X11 -näppäinsymbolit Mode_switchin sijaan. + + + + + + + + + 256 + {{38, 36}, {402, 18}} + + YES + + 67239424 + 0 + Optio-näppäimet lähettävät Alt_L:n ja Alt_R:n + + + 1211912703 + 2 + + + + + 200 + 25 + + + {{10, 33}, {584, 261}} - Syöte @@ -579,12 +586,11 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 256 - - YES + 256 - {{18, 78}, {402, 18}} + {{42, 74}, {402, 18}} YES @@ -595,7 +601,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 1211912703 2 - + @@ -606,7 +612,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 256 - {{36, 44}, {488, 28}} + {{60, 40}, {488, 28}} YES @@ -623,7 +629,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 256 - {{74, 217}, {118, 26}} + {{83, 217}, {118, 26}} YES @@ -662,8 +668,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo OtherViews - - YES + @@ -701,7 +706,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 24 - + 3 YES @@ -712,13 +717,13 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 256 - {{17, 220}, {55, 20}} + {{41, 220}, {55, 20}} YES 67239424 4194304 - VsOkcmVqw6Q6Cg + Värit: @@ -729,7 +734,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 256 - {{36, 198}, {392, 14}} + {{60, 198}, {392, 14}} YES @@ -746,7 +751,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 256 - {{18, 164}, {409, 23}} + {{42, 164}, {409, 23}} YES @@ -757,7 +762,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 1211912703 2 - + @@ -768,7 +773,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 256 - {{37, 98}, {409, 23}} + {{61, 98}, {409, 23}} YES @@ -779,7 +784,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 1211912703 2 - + @@ -790,7 +795,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 256 - {{36, 130}, {488, 28}} + {{60, 130}, {496, 28}} YES @@ -804,7 +809,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo - + {{10, 33}, {584, 261}} Tuloste @@ -818,12 +823,11 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 256 - - YES + 256 - {{1, 237}, {409, 23}} + {{1, 229}, {409, 23}} YES @@ -834,7 +838,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 1211912703 2 - + @@ -845,7 +849,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 256 - {{19, 189}, {534, 42}} + {{20, 181}, {534, 42}} YES @@ -872,7 +876,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 1211912703 2 - + @@ -889,12 +893,12 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 67239424 0 - Päivitä X11:n ensisijainen valinta (keskinapsautus), kun Mac OS X:n leikepöytä muuttuu + Päivitä X11:n ensisijainen valinta (keskiosoitus), kun Mac OS X:n leikepöytä muuttuu 1211912703 2 - + @@ -916,7 +920,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 1211912703 2 - + @@ -938,7 +942,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 1211912703 2 - + @@ -978,7 +982,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo - + {{10, 33}, {584, 261}} Leikepöytä @@ -992,23 +996,22 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 256 - - YES + 256 - {{15, 227}, {318, 18}} + {{55, 227}, {318, 18}} YES 67239424 0 - Huomioi napsautukset ei-aktiivisiin ikkunoihin + Huomioi osoitukset ei-aktiivisiin ikkunoihin 1211912703 2 - + @@ -1019,13 +1022,13 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 256 - {{23, 190}, {488, 31}} + {{63, 190}, {488, 31}} YES 67239424 4194304 - Kun käytössä, ei-aktiivisen ikkunan napsauttaminen saa hiiren napsautuksen kulkemaan kyseiselle ikkunalle sen aktivoimisen lisäksi. + Kun käytössä, ei-aktiivisen ikkunan osoittaminen saa hiiren osoituksen kulkemaan kyseiselle ikkunalle sen aktivoimisen lisäksi. @@ -1035,7 +1038,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 256 - {{15, 166}, {402, 18}} + {{55, 166}, {402, 18}} YES @@ -1046,7 +1049,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 1211912703 2 - + @@ -1057,7 +1060,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 256 - {{23, 143}, {407, 17}} + {{63, 143}, {407, 17}} YES @@ -1073,7 +1076,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 256 - {{15, 119}, {402, 18}} + {{55, 119}, {402, 18}} YES @@ -1084,7 +1087,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 1211912703 2 - + @@ -1095,7 +1098,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 256 - {{23, 85}, {488, 28}} + {{63, 85}, {488, 28}} YES @@ -1108,7 +1111,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo - + {{10, 33}, {584, 261}} Ikkunat @@ -1119,12 +1122,11 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 256 - - YES + 256 - {{18, 225}, {402, 18}} + {{47, 225}, {402, 18}} YES @@ -1135,7 +1137,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 1211912703 2 - + @@ -1146,7 +1148,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 256 - {{18, 148}, {402, 18}} + {{47, 148}, {402, 18}} YES @@ -1157,7 +1159,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 1211912703 2 - + @@ -1168,7 +1170,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 256 - {{36, 177}, {488, 42}} + {{65, 177}, {488, 42}} YES @@ -1185,7 +1187,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 256 - {{36, 100}, {488, 42}} + {{65, 100}, {488, 42}} YES @@ -1202,7 +1204,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 256 - {{20, -16}, {363, 17}} + {{49, -16}, {363, 17}} YES @@ -1216,32 +1218,29 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo - + {{10, 33}, {584, 261}} Suojaus - + 0 YES YES - - YES + - + - + {625, 323} - - {{0, 0}, {1280, 938}} {320, 262} - {3.40282e+38, 3.40282e+38} + {1.7976931348623157e+308, 1.7976931348623157e+308} x11_prefs @@ -1254,13 +1253,12 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo View - {3.40282e+38, 3.40282e+38} + {1.7976931348623157e+308, 1.7976931348623157e+308} {320, 240} 256 - - YES + 265 @@ -1314,13 +1312,11 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 274 - - YES + 2304 - - YES + 256 @@ -1340,8 +1336,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo {{302, 0}, {16, 17}} - - YES + 121.73100280761719 62.730998992919922 @@ -1449,7 +1444,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo YES - + 3 2 @@ -1472,9 +1467,10 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo YES 0 - + {{1, 17}, {301, 198}} + 4 @@ -1501,20 +1497,21 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 2304 - - YES + - + {{1, 0}, {301, 17}} + 4 - + {{20, 20}, {318, 231}} + 50 @@ -1546,18 +1543,17 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 25 - + {469, 271} {{0, 0}, {1280, 938}} {320, 262} - {3.40282e+38, 3.40282e+38} + {1.7976931348623157e+308, 1.7976931348623157e+308} x11_apps Valikko - - YES + YES @@ -1580,8 +1576,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo submenuAction: Ohjelmat - - YES + YES @@ -1602,16 +1597,15 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo - + - + - + - - YES + copy: @@ -2156,13 +2150,28 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 300475 - + + + prefs_changed: + + + + 300480 + + + + option_sends_alt + + + + 300481 + + - - YES + 0 - + @@ -2187,31 +2196,28 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 29 - - YES + - + MainMenu 19 - - YES + - + 24 - - YES + @@ -2220,7 +2226,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo - + @@ -2266,17 +2272,15 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 56 - - YES + - + 57 - - YES + @@ -2289,7 +2293,7 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo - + @@ -2305,10 +2309,9 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 131 - - YES + - + @@ -2364,19 +2367,17 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 163 - - YES + - + 169 - - YES + - + @@ -2387,20 +2388,18 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 269 - - YES + - + 270 - - YES + - + @@ -2416,19 +2415,17 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 419 - - YES + - + 420 - - YES + - + @@ -2445,126 +2442,115 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 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 + @@ -2573,169 +2559,152 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo - + 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 @@ -2747,20 +2716,18 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 526 - - YES + - + 527 - - YES + - + @@ -2816,10 +2783,9 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 100382 - - YES + - + @@ -2870,13 +2836,12 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 380 - - YES + - + @@ -2902,13 +2867,12 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 295 - - YES + - + @@ -2929,21 +2893,19 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 296 - - YES + - + 535 - - YES + - + @@ -2954,10 +2916,9 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 298 - - YES + - + @@ -2968,10 +2929,9 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 297 - - YES + - + @@ -2982,10 +2942,9 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 310 - - YES + - + @@ -2996,10 +2955,9 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 292 - - YES + - + @@ -3010,10 +2968,9 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 293 - - YES + - + @@ -3024,42 +2981,38 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 300337 - - YES + - + 300338 - - YES + - + 300358 - - YES + - + 300359 - - YES + - + @@ -3075,10 +3028,9 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 300362 - - YES + - + @@ -3089,10 +3041,9 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 300364 - - YES + - + @@ -3103,10 +3054,9 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 300368 - - YES + - + @@ -3117,10 +3067,9 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 300370 - - YES + - + @@ -3131,17 +3080,15 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 300421 - - YES + - + 300422 - - YES + @@ -3150,25 +3097,23 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo - + 300423 - - YES + - + 300424 - - YES + - + @@ -3184,10 +3129,9 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 300447 - - YES + - + @@ -3198,10 +3142,9 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 300451 - - YES + - + @@ -3212,10 +3155,9 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 300453 - - YES + - + @@ -3226,10 +3168,9 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 300455 - - YES + - + @@ -3240,10 +3181,9 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 300457 - - YES + - + @@ -3254,10 +3194,9 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 300459 - - YES + - + @@ -3268,10 +3207,9 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo 300472 - - YES + - + @@ -3279,638 +3217,354 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo - - - - YES - - YES - -3.IBPluginDependency - -3.ImportedFromIB2 - 100292.IBPluginDependency - 100293.IBPluginDependency - 100295.IBPluginDependency - 100295.IBShouldRemoveOnLegacySave - 100310.IBPluginDependency - 100363.IBPluginDependency - 100364.IBPluginDependency - 100365.IBPluginDependency - 100365.object.labelIdentifier - 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 - 169.object.labelIdentifier - 19.IBPluginDependency - 19.ImportedFromIB2 - 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.IBPluginDependency - 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.IBPluginDependency - 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 - 300359.object.labelIdentifier - 300360.IBPluginDependency - 300360.object.labelIdentifier - 300361.IBPluginDependency - 300361.object.labelIdentifier - 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 - 300447.object.labelIdentifier - 300450.IBPluginDependency - 300450.object.labelIdentifier - 300451.IBPluginDependency - 300451.ImportedFromIB2 - 300451.object.labelIdentifier - 300452.IBPluginDependency - 300452.object.labelIdentifier - 300453.IBPluginDependency - 300453.ImportedFromIB2 - 300453.object.labelIdentifier - 300454.IBPluginDependency - 300454.object.labelIdentifier - 300455.IBPluginDependency - 300455.ImportedFromIB2 - 300456.IBPluginDependency - 300457.IBPluginDependency - 300457.ImportedFromIB2 - 300457.object.labelIdentifier - 300458.IBPluginDependency - 300458.object.labelIdentifier - 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 - 419.object.labelIdentifier - 420.IBPluginDependency - 420.ImportedFromIB2 - 420.object.labelIdentifier - 421.IBPluginDependency - 421.ImportedFromIB2 - 421.object.labelIdentifier - 423.IBEditorWindowLastContentRect - 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 - IBBuiltInLabel-Red - 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}} - IBBuiltInLabel-Red - 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, 533}, {625, 323}} - com.apple.InterfaceBuilder.CocoaPlugin - {{437, 533}, {625, 323}} - - {{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}, {469, 271}} - com.apple.InterfaceBuilder.CocoaPlugin - - - {{68, 585}, {469, 271}} - - {{433, 406}, {486, 327}} - - - {3.40282e+38, 3.40282e+38} - {320, 240} - com.apple.InterfaceBuilder.CocoaPlugin - - {{145, 836}, {344, 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 - - IBBuiltInLabel-Red - com.apple.InterfaceBuilder.CocoaPlugin - IBBuiltInLabel-Red - com.apple.InterfaceBuilder.CocoaPlugin - IBBuiltInLabel-Red - 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 - - IBBuiltInLabel-Red - com.apple.InterfaceBuilder.CocoaPlugin - IBBuiltInLabel-Red - com.apple.InterfaceBuilder.CocoaPlugin - - IBBuiltInLabel-Red - com.apple.InterfaceBuilder.CocoaPlugin - IBBuiltInLabel-Red - com.apple.InterfaceBuilder.CocoaPlugin - - IBBuiltInLabel-Red - com.apple.InterfaceBuilder.CocoaPlugin - IBBuiltInLabel-Red - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - IBBuiltInLabel-Red - com.apple.InterfaceBuilder.CocoaPlugin - IBBuiltInLabel-Red - 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 - - IBBuiltInLabel-Red - com.apple.InterfaceBuilder.CocoaPlugin - - IBBuiltInLabel-Red - com.apple.InterfaceBuilder.CocoaPlugin - - IBBuiltInLabel-Red - {{525, 477}, {128, 33}} - 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 - + + 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 + IBBuiltInLabel-Red + 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 + IBBuiltInLabel-Red + 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}} + IBBuiltInLabel-Red + 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, 533}, {625, 323}} + com.apple.InterfaceBuilder.CocoaPlugin + {{507, 533}, {625, 323}} + + {{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}, {469, 271}} + com.apple.InterfaceBuilder.CocoaPlugin + + + {{68, 585}, {469, 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 + + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + 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 + + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + 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 + + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + + IBBuiltInLabel-Red + 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 - - + - 300475 + 300481 - - YES + FirstResponder NSObject @@ -3935,16 +3589,12 @@ dGFpIEtvbWVudG8tbsOkcHDDpGltacOkIHBhaW5ldHR1bmEgbmFwc2F1dGV0dGFlc3NhLgo - + 0 com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - + YES ../X11.xcodeproj diff --git a/hw/xquartz/bundle/Resources/fi.lproj/main.nib/keyedobjects.nib b/hw/xquartz/bundle/Resources/fi.lproj/main.nib/keyedobjects.nib index b84872e19b1704b0630ac2081fb43a449b99739b..da8c1acf8d3280231e69dd5f5d44b72d29813042 100644 GIT binary patch literal 54750 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 z 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

UBn(@A90X4 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 diff --git a/hw/xquartz/bundle/Resources/ko.lproj/locversion.plist b/hw/xquartz/bundle/Resources/ko.lproj/locversion.plist index 832fcb47e..4b6a95abc 100644 --- a/hw/xquartz/bundle/Resources/ko.lproj/locversion.plist +++ b/hw/xquartz/bundle/Resources/ko.lproj/locversion.plist @@ -3,12 +3,12 @@ LprojCompatibleVersion - 93 + 97 LprojLocale ko LprojRevisionLevel 1 LprojVersion - 93 + 97 diff --git a/hw/xquartz/bundle/Resources/ko.lproj/main.nib/designable.nib b/hw/xquartz/bundle/Resources/ko.lproj/main.nib/designable.nib index 5ed9b42fe..ce6b2d171 100644 --- a/hw/xquartz/bundle/Resources/ko.lproj/main.nib/designable.nib +++ b/hw/xquartz/bundle/Resources/ko.lproj/main.nib/designable.nib @@ -1,7 +1,7 @@ - + - 1050 + 1040 11A79a 732 1059 @@ -10,24 +10,12 @@ com.apple.InterfaceBuilder.CocoaPlugin 732

- - YES - - - YES + + com.apple.InterfaceBuilder.CocoaPlugin - - - YES - - YES - - - YES - - - - YES + + + NSApplication @@ -41,8 +29,7 @@ MainMenu - - YES + X11 @@ -60,8 +47,7 @@ submenuAction: X11 - - YES + X11에 관하여 @@ -101,9 +87,7 @@ submenuAction: 서비스 - - YES - + _NSServicesMenu @@ -187,7 +171,7 @@ - + _NSAppleMenu @@ -202,8 +186,7 @@ submenuAction: 응용 프로그램 - - YES + YES @@ -224,7 +207,7 @@ - + @@ -238,18 +221,17 @@ submenuAction: 편집 - - YES + - 베껴두기 + 복사하기 c 1048576 2147483647 - + @@ -263,8 +245,7 @@ submenuAction: 윈도우 - - YES + 닫기 @@ -341,7 +322,7 @@ - + _NSWindowsMenu @@ -356,8 +337,7 @@ submenuAction: 도움말 - - YES + X11 도움말 @@ -367,10 +347,10 @@ - + - + _NSMainMenu
@@ -391,15 +371,13 @@ 256 - - YES + 256 {{13, 10}, {458, 292}} - - YES + 1 @@ -407,8 +385,7 @@ 256 - - YES + 256 @@ -427,7 +404,7 @@ 1211912703 2 - + NSImage NSSwitch @@ -486,9 +463,9 @@ 67239424 4194304 - 7YG066at7ZWY7JesIOuniOyasOyKpCDspJHqsIQg65iQ64qUIOyYpOuluOyqvSDri6jstpTrpbwg7Zmc -7ISx7ZmU7ZWY64qUIOuPmeyViCBPcHRpb24g65iQ64qUIENvbW1hbmQg7YKk66W8IO2VqOq7mCDriITr -pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo + 66eI7Jqw7IqkIOykkeqwhCDrmJDripQg7Jik66W47Kq9IOuyhO2KvOydhCDtmZzshLHtmZTtlZjroKTr +qbQsIO2BtOumre2VmOuKlCDrj5nslYggT3B0aW9uIOuYkOuKlCBDb21tYW5kIO2CpOulvCDtlajqu5gg +64iE66W06rOgIOyeiOycvOyLreyLnOyYpC4KA @@ -510,7 +487,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 1211912703 2 - + @@ -549,7 +526,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 1211912703 2 - + @@ -557,7 +534,45 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 25 - + + + 256 + {{36, -1}, {385, 31}} + + YES + + 67239424 + 4194304 + 활성화하면, Option 키는 Mode_switch 대신에 Alt_L 및 Alt_R X11 키 기호를 보냅니다. + + + + + + + + + 256 + {{18, 36}, {402, 18}} + + YES + + 67239424 + 0 + Option 키로 Alt_L 및 Alt_R 보내기 + + + 1211912703 + 2 + + + + + 200 + 25 + + + {{10, 33}, {438, 246}} @@ -572,8 +587,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 256 - - YES + 256 @@ -588,7 +602,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 1211912703 2 - + @@ -655,8 +669,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo OtherViews - - YES + @@ -684,7 +697,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo - 수천만 색상 + 수백만 색상 1048576 2147483647 @@ -694,7 +707,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 24 - + 3 YES @@ -711,7 +724,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 67239424 4194304 - 7IOJ7IOBOgo + 색상: @@ -750,7 +763,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 1211912703 2 - + @@ -772,7 +785,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 1211912703 2 - + @@ -797,7 +810,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo - + {{10, 33}, {438, 246}} 출력 @@ -811,8 +824,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 256 - - YES + 256 @@ -827,7 +839,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 1211912703 2 - + @@ -844,7 +856,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 67239424 4194304 - "베껴두기" 메뉴 항목을 활성화하고 OSX 붙이기 보드, X11 클립보드 및 PRIMARY 버퍼 간의 동기화를 허용합니다. + "복사하기" 메뉴 항목을 활성화하고 OSX 붙이기 보드, X11 클립보드 및 PRIMARY 버퍼 간의 동기화를 허용합니다. @@ -865,7 +877,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 1211912703 2 - + @@ -887,7 +899,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 1211912703 2 - + @@ -909,7 +921,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 1211912703 2 - + @@ -931,7 +943,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 1211912703 2 - + @@ -971,7 +983,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo - + {{10, 33}, {438, 246}} 붙이기 보드 @@ -985,8 +997,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 256 - - YES + 256 @@ -1001,7 +1012,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 1211912703 2 - + @@ -1039,7 +1050,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 1211912703 2 - + @@ -1077,7 +1088,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 1211912703 2 - + @@ -1101,7 +1112,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo - + {{10, 33}, {438, 246}} 윈도우 @@ -1112,8 +1123,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 256 - - YES + 256 @@ -1128,7 +1138,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 1211912703 2 - + @@ -1150,7 +1160,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 1211912703 2 - + @@ -1209,25 +1219,24 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo - + {{10, 33}, {438, 246}} 보안 - + 0 YES YES - - YES + - + - + {484, 308} {{0, 0}, {1280, 938}} @@ -1250,8 +1259,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 256 - - YES + 265 @@ -1305,13 +1313,11 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 274 - - YES + 2304 - - YES + 256 @@ -1331,8 +1337,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo {{302, 0}, {16, 17}} - - YES + 121.73100280761719 62.730998992919922 @@ -1440,7 +1445,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo YES - + 3 2 @@ -1463,7 +1468,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo YES 0 - + {{1, 17}, {301, 198}} @@ -1493,10 +1498,9 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 2304 - - YES + - + {{1, 0}, {301, 17}} @@ -1505,7 +1509,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 4 - + {{20, 20}, {318, 231}} @@ -1540,7 +1544,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 25 - + {454, 271} {{0, 0}, {1280, 938}} @@ -1550,8 +1554,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo
메뉴 - - YES + YES @@ -1574,8 +1577,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo submenuAction: 응용 프로그램 - - YES + YES @@ -1589,23 +1591,22 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo - 사용자화... + 사용자화… 1048576 2147483647 - + - + -
+ - - YES + copy: @@ -2150,13 +2151,28 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 300475 - + + + prefs_changed: + + + + 300480 + + + + option_sends_alt + + + + 300481 + + - - YES + 0 - + @@ -2181,31 +2197,28 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 29 - - YES + - + MainMenu 19 - - YES + - + 24 - - YES + @@ -2214,7 +2227,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo - + @@ -2260,17 +2273,15 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 56 - - YES + - + 57 - - YES + @@ -2283,7 +2294,7 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo - + @@ -2299,10 +2310,9 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 131 - - YES + - + @@ -2358,19 +2368,17 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 163 - - YES + - + 169 - - YES + - + @@ -2381,20 +2389,18 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 269 - - YES + - + 270 - - YES + - + @@ -2410,19 +2416,17 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 419 - - YES + - + 420 - - YES + - + @@ -2439,126 +2443,115 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 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 + @@ -2567,169 +2560,152 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo - + 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 @@ -2741,20 +2717,18 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 526 - - YES + - + 527 - - YES + - + @@ -2810,10 +2784,9 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 100382 - - YES + - + @@ -2864,13 +2837,12 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 380 - - YES + - + @@ -2896,13 +2868,12 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 295 - - YES + - + @@ -2923,21 +2894,19 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 296 - - YES + - + 535 - - YES + - + @@ -2948,10 +2917,9 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 298 - - YES + - + @@ -2962,10 +2930,9 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 297 - - YES + - + @@ -2976,10 +2943,9 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 310 - - YES + - + @@ -2990,10 +2956,9 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 292 - - YES + - + @@ -3004,10 +2969,9 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 293 - - YES + - + @@ -3018,42 +2982,38 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 300337 - - YES + - + 300338 - - YES + - + 300358 - - YES + - + 300359 - - YES + - + @@ -3069,10 +3029,9 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 300362 - - YES + - + @@ -3083,10 +3042,9 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 300364 - - YES + - + @@ -3097,10 +3055,9 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 300368 - - YES + - + @@ -3111,10 +3068,9 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 300370 - - YES + - + @@ -3125,17 +3081,15 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 300421 - - YES + - + 300422 - - YES + @@ -3144,25 +3098,23 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo - + 300423 - - YES + - + 300424 - - YES + - + @@ -3178,10 +3130,9 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 300447 - - YES + - + @@ -3192,10 +3143,9 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 300451 - - YES + - + @@ -3206,10 +3156,9 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 300453 - - YES + - + @@ -3220,10 +3169,9 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 300455 - - YES + - + @@ -3234,10 +3182,9 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 300457 - - YES + - + @@ -3248,10 +3195,9 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 300459 - - YES + - + @@ -3262,10 +3208,9 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo 300472 - - YES + - + @@ -3273,604 +3218,333 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo - - - - YES - - YES - -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.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.IBPluginDependency - 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.IBPluginDependency - 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 - - {{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}} - {{437, 749}, {484, 308}} - com.apple.InterfaceBuilder.CocoaPlugin - {{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}} - 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 - - {{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 - + + 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 - - + - 300475 + 300481 - - YES + FirstResponder NSObject @@ -3895,16 +3569,12 @@ pbTqs6Ag7J6I7Jy87Iut7Iuc7JikLgo - + 0 com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - + YES ../X11.xcodeproj diff --git a/hw/xquartz/bundle/Resources/ko.lproj/main.nib/keyedobjects.nib b/hw/xquartz/bundle/Resources/ko.lproj/main.nib/keyedobjects.nib index f60e5d4e724b31445522ec3b5bf5598228fbd424..f6161431406d10e7902f02d953f54d820d3ab779 100644 GIT binary patch literal 47943 zcmdpf2VfM{*6=MevopIhJG1E_0V2H!B%wDYbdVl;iy>J;AjyU#bdb4%ic)MSDq^9i zC?Em~NJm3aQ9wXY1S|+x5ydY4=g#aVn`8s}{_lP7{lAzkGk5Mi=iGD8Iro&iWAbyd z3yTsHk0Fc*qDVj@l8k0X^P#mSdkYG)eR)G``NoX*W)u|;tCe1mF)kY}53E(>%MU~N z?q^>1(6z{cWYh>Hq2{O^x)pUmol$r6AbK1lQ0rT;z?CfkJKj(NE6bAbRwNe7t)9HCH=@SGMsox9`TWUGL1|pGsxZKe)0f$ zkUUA2k*COV@*H`YtS7IK4P-OfLUxdgOMd($=&W9Y%-KbUKE5 z>3Et;C(|i(DxE>^q>JeNbTM5*pQOv^vveh0M_;3x=^pwveV-nqr|5_D3;GqkOuwf; z(qHLs$U*-Uh(HBd@CeaDjL=wUA~Y4639W>-LI`@ zCoB@~7akBE7M>8E6P_1d5H<;~3a<%!g*SvZg|~!5!n?xz!ZG2L@S$*4I47JJz7c*9 zeiX4tL@LUnA$r7WVs$Y=tSvSY8;fnlc4B+6qu5jIFAfmX#M{Mmajcjp`ox*yEb$I; zjyPXjAU-ZWAubi45nm8ji?4~B#Vz6vu~^(EzAqjVkBc9QpNgM}m&NbJE8@>mxD+8p zN>Ng*R7HxDZjx$C&85~-XQ`LeTN)w_l}1UUrF1D<8ZQ+|lcZVF9nw7MUg<&UA?a!9 z8R-RSwX{LnC~cBnlQv7cq=V8s(jn=HbW-|A`a=3v`cC>o`qLpgB!}VfIAR@D9JL&^ z9gQ4~9jzR#9Vw2Ej$V%5jy{gQj=_#$jx@)3M}eczVLF)OUdMfohaHO@Pdb)4UUaa+Dk`$H>*?8gfIqsoYF% zFW(|}mAlFPE_FtTa)YDb1DEN*m=?rGwH%>8jkOq$Gu#>Dtm>@ctn0klndE%i`JwY8 z=V|9z=Q-ym&Wp~=&L5puoxiw~J)pXT% z?NW!USJj`?pVeQ~U)A5#-_<|VKh6)Q= zv@k7Pi_jvqC@orx(PFhKTAUWIRn@9#)wKleCas26Q>&%b*6L_=wR&28t%251yIE_b zHP)JFiCU7DtTok|Y0b43T1%~!)>><$wbj~b?X_F9TeS{aiq=uFGp>!tP9`e=Q%ep-KRfR?Ha)COsTwISM2ZJ0J(8=;NVMrot9H0^dRT^pliXqlQ< z8>?k$ss&8OvS6SV@ZP%F|VX_K`n+Ei_tHeH*c&D3UTcWARUQ)Akl z+8k}Jc9(Xyc8@ksyH~qUo3AZ$`}BT#e|>4Wtl`cQqCK3pH6kJLx$qxCfX zc0FAmqi5)ux>p~oXX)egY<;{wLC?{1^*r6D=j#*o0=-Z#(kJPY^(p#PeVRU9pP|px zXX$t7vvpHv`kne5eXf3&ez$&)K2N__zfYg9FVGk2i}d^T2lNN^hxCW_#rh-qqxus4 zG5vA<34N*lq`pjlN`G2^Mt@dcuCLHn>Z|nU^yl>#^ws){`b+v6eXYJue_3CzzoKu@ zH|m@8SM}HQ&H5I7tNyyaP2aBX(0A&)^xgU%eXst8{-$26@6-3|2lRvbTl(AjJNhC0 zUHv`%uzo~8s=u!v(~s*X^bhot`YHWG{UiOf{;_^WKdYb9KhZzcKhrf$y?#aiLH|*|s{f?_tpB3_s{f|{uK%I`sbACoGLV4{Vo*ac zL_;zhhHNN?({LH8p&4#NHw?pLgc;#Rgb`^(8PP_J5o=U2;*5Bss!`3TZX_5t88wWW zMlGYZQOBrj)HCWE4UC4y%|;`mv5_>WR^FtXoU=w4Qjin5kcu?qMmjQ(2Zf<<6oDd9 z6pBVMC>B*gaVQ>Dh1cpR0bb)!O;iijMs-kKR1eih4NyaLbD9y|Cp9G_!&_LGJtjLR zyJ%Y9?99U3yweKP45Lr#;B2^@;~kQnm+6~QII2%-Ut9Cr4fH;#opRC(3%!Md({mz(2&m@v3c>HwdwD9wls(ZAgsy7NEIyBi6e!_fAv!L>4Y$HV%h_VG?F zg6qTWySyQP%$Ju31_;<9046};hpGgMJ^+LtiSonyAN3XRe!BYdih8H#rDu5y;G6Z7 z-3KFYfz&7A{9Q5$yjlOh!|0kYBs}s4BX64uBT0-TGy0N=7-@PGCZI8Df)arW7FxVJ zQ#2{Rk&K$6W`IrO!lHugyew0I;ZpL!(#lBZSR6$yP)pPbwH|Kcod=H&wLf}o40}&1 zN{5L^wH{vqP1~ThL;IxK-{FHz0lS~}=$6p{!=%C@U#@+9IcksE!i4td*vXgSOD~xu z4q6K8h&lmz8~g03HRWgQZn~hZFeib5y+tcf7t{^49R#C#i|i+Rpq^%}myNFIHq;CC zMtx9U)DQJX15hd&hz6m-Xb2jLhN0nT1R9A(q0uM}-Hy`H7?goBkr$0cS!f)}M&r>0 zl!J0n9`d1lG!Ye`LR5q%p~+|pnu?~O>1YO;iDscY&};;>Mt7n)XfC=7-Hq-+^U%HM zJ~SUKKnu|#bU%8)beg(Z*PLa}HeWUOns1sPn`g~W%+Jg(&CBLb=AR5xh82c&h9en{ zWB6r;UtxG7!>=;Dnc=MrZ)11|!@C&X!|)pn7c+c-;kOumhv9b_KFsh@hL16Pg5i@4 zf5`A@hQDC=8-~AQ_$P*cVfa^ue`EM}hW}s~M!d!dun1;^G9oepoCVC|WW>dY%815@ zn-QH6gAorSVaH%r9zqYJ#pn_AC|ZINhV)78l|IIs15DG|TUeBxXE6<*e&3{m46o@n zHPdC100%Awu2V-1O-ce@FDmfm4w%2UH*ZppB5!UX zhycC@0Q!O1Fo+pu);1$d&zRQ-ZYbfO4Q8$7Xd~KWhMVypqSw%7v;}R2E?-C6&~~%~ zI^KzP!H9d%Ug-W!__q(Odj9tNH6jgKvz8qJ7*X2#gz%Sdgpm_eR~gw6izufNQQe(wW(Z^2rB8@+=L0i_0b3$1yu7JQ5uZAJmge%L@baY#Ci^JYxQ zO)r>W)BgxMYKd2SjRu}yj*g(VrJWx~hs+qWiWy}!<-J%)rxuk=<0l|(OM(KCQYVech3?I2Hp0~dDBB3fnpLy* z_usb~B^(#Fj9mN6<`+g6+7H+rw0YlRf)~+OzycS{1eoQj0r7B|Pw)5Wig}Y+qq6C} z3ZRuv?;mJwfbiAJ5&mQlci4FS6?ha2XeX8e;9K(*0KTSo_nLjH_djrAU_u>>`dGnE zm^Hs(ODQNwpSA+7xlmh}HtVb1Ov7$JA1%ikNZU+b#sp65pv8d0aJaP?W}5Ya76Xn# zYj6yXH5&jeW|;Md_D;{v2jEobVo(4-j$O0BTsF-*F?7w2J+%%*!t#TE z{co;>sqpXsKwM_v^irnsLsqhyLz6rcd-2#n7kB~ylxw!KL26wdxt1Aw;&*o5yRuTM zPXwwLLI-Vt>TS)I0jf_iYk?Hj)3`n@n4AqJ7-x~n5SkHy#zN@M$`Pta*}MFdy%*mH zh%5*L>k#>oxHUl8TgDv_-r0l_P7Hj#2qheOW*zFEUKuD4mI39l%0W4WmzH0$_({CX z56-iAIe@bg?1_QtSw@543GWmDt7DeUI4EHa+PY?4V*ha!(R-n!zqQcc%faZC^wVYR zy2Qh~1HFWTYXjaGKnrhyeqJvNQA7ZuZr;~l*whatZ2xgxVr2x{8R*HHtK!NDR1uj2 zeq`RkhX9E8f{Ail0EC`n14KD+*OqtsPaFv>#EnU>%|9U&06vC~;}az!+I*{sLbx`+VqnB7f$=!}BLb5-JahZi-D{2y1>VjG2|KAq zs*{8g*lR;ib_%$an&Zg5&}SST^m)asr4yK>0U!Wzh6}kiDpKEk_etuzEVPInsWF?Z<$u_IqCet)sXN@Sblk6h9$sV$o zyg}YXVWgPsBm2n#a*(`5-X`ymL*!lZ9yv^okfY>%a*P}&C&&lnB>bHsACiyAY4R~S zL(Ys>cY^&1_prbgB;S{p=`Bbzs>3F;AU!LKx3RW0d_&dMSJ20o2b-ew9BaSTF+F2K zR)KF)UMBSHgQse8Ee?CA!P(v^fyaaPs@7<*SLy8EhQhY1yEh%iyl?}`z#+=`SFKjXBLfv_NkNdxpn590$T7k!|qr3i*NjNUoBf;O`eeqGLB}3SjTbClYqKoTPBQ zvoFK{DZ{23>~1W_4@?7W_&7?1<{IEg(-0V`%1AYHo<~9EJVxS&&uE&MbaO&d>sGT) zkl#4~0LC6*+im1ea*g~&{-hXaQ!?Yw$y~tPyxW{>-c=d!9|7ZDp%Mq4D)8rm(dU?R z7^xFHcI{#Qv0Kivwqevwb&KV!!AhBCB{isrhH}9_#K%1MjR?rr-C2eIcFrPJ7eMsBTw&ZsdM%&T$ z^cH$6?Lbq|o3sWYCd%*YGV1@K31cHO~;p>VocUXCyU`+$Ie)QoBcUh!Q zwbmE^n4M>RwEZZSXyO6~p6F57B{RE-_XM14wNcE+fzzHb7uM`>e+R_>tJ$INs0VL{ z4+e!LG&=9VZutBG?M?g8z5sAP+Mm2Z2hdbHkPf1Q=@2>;Xw4zAW()=?`J4=}_@|H0 z$3R$1*1Cd~1R@~cS5OotuxlMWGBOvLkC}_j`^|^O>@V6nmkavUbOaqqN72zVjouE- z=NG_Ztx?Pe%?E0Br~`n(e;ze{WUomX*_r9x3erK~+B}{?GvO)jjb2VOEFTaZOS9-W z+Jk0uAi0d?a?zs1xa=aY`S5LtjhpiSl3TY%b|({P4iL&}yPQryZI9DDAb}5h%BK^d zuR>ZxCvhf)Ny+hLac>nT2JhSNrn5eqkC+dej~bG>WN_-VLh$2(k{D;n>JplOkE#T| z>E^>76a5g(q_fJeMo!;V^bR_knv_*sto*j6gm~Xwv%NW){0g9KyO#JDAPj#yWlt)d zQ!=e{>0R`0dJk~nz4SghpPWQ%{Ywy59baQW#{uD`mjBJ4gB*bLA9O4xoy3ERJZ*Ou0y=3@)pT6R7{)4DR? z->`t+NB7eM7VvK==8G2a&jkTrs|5J|p@Dyg9-{C1fj?RT{PTX`U&z>S@z5iOSC*f$ z4`>lNX-(N`^T`o5zgx@U!?JuwKLUX=m!75{mte{bu(Y!UKR=a@V?i3smp_;f_fBlwBJf|!3M~3F zboqEQo?+nZkR_*G$(3VCH@!C;|Hdy(zc^RnP>tpbMIR-7Dr6bE~*(F)W?PF} z=8zC3gbNX^HS3HJOM44dXdfX? zh!?8TzI2XI4Wvnbp}LSD+$7WxYLX8i$gozZBh(cnp}x?7&KGVL8d;`ZKW{;{FEcyC zvJ)q#^H@yBNkv7zJin0*q9!E=OjwA`cmsOGl5ByvLwXKa2JloLUqNnqjz2sAA=Z+o zN+Sk=vA|kRp9YFCXrN>xHcY_RP+0eN{UH_s|F)U011)!$yUeA=0fUU++4;oCJxM4b zuv0u-v~?{^s~xcrlB}S@b~6ghmeeWPMH%Bj?F-F?7D5utqXmK$#@K0Yx8#q|T4-a* zQ5y!Ufo)4K7h0pXcAIuWdk|oD3ob%e3hjhjgj=s8)`S$HBS2t3vI@TWd1+JzghVH# z6^(gd&zj?si$NA)x+Yf=B*_7KJjS;9Ervhl(Mp|_9=T<-%un`rqRjtfQP zxWzX83cO>z1qI&BE}2=}l;YcI9#u;-s+4}=)-7y1QgX7h@_-r;ZHGc zx%?^MIg7^%t;mtpIYc>pQ~LP|vw85@xXs#(%uTu0Axyfn!(UuCMwoAz2Z4fbE9N`q zQV)JWQOpm^h%I5NFs+PcGz@M)LZDliX$t*L^Ei}n2RMKso+r$PJFi1D4`NY*3A>Hs z0-eLTrn`cAj?~1zH4vL-vR&20Um%0I6)5iH~+$Xv_@EH z9)`{Td*GDaaNtN{@!>u3AcxcPeffj(ISu>~ssLmUnZoeCMdR$9VWHpP6&^8btrT*F zCBkFEgUNFzwy6t?h z1o{>v&}EQ7R~TMZDuEuebsLvJN!CX1Z|b(I!cW4_CA#f*;WJyeiAZP^LY-U$xc%zH zTYP!VdQc@(4=x+wwVWks>66M(S`UjNZ5?h6ERUtD#5F{ zSkpg6Z9?MpBf#Xx%V$LKdu;_?HuyYvZudw%fD}=iK*g1aZm}BhKU{gR2m(UO1}g6ek$eJ5wrb6QNqSko4!8| zG&#HyqMcwVofrr^G(Sxyc&B-J8cAU=H8R9ZP7Q{Mc`Xz<#);X&C2@kip#NfEP6SqT zDUUbx^TOXTMa6t^qF7LZf)cI=O-x=~a4(wY!+>dfmMt(4|rpRn$Wrl@N*xn`H4U<35ntX;uhNY6}FG2So zNhfikxJbOe1l@;4=12Fj(C9iiU?uqKsOdou$93ykSON$3t=|jNT6}ohnl1AFqN7_z zj!mE7O&enw>SZQ%nfR2AC(Nre6rRh)6_7u?3T9P{c7T7cs(Q^Fko31Z9E0W`B-1Zq{6hZkmv=@ z=(Jqlq(X1-l)f%n(FcYj7zQm@Vbdk<5_bctd;O?-7!C`8YT`dxr~AbN;=vMB4~g6S zs2&ZCYB&chuu^v)*fMe-WFpx67oIUeR*kl;NY>z7GQTl|A*{aidReo=z!m*Po3uHS{mHI~Cw!oG2kF_{m! zj@gj;n8#%jm)4MynFH6-Ag3~6yB_p?0GHwGH*q=`zI<-Gg9Vb8S(uidQxr^uAH}OS z5!Nvr&m&H{_>1_f_?!5<_=otXcuo8Zg-J-l5|OARNTMW34oQ|2$tk%cRnjE4qzjEC zL-I&rvd=tZ~8D7h9jj(=G!NHEf_nrVDsu?qqTYz7^ zX^UnSbF^v(pA*5Y;7@G=W#Ugwf}Kpi^gM5lf72nwn8HBY9hp2Msd3BJEnBp1n$)ye zs}{*klbW~mHiTY4l!U%93nDSeiC`EtOPqBa;u75Rv6FyxC{;xbrRq{bsd4xM!?pZ7 z8mXpP>shfkXxh_K9jPw)MyeO^v5aZBN;lK_Fy&38M9B#Z3~_I%8R%u0 z11p&2%>-``2b^!D?C4kE8&B=z-fC-#tRUFHf=PLh%k0gx5>*Qs?!<6MhEvR?Kvzra zKMx-i5T$hjKtk5pvtn2Cm%#V7kb@vHsl9ZI*g@(brAQq`NUs$bhA2oA^Jj*eGTf5k zwy=OI$S|p^)J^Ov^^kgkO~P<}h8tMRn&HOgFP5#*6y~mlrG=ZeY6=8}nG4~b3#La#c~8a2f zunjEZQVnSAJ-v735zu;vS8o4t(`l5z4Y%UX``+ND&eo!Ji4`$eF0B9zR{3Y79mDN| zXN2#*fJ+-$rkOP%O_OHLI$73@Pu`GTlwOk7NF4*y5xmZC0Vz{589w8d0PER|SC-KZ zue4TiZ(uZD(vSwF3sXRy7oiL&ZAjRN_MYP=%=J`yKmza$$-2Z7tvHK88{uS)lEIpt1AL=a6Wk;+Wf8o%Td`H)@MMzZiS>{5c}Jt?a~furzN4g zF?>72cQd@?1Xu*S(L>T6X)n!}-Vl3B#X#fz(jZW+el-9xpUZ#H(LFN3*O)yv+greJ zS8G4l#e|}V&L9=}VBiCk-Zq8)NnZB;0^em;o%iI z>Y{WBM*7Oy%rkr&!@bIG=eeK4Rvv%P<04&_zL&0)EQz0_GyWyzdCcbuUU;_vQ3?h{9e!W)=z6k{d7`cDw zCU`$K@*o1$=3o1~C(ibkTC7ZRIl>(gfNqo@-BgALmP0oQye`R!%`HjH(M=2~h#hf` zct=&~6ARt><#jwT+W-q)FkC>#XK=SIYEyysj=B!;|2P`>ff>T^&|qK!s?zoWHEqrJ z{h`%@qlqKYktBT@n)t&w*9H?mmaBk$&G!uDWVa`Ri~kLu?*;Pj{rvd7$A|I+?gMz= z>P_`4Q2~y&j&=b1Eq>TXFg!98>~{F9X>(50N*Je;qqC!nbUrlfqhP6(fxT0JakgAM zx+So|6+(A0Jci-)QYqvZ%B4_{_tr672zQJ`4IL0XnpUi$!tAp)GE?j|OQh_NGc09fxEDf%9L5hJPA7E6lF?ZNjiM0>!2bGOI zpw2M`-iL9^^nGC7HG=I`~I^U;oQ`6ed@YU4|(Cr8Hp?xisLCzEx zZ_MX@wTjcc*0Bx{Tkl6~BEw)C1hJ(bv6g;^+22C!RmW?N%_WF!b9nt+xjQssu<6V% zMXb!6mP4%UJl3;!9hM8R{`F9N(@_j4?)RfOiQ&niPz2k|$~yR4D8A!3C^(O6#;|IX( zs$cxfV)zalvmo))jQd}bZL@)IYD0^k-yFX?{&0*7C4OdutPT=C9iV7A16+97;MyAl z`+{^-0DA*2R(P2+znTv_g@V9F*RD+3@cGuMp#;xbsC(M~K#6f=Z-2q_>$d`6P1*?` zCk7rL8qjbRR;Mh=k|R}?{ZwEK-&vLluskg)SiY^MExE@jlnj`+9Q1KKKx z2rUCLloyR2dFDM}#sl#@?(%A{ZLNx7OH_ga7&7~3?l9rCj0?oJ7mw$H`IWH$!HuVm z4?VaWCb}n=;d^5?z6n=LoFWJubbR*{Vw*HJm{BSycR5bb!}pZxcKN2D z9fn-Xto58A$#ul1qtZ~4}_ ziN4u_IhpU+T9z_j$jz$UTy7z^l`t2BtS zlI=U;hGM|;!mscdDVsgSMaYp?*Zi?50VV7@%wzt=oi`ld0f@5g_|gnm0F|1ZatApD zXwk_}i$x6IABq-`xXk6JmBAH~2fNEXCJW?JdHwcB`Vqmf$1bYSikEN3x&8p0mr=i@*~88Xz8x z3QT^b%h6w-2EJ_D-C#Q#WQd@aF2d(b*tZ9YljS^cTL_B^C4#gf zMemd614S45Df$${PX|+!n|0u9Yi;`&TKV-x2*T`SS|=n&}U#i%MkRo0At%O zw}78u`;W!lIgw8c+CP<-Oakb_aX_jxO@-@)z_Z1hih*#Yqzx#_fV+O*;WcomL0PS1 z_r(dtgX951Rlee%lAi|hJnJXVa)ws~lLvGXkKQy&^4o;mh6?Qlke`#EmtT+zL(^v^ zFnbyL#O*KI^m%AU!2VubyM}fJRJtt3aLQVqI(ehKsnqAUQhwF;E|y*z4wiyH_GS5) z06)9vB$-ct>!u*H13@bY6r>sdLeOj2)TE@ed`N(V6g@Z?N8T>)uu5qBkwTDI{PpTtPHyrAwMq_d^*wHHx7rN{M*sj(MZT;o zC^;<6wkn^yEB`E=u^-vX{h_WAkjRi$IIVDu*IS14f8thlvp3;z3fE}PEa_u>lZwjr zrx1mrC8RaO`x)K`=i^L-IU2)HU*aSiTL9t9HWqs+vZ7dFPy56hp1clGX@0(xuV4k- zbXI;G4ve9}7!a6*F%H5QnZT#H*?HNyJS0BFN)l{SLKJ8Xr-fh$xj^f;O=3bEzpAeQ zDpMd;H?IiNU-L47HB&e)Rs^}sqp@fSwvjmm110+zzi^yyN||PG))!B5mE+? z%g*$cX#hbb9-M^+N1#EE;gGWq5CbceY1I%~b+B5!53M@G^zn|Y+*y9qfdAa8!ZOb! z!80k=GsoeXuJFvHJpL2}h|4^~v(XovdPx%Q-E+f zq=x%|A3_kdBQ%7#9Q5-MG|U<~-RH{<)vh~QqChwR+MPFD41Zif*(tr1KD3U~Ptf6& z;j;{%vkLGOb2q$~iN7m@P(x*iGPK0KN9r?D1u9ATP8sB2Qftf8k(3CZn?exg<1)nu z)p+qip!7f)p^Q{UDWlO^<#r`q8Kd;%g$K%5a@?PsX{Bf14Vl?taw|BwBZA@28UB>v zPXGry?SIVns|VsapZN>Xl<~?0CC7Y_;m>Mz@K-Jw#<1?*oXOrIm^*)zM#+avZD9S< zQjN6CN%rKH<%S}l95_3Ga$j@GU8qR8Y07k<*-Ss>E;4*6h;l(>u{{WXi!4mJQ<AG?^kY%1S*&@q=>yYIui!5IPfPS(Zh+mT*!1VzO*RWt*APxg z^PD4U1V4WXo^Qc#5dycykIVx_8A|Sa2kjtn1=>MIr3n=r2GDJCHstArY7MDdqGYv} zp!HXv@%@>aL5edJ#eWCZZErm%!*lJS6r_T}ErS?LgJ6xrC)0c_7%@K2VCe_u*;)SH zw$gh>xqFT=rS~$+-z%9Su!73pgFr@Lyi#QkDgt0}WR>2VTK+kRegvK?&4II@6Ke+U znctUtjAs@F9*eT#GR|aYQ$`YBHkRN7aI`$`8;z>gmxOTrS!L4KUHz&vZ|Bx#Co6;wwCu0dM~pD9n0ZAu^UW5~DYB1(?2(piG! z#<-fGN!!KVcr5xJf_T~a>-)I@yX`FOKAsWTU~ODlRDxHTzZRF#T5=OZY!;jJ|$PhdZeY~ z#BHP$ahr5Tp5okvuE1VLlG@`A5YZ{7jc7~U34dV@&Y&$Qy9Sng9SKzi6CoB3dnRzez=oAO zny#7Y-1Ih}l&BbLLh6}adBRP16AX+cR;=OWzVm;Z2R1>LFNETlV|?eDZGsa{g45A}QOBB7AZ-e=z^#a|m0Te}K7kd@ zYika$6(gi&LP9aO=s|t}1qPe*pn?FRK{d_hR+1Yy6Twnh%1C3g2H#V{zM-Dk*@~S_ zhI)S}%kN?KzhPdd^Bw0Q=ey4LXdUMf=TYbTlG}M)XyiO0d7LMmrx=N3B#M!n8EFJs ziIIkk#4rLxT+2voN%A9!Hu&}d>>6H3*$fg9xqGfTYyp!YnlsCvSzmD<9XRC?vO%0@ z{)bW^t(A&;I6pIMtyFp{lgU-Ce_>KCz_Atha^Uut;4*@v8tTzTa9qVXevm?SPPDn^ zJ%JWiOgJQFn`v4*Sboxl<#a4L^ukWAasK4|nV$;aKeAz^^Cx>Rd=i}|-w3mvzXp;j zoxeGMCs&<+!rxymM6SYS8A>=aAW4Rin;1zj=heLRyA$Jm=f z=MGPP;KryjX%O}f#U;8V03>j6l}iky@SQ@Z`I!}Efg#6TaK47i1%Da`#{!}j z2jUAkbH{hDw+aRVJUD=Va+2+Vwod(MUXnB93g>kC$eaV|y;eJG@@+D~`4W~p!AeiH zuk$n+NNV-xCb?oa561;MOA zic|-wfg@A;#E~ud#IAx5PU)%xx#eB?y8!VP98R_gm*Aw3t4dGtBnZ+DkadwNq;ds= z!$JJ^1_9d^orCyPDkz2a%99|pB@pRn!KKsyyq)!gOC$kCOMp7jR0M84-am-`I%03g z92iGiz!{R^&|f&dN$d@$HYLE3FjwJdr8?j*-A3y`nVAoYU7>GKBR<|2*(O2)F7!DD z*8qi;DSaw!gZiAV(iul8^n5~@>|BTv#HRrEI#Nd=6_i3vk|18?<3cZ~@Hn7{<;mwfKK zXQ@Ew4{Q}+z9s*PrGmc4V}adDEfqvsi!QKH3LWhnnNS)9=gN{~h-g3Bz(R_SL>G{3P-6j(dJbU9$C@Z)#ESb3P6D%^DW8@3AP zto%^6N{OWc2FfyE*tfw}0h8srw#rP)T)B>|!dHc5tNajTt$>|EfLoUaSu3QbZLrwZ zil2AYkv8wDqtwxAntHpMj+Uw!YNqN{$EsQCI5k@xuTD^N)Lb=B^{M&lM72OIREyL} z>ST3_I#r#fPFH8BGu2t@9qMe=RGE6GI!B$W-lg8H-lNV_?^W+p=c^0Uh3X>pe)R$M zLG>Z^VRfQVK5^_Y5GJ)wS}o>Wh%AF3azr`3Ks^6)X)$i3S>JRFV3|w5KIfD%+>?KJnz#Ckf zqzxl&8EMBzdq!?yA^@(Ms8!I7bCqH>BC50 zM*1<*pOFEKq%ty)kwJ_MW@HE>Lm3&y$Z$qRFalFHijmQbq%m?kBk7EcVI+f*Oh&wn zjAbN?k#USPiukw+MLl#wNjJjTf5j6A^zn9)x%vW$_Z7!l6U}PmDs~CBX zk>?qCfsxgWyvWE)jI3b~ zM#+P@t=A|i7}a{^f^2|leMl?g!O_g9}H~jg>r{7 zylmC2z=O?$xR+-e@J{%{K@eb$C+HGS@0Pl*J&0=%;AUG z@@ADRz2Gwq_}S#VX=>%NGLY2tpD!olfL6Am%hap=-OAs;K}&whF>e-L$prcf4($Wg zdBd1;f-q=>mQC|QcAY&uaveqW-;#UHG1Ehnz&_g7CZ#RQxP0TH$p=De66j>Ek?Pqe z#qnmI&`YQ^?SwZ9N0n-p(qId37~>b9_MoLgv>rcB5>%DPF%SpeSn&Th8HzeT-6?_Bk0;cF-zD)IOwHiT z8vhcg#D)mgjHv#I5*wybtMS29v43}i&sQDj&&N|3L-bqEGBaQ~@$w$NtjhEb-~CDm zKJhFl-d%WTjw)N~!W(wEF`xYJnHs|@2c{xZ1Xf3YooyogZ|8|}8s7HzdD_kf{NE_E zx4EFwElOE|-sQ#^1jzjFmKr`II%tIiZ81Zi*U!<6s$58ilD4C6jBJ40{=1SlIj;39 zUn2inMkVib(2Xe)nEwB4>lysfN_&;*^MH$l}snQ)$Nu9d&n_?WY zFreXeTpR&2p>gGs^E&J4Z&e?1C5S!iyUu4ck4*}1n%pE zYlFQ7Jg+h*ArPal6xYDo3+zFIItNE$c;y^bcC&e%omIfHvr*>$%F+YWI9nN&?^6SN z$%4wsZ^Qrpex(biME@J138&HgM~^DtK-LJYUrUW(ZnKv+)c6j+^w3YVAaY+!}ZU= zEHhfuN=GaGi8MZ1WaXok-vyVEvjMT@Gltw)d;NF$X=_xD@;@aM2Uv1+5`U~$i-dnn1F}RifZRdM&&?@oN^J8oH?-oP;8vh3kuj2-`gO{WI=V@AYNu#9U{df_b zRZGMpd6n)bt{(!tIW!~vPnfusm~f?zy?!@dP5p@U#U<1Mr5Thc>N6(am=FJdvWy$u7~Ox}UltX5 zzAB3~cB_1Sm9+~?x%S_8{3@5il|;sae_@*Mi^IG73bLm|VP~0b;opeh{5M5V8&obN z0?YDWiLZJ5Moh@Ks}=sNoX&wAH2?AIGPZ4Ve~O_7sbPuF1inCe7*zF~QTjNRNK^3% z>5?*?G=qGU@lY94i0+meICnWBpys8c+*r(pY}XV>^zH=7H!~oWdpEg?CgTfGuyzal zd~`cF_G=WnB4r911c(_)hI4{jK(+XM@D<$!XJzG}Sx`CDO6&k>(u+`ke5#kWm=)p(oTF6S^!l&v(Y^cBtiiLPx(ee;UG9Tln)M_&lMh*2hvXRd~~mL z2De51GzX7GQ+SQtIV%&lIZva8QkqM=&}I+AZ}41J$mMhJ z!%TVh=|HQRrY+P6K>-fr+(MDh8M6n&kVgyY<@{iK$R|H-4&a4KP0S%s*7GLAI;5_` zLC26g{tm-dolreq&(o3-jbX_A6HT4r0}TJh3!PT+gQy{`&@lI!DLmaBZXDwo>9rx( z)%*lfT@x9OEbz}6hDy6J3`2(S9SrZXPHlqnoE28Oy2NvXC-OwxpR6+gH}XQOI9`Bt z&8*9a%J6qQGkqFQJcqpE*BGV@L&BoRN3zT_ga{c z#~ES9TM7CAc@z{f!72Gx{`*^y-TxCK@Cz5_Rx^{~cg^M|JNF7o`#JaX?ibvv-7mUda<6f(b+2>3>|XDF#l6A3(Y?w2s{1wf zX7?8NR`=`fZSL*v9qyg(UGClPJ?_2kH{5T!i{1O&``riJ2i$+~}9z9GC*CX^uJxY((WAs?PiXNxO>s9q?dUZWPze%s5 z*VJq2we>oBUA>-OUvHo{)Nj@s>5cU!dZM1BC+ki1W_okIh2BzcrMK4G=xz0OdVBpA z{Z_q$o}zcuJL#SEE_zqJo8DdTq4(5p(|hT?^*(xEMh-FZE+g+Ta+r}Lj2va;eMXMK zPl_>ef{_mxImyT=Mm}WZBSua$@-ZW47&*(xIYvHVp-3Mk5%FWHgG=Xhvfg zjb*e7qj8MJGg_6=YK&HAG=b5Z7_Gr*O-5@mTAR^2jMine9;5XcZNO+lMsH@c5u=S6 zZNg|Gqe+Y=Guo8VW{fsxv<0Ir8EwUAYew5J+LqCFjJ9X=7DjJnv;(6ljCN$S6Qi9O z?ZRkRM!PZEozWhQ_GI)nMtd>Zo6$au_GPpmqx~5jz-TI?0~sB}=wL>NFgldcVT=xE zbOfU#86CywXhzc*y`9l?M#nIk!DuF=gqqxpn^8GVA$rHnqw z=rTs1V)SW7pJDV_Mwc_Xg3*Tc-w<>Jh*`e z7x1eaJpdYk-(z^uc*}zq@=IMkB-(@XJ$Ner_9}l_YTV7=pi?}rng_pZtnlEG{L14V z67IqEjW+zt9uH1806*c8O&)xQ2S3O^digUE#*ZG{!b7SWG5p%={AD%2vCD%;^Dnn~ zu<60G_{UTaY0q!P@-JB)Txc-kkO!~eU-x?OWd8mde*yY6DWl{8Mj3^pGkZd>{Yv7=L-vLsSobh<|*}gQxKK#{A_K4{qtf6Fhj82U~qU&98Rz z;CuM{dj7JFzYOr;`@;}*XL(412TwGrdT=cm?w%7K0yH*^Wgc>?F~=C`!BsuP?ZJ#c zl+9muaHwkVPdoWbKM#g6H4nbmL!vx*48PXh0P?Rh?)PAihs1mEMx!;q?BFlEJtWM7 zSMpB6_<;L8cqYHTmcP90!HqolP7ksA-@q@8H6An`;jJyYTUaD{u+@4qzt5R;o?%#% zyv}Il!Hf9SL=VwDq&ok&ioc9A-u2+y`KMkUJk5h09{fE225<_%-kEnVxQwlQ1Wl#1N95GrLEl2g}*w|;a z%!HOEMly;;HBdvyPHuy4bu4qNaC|Gva-3XWZYy__`^e+vsq$U&0{Kz-S@~sok9$|4{D2=tQw$|ciBO`IDoRx)L8-0OQyM6ZltiVe(p+h!q`=8AeU<*oa3xb2s}w1- z;5d>8l@-d1%0^|oQmh=IlKmlMi&4Oh4; z$`$L1cU5=QaMgCzb2W4|b|tx*xmvo~xZ1lqxH`GIx_Y>Jx%#>WxCXg~x<!5YiI%~bO(OQ-^U7M{f&=zSAXb)+tv~}86 zZKrlYyR7}D{o%%L>K5G&x8ioW4R@G3!d=sy?7r2V;_l?`;_l<_=N{x9;vNRp*<7&6 z=7T+Uzuy*n3@os1U^(ptt7#utOozZuIsz8ad9ZSR2U|u3dnE?!l4P(tT7bpT2JDI6 zdSAW2o~n=3y?T~jpcm3Yx*{QhrUaHLqDp2rk~d@ z=$G`b^dI$~4BhY;;YOqpZNwUJMpdJ_ag$NgsBP3WIvZV$?nY0em(kxyH3k`DjeCp* z#ve=bp z?fJy>h3BH@OV8JyZ#_SFu6lkBlf#^0O~aapwFzq%c1u`?u#RD!!a9fb2)ivTKWuW? z)Ua7$v%^@}oUpsX?h9KGwkT{_*wbOV!-~W9haC)iJM2){(XeA-C&E4pm&2XmdblS% zJUlWyIy^qST6jWu!|;LOgTqIJj|xud2v z(JCT6A|qm4#Q2Duh`fmWh=~ye5mO?jMLZGlbi}g}D%$A0n$Z3%?B3DK}7x_};+Q^q9Uy0lp`D*0rk=rA8MixgNi##8BA@Wk>SCQXD{uKF3 zloI8N(xUVzPgHnRWK?uiY*d@5Tcc8K4^2s!vqEs6kOfqNYa8ikcn8qUJ>1 z6?I?Kf~ZANOQV)W?TmUOsyJ$Y)WN8?qYg(MjXD-}Hd>B$M(fd@=cO zV$7I3W9G)(9Wy^>Va)w8kH)Nu*$}fS=CznDF?(X(h}jo&Am&ocw=tJvuEhKp^Ha?4 zF@MJV73+?z5?ehsF*Z52S!|2gRtn) z@m49QvarhIRaR8lTjjkfr>k77awSfUi;1fn*DmgsxRkg~ab4oN#r250Ev|Q5-?*W1 z>2YJ@d~p-w3gaflO^%x#$KvM1&5c_dw>hpj?!CBEai7F}9rtbA<+v+xKgRtW_gmZ_ zaeu|*cp+YouNU7ezD0bi__p!w<8O^mi60-I6Q38K|9_e~%l9S{2i)Qg#kEZuX&Se- zY11Z6leTG7kIT*^Wu}u%DDG|rwphsw84C`jz~b(DC~{EhgR@vr0G#=npM6#qFvnV?N5NU$da z6NV*BN|=&RlQ2D@Hepu6+=NKN`~)(ANm!7uAz^dEwuCbYR}&s5yh!-UYQk#9YRhWR zieq(RWwI5JnIjf$vp0$Iui?y5eJL>`K1?vmDDLanc zi_Kzl*gSR;JDDwFOV~=bkzL5Pvh8dq+t2RH9>^ZWp2)6YN7#$lE7_~qTiN^AN7<*? z_t`JmUlRYPIwv+uY?0V1u}xy9L|&pYQJt8Un4M@#1QUlO)+9y}sl0r{;q(@1AB>kE6H0f>9S3z?@OF?TvXMs>46KDjvf)asOP$>uth6*MK zW(yVy77LaNmJ8|yTLni2#|0+^rv+yPe+!-qUJ70d-U>blJ_$Z2w@Z#o?ws5$xkqyE zWF{)8ez@^Wux*%i>4k_u`M@f5czJ-z3c>-6TCEy(E1k36eC4SyCt| zl9WiwB-N7sl7W)JlA)3jl2MW|k~#?{iApF5BUvcfE_p3^EBPe(CiyP;DQzTeB5fvZ zA#EjXBW)+`A>~O^r5b65G*haRdZj)oAoWWtrLYu{hNP3FyQO=jhor}(C#0vOXQbz( z7o?Y@SESdZH>A&`-(~G(ak5UbF0yViwJb%JCQFxTWja~5EJx;%VY2x$TDC~GM7B(} zLbg)2O14I}R<>TYQFdSUS>8(CM&3@|LEcd=lgs5wxmunoPnT=uS#pQmE%(Vmd8Hhd z2jvsxJLS9O2joZO$K)sEr{rhk=j0dUm*iLE*W~XN%@y4hJr#Wv2@1ACr_d`53X>vF zQJ}CWiWOCgMT#Ygdc_*WTE%+BM#UDzHpLFbF2x?jKE+eTdu3B)b7d=KTV;EtSSeA; zl`3V5QlrdJW-9H}4Ofj+jZ;llO;t@(%}~u$%~92Wc9-tni9-YLQ}sh?86 zr2d=wGp%u2v$U3JZPMb>I;V9@Q>GcyENQkhN18XSE{#dskhVE(TiTAa-D&&Mj-{PQ zJDqke?Wd-@CP^dJ2c{@(|e`Ir?b;J>Adu$bYZ$UeM$PZ z^d0HD()XtCPd}Z0CH+DA^Nf}mtuoqXbjawK(IumMM$ZgYhAZQjjLHl+Bbb3^^vmd< zF(_k5#!qb@ZM>GPp6Bb6e()%-xy$ zG7n^4&-|SEJ*#n6v#gd`t+U!@wa@C9H7{#**5<5TS(mbIXWh+un)N*ERo2_A4_W`{ z;&i=qi8`51sY}smbQ!uVUAC@3XVDewDs*05NY`ICRySWq>KNTZ-D2G`UA=C-Zli9q zZjWxC?wszT?uzc3?xyaJ?w;;}?y>GaeItESeG7dneOrBdeVjg7U#W-mA$@=SK>c9- zQ2hw~X#H6Ic>P5EWIdzbq2H+BBMowB=TchByb-8(xW zo1I;oy)wHYdrkJb>k8-}{{AcWG>|(PnfS-A11g zHX_E6#xch6#!1Gh#_7gd<7{J{ajkKkaiejIal3JsagTAo@wzF_)XCJ{)W?)yVw*T7 zzA4!xGD%D_lfsm3`o#p80w&0Wm{3!-X`ty>(`wUt(-zZq(=O8<(>~Jy)8X8b+;DEc z+yS|RbBE=Q%pILOE_Z(J+1&HFS8{LW-p;+7dq4M4?vvcVa-Zcs&wZJflxNDz%`@j& z@=Ef`^Q?J}y#9GB^H$}p%iEl{HE(;~&b&Q&`|}Rw9nL$FcPzhEep0?5Uz9J+SLCbn zQ}fgF%kyjVXXVe!kLHv4bbc&QU`JDVlu zDs#|WZ60hMY94MLX&z%9Z=PtLY@TYKX5MeUZN6i^Z+>KcVt#6VZhlqJq9D0ITA(UO zEl4lW7GxFZ3vvpM6g(_=RPdzWX~FY?R|RhiJ`}bsloqNAHHF$jU14@%PNAtVzi>z4 zg~Gdqp9;Se{#*Fd(#X=((!vsF>163*iMOyU5{t~Dw4_)x7Oh2R@mhQq&{AoEEQkfQ z^t04h>Md(58!VeG+blaQyDWPw`-=*TkfLBwxTt^8z@i~V!;3~1%`4hew7qCg(f*=C zMZXsvEjnIws#siHP+VACTwGRMQEV@E6?=*Y7h}a_@q*&T#mkCU6t65^Rs35?eu=*X zDH&Tbp=5GNP093<+7hf}e#zpJr6tQtR+g+TSzB_lb3r2^;`Q|Ve3@ud@Et4tqZJ+tb43ytmmv3tyiqqtZ!|NZB1=0Y^`l= zZQX6jHjzzgQ`l5CovqYXZnN1OHkWOXZL)2uZMv=2Hp@oZR@v6r*4Z}LHrWo^F50fx zuG?(XDer0X9s5|XIE!;XD_GR zsdA<|HBPNl=X5z|JLfua=K|+a=W^#t=W6F#=LY8{=N9KS=Wgd|=UL|k=S}Br=M(2E z=Nso+S1VU9SGjXT4g<@UI}ZonOILvF+!a`$sj zbMJQVbsu$~b6<8}b>DE`cHeV9bU$`KasTCh=l{)88}DGsH91Gu>0`ndO=5S?pQnsrNK^R(p1P_IVC^4ttJxu6k~GZhP)} z?t9*N-g`cIK6}1;n|ix?dw6?$qkZFi6Md6?HNL2i^2K}$eM@|sd|Q1xe7k&meP?|ae3yM!eb;?Y zeb0Tbd~ba3egFD?0t!F{qyid13uFO$AO|o3`9J|+0g8cApaQS~PQU~F0)Rjz00Th) z1^NN~fq}qaU>GnG7!8aC#siapDL@S{9jFCn0ds)}FdrZQ3Wx!VfF;0kpdM%d)&T2( z4ZtQ~E3gCD4eSFB0>1-Cf#bj_;4E+fxC~qaZUDD{yTE73;y&s_BZpl^tbcJ`8)f& z`W5~Xztivb1AffE(7)2Z%D>6K)xX2P%fHuu)PLN6$$!Ov-G9q}$A8cNm;agnh5uEc zd7wj}SAZMH4U`5d0``D2;15&=;6N~d2Brk+0#smmV13|n;9B5j;CA4Tz@LFS zmCY+VRCcWFQrWFiQkhp-TIs8VD+gB2sKhFdS6-;RS$VtiUge9*kCk8hHtE|O(m)wd zCZvN5kP*s-%updz43$C^kPUJ`ZpaJ$0{Nl7P!$w{`auJrLC_Fr7&HPJ1&x8mK@*@! z&=hDIGy|%IW<6J%#>;UO=y)H_$uiBlH>i27QNq!j0f2a5K0C z+!}5Rw}<24PH-2v8{7l#4JW{Cm;>|RBsdus!4g;oD_|9z3TxmDI1ARpIj{-NhYR6i zxD>8{?XVMe!#)`NUnK#85jX_*gZsmS;34oZcqBX;9t)3$C&E+U8hAQf3(tb*z;!SN zM`04C;TXISUJ0+Rx>I$p>S5L6sz0lqR{dS|vg&o!yQ&XWpQ=7reXaUl^%H4~G(%b< zt&w&}9MT!-igZVMBE6A#gpF_!J|aMbhy;-#3PgpZA{s=C=nw;9L~;=`VnK?LGNb~r zAx^}Nco6^zAP|BeC{m3KL6krBvfWE?UPnT$+DrXe$snaFHpE)qd-B#KZ7gDgN6 zBg>F_qybrt{D!PYHX@smZOBe!H?kKwfE+@8M~)&VkkiOH;?$XDb$@?Wq?uz9dmuuZUiuw$@GuzRpquuqT`$#ybwNYW6wC`21TDdmV0q9MbOc>NPq1&WDnx~1p+%vkp%tNq(CX0I z(1y_F(6-Rd(4Nr#(4o+g(DBfz(Am(1(B;sz(9O`D(EZS((38;9(DTr%(A&_5&_AKC zq3@yp&?abev=!PG?SOVdyP`eN-e>}vi1JVYDng~G0#&1FXa<^vW}`+l4=q58&{DJl zwWBW7ivnl>g-`@V(Q0%cIs_etjzq_xPYe4CMm1H?d~o>WQZ&-k;QbQs+smN$N@FNrNVhn^ZsP z!T)|ee^05Ka&4+@>ZlrNO->C`Go*&Bxl;3BTC-`YY36C4r)N*6rZ1j;Vn(AGOJ-dE zb;z%=U-$od_SYM=9c!y==gd^hoIG>x%*``z&wM&dJu7?Gm|2@<{V}`M?5=Z~&Z(R; zZ*Jn;g1KN_yE?e8wr*qH-nyf8C+betU8=hpnI9n|Ok`nXab#JfKGG0b6ImD85ZN5r z7TFou6WJd*6gd((9yt{`6FC>T7`Ys|7P%R@9k~~I5P2MV68S6gcjQInRpd?NedJ^0 zbL4B}d*nZ?G1d%gfwjikVR2YztSi<7>y0H~Y>b2Pv1CkyNiaF4#8R*{ECb8J^q2uN zVtH5rX2D9ZGR%rOFgNDIKrDdu#b7Lmg|TXEAT}5qijBZVVPmlg*ko)fHXZvFn~BZF z>M#t8ViXp`7GX=V6<7nd23v=1z&2r9u^rfMY%g{IJB%H{j$tRUGuV0TB6bD4j@`uW zVE3^{*c0q2_8fbOy}{mLAFB3wAA^s>C*o7^8hi#m6Q7OO;TRspDLjTR#Fya9@Or!fUxTm3H{hG`t@w6)7rqDI zj~~Pj<45pg_(}W>eh$BgU&im?_oIuVOQS2I4be5xb(N`$yU_>H$I(Bd&!R7)ucPmxAETe6-=aT=MnqGh1<{&lN5m1GiEczs zq7T6$I0TyjCdvpa;UL_Ej{u2E0w#h)nCMRoB8Czp zh|$D2Vj?kxm`40c%p&Fz5n?_;5)84BSVAl(RuZd;wZsNuGqH`>N$er^6NiW+#Bt&j zahAA1Tqdp&H;FsMec}=Egm_9kCteY6i4Vj-#8=`w@gLcQY)-Z!+mao~PGncI2icoU zAQMR*DIi6plvI#vGL6h2v&d}HNam3RWD!|PR*-hmMS4kq43H3skSJMA4kU+=!^u(P zSaJe6nXDmakTc0SWIefx{Eb{sZX&mmJILMSKJp;>J9&&eNuD9k zlb6V=rEnL+TIeFX|cf zf_h7Rp#Gu0Qa|aYbaT259Y=SjyV5=Ac$!UfX+ABYrL>$*p*6IY&Zcwee7cY>rb}rX z?WO@bKv&Trx*t7=9!ig*$J3MODRd1zgPu*-(er7VUO+FUSJ12J_4F2cC%un8Odp|- z)2Hb3^cDI#eT%+NKcfGlU(m1Vcl1a4GyR=u%rs+KGaZ;NOn0Ua!(uoLj}b5uM$V|1 z6h^~jFqw>=$zgJtLZ+0lF>VH60u00;49Zk9gPEbs2xb&BmYKjzW~MT~GIN-D49-x@ zLS_k5&#YnAF&mjJ%uZ$>bAUO-9Ai#17nsY;4dyQMi1~wg#yn?UG4GjA%opZItVyg{ ztYxfSEH2hL)-BdM#*Xo0qL@6UifLk5v7A_L%p9}CN@C?PN6a1b#ei5K);Cra3&jS< khQ@})#>ZyIBC+MMRk7`j{x40M{J-t^zc9=HPi*J^0TTn0J^%m! literal 46478 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 diff --git a/hw/xquartz/bundle/Resources/no.lproj/locversion.plist b/hw/xquartz/bundle/Resources/no.lproj/locversion.plist index e4d6608b9..417e57c02 100644 --- a/hw/xquartz/bundle/Resources/no.lproj/locversion.plist +++ b/hw/xquartz/bundle/Resources/no.lproj/locversion.plist @@ -3,12 +3,12 @@ LprojCompatibleVersion - 93 + 97 LprojLocale no LprojRevisionLevel 1 LprojVersion - 93 + 97 diff --git a/hw/xquartz/bundle/Resources/no.lproj/main.nib/designable.nib b/hw/xquartz/bundle/Resources/no.lproj/main.nib/designable.nib index 73faf775e..8d1b79128 100644 --- a/hw/xquartz/bundle/Resources/no.lproj/main.nib/designable.nib +++ b/hw/xquartz/bundle/Resources/no.lproj/main.nib/designable.nib @@ -1,33 +1,21 @@ - + - 1050 + 1040 11A79a - 732 + 784 1059 478.00 com.apple.InterfaceBuilder.CocoaPlugin - 732 + 784 - - YES - - - YES + + com.apple.InterfaceBuilder.CocoaPlugin - - - YES - - YES - - - YES - - - - YES + + + NSApplication @@ -41,8 +29,7 @@ MainMenu - - YES + X11 @@ -60,8 +47,7 @@ submenuAction: X11 - - YES + Om X11 @@ -101,9 +87,7 @@ submenuAction: Tjenester - - YES - + _NSServicesMenu @@ -187,7 +171,7 @@ - + _NSAppleMenu @@ -202,8 +186,7 @@ submenuAction: Programmer - - YES + YES @@ -224,7 +207,7 @@ - + @@ -238,8 +221,7 @@ submenuAction: Rediger - - YES + Kopier @@ -249,7 +231,7 @@ - + @@ -263,8 +245,7 @@ submenuAction: Vindu - - YES + Lukk @@ -341,7 +322,7 @@ - + _NSWindowsMenu @@ -356,8 +337,7 @@ submenuAction: Hjelp - - YES + X11-hjelp @@ -367,10 +347,10 @@ - + - + _NSMainMenu

@@ -386,20 +366,19 @@ View - {1.7976931348623157e+308, 1.7976931348623157e+308} + {3.4028235e+38, 3.4028235e+38} {320, 240} - + 256 - - YES + 256 {{13, 10}, {458, 292}} - - YES + + 1 @@ -407,13 +386,13 @@ 256 - - YES + 256 {{18, 210}, {402, 18}} + YES 67239424 @@ -427,7 +406,7 @@ 1211912703 2 - + NSImage NSSwitch @@ -443,8 +422,9 @@ 256 - {{36, 49}, {385, 28}} + {{36, 60}, {385, 28}} + YES 67239424 @@ -463,7 +443,7 @@ controlColor 3 - MC42NjY2NjY2NjY3AA + MC42NjY2NjY2ODY1AA @@ -482,6 +462,7 @@ 256 {{36, 162}, {385, 42}} + YES 67239424 @@ -498,8 +479,9 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 256 - {{18, 83}, {402, 18}} + {{18, 94}, {402, 18}} + YES 67239424 @@ -509,7 +491,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 1211912703 2 - + @@ -520,8 +502,9 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 256 - {{36, 112}, {385, 28}} + {{36, 118}, {385, 28}} + YES 67239424 @@ -537,8 +520,9 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 256 - {{18, 146}, {402, 18}} + {{18, 152}, {402, 18}} + YES 67239424 @@ -548,7 +532,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 1211912703 2 - + @@ -556,9 +540,50 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 25 - + + + 256 + {{36, -1}, {385, 31}} + + + YES + + 67239424 + 4194304 + Når dette er aktivert, sender Tilvalg-tastene Alt_L og Alt_R X11-nøkkelsymboler i stedet for Mode_switch. + + + + + + + + + 256 + {{18, 36}, {402, 18}} + + + YES + + 67239424 + 0 + Tilvalg-tastene sender Alt_L og Alt_R + + + 1211912703 + 2 + + + + + 200 + 25 + + + {{10, 33}, {438, 246}} + Inndata @@ -571,8 +596,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 256 - - YES + 256 @@ -587,7 +611,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 1211912703 2 - + @@ -615,7 +639,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 256 - {{74, 202}, {128, 26}} + {{68, 202}, {134, 26}} YES @@ -654,8 +678,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo OtherViews - - YES + @@ -693,7 +716,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 24 - + 3 YES @@ -704,13 +727,13 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 256 - {{17, 205}, {55, 20}} + {{17, 208}, {49, 17}} YES 67239424 4194304 - RmFyZ2VyOgo + Farger: @@ -749,7 +772,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 1211912703 2 - + @@ -771,7 +794,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 1211912703 2 - + @@ -796,7 +819,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo - + {{10, 33}, {438, 246}} Utdata @@ -810,8 +833,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 256 - - YES + 256 @@ -826,7 +848,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 1211912703 2 - + @@ -864,7 +886,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 1211912703 2 - + @@ -886,7 +908,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 1211912703 2 - + @@ -908,7 +930,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 1211912703 2 - + @@ -930,7 +952,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 1211912703 2 - + @@ -970,7 +992,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo - + {{10, 33}, {438, 246}} Utklipp @@ -984,8 +1006,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 256 - - YES + 256 @@ -1000,7 +1021,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 1211912703 2 - + @@ -1038,7 +1059,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 1211912703 2 - + @@ -1076,7 +1097,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 1211912703 2 - + @@ -1100,7 +1121,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo - + {{10, 33}, {438, 246}} Vinduer @@ -1111,8 +1132,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 256 - - YES + 256 @@ -1127,7 +1147,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 1211912703 2 - + @@ -1149,7 +1169,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 1211912703 2 - + @@ -1208,30 +1228,31 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo - + {{10, 33}, {438, 246}} Sikkerhet - + 0 YES YES - - YES + - + - + {484, 308} + + {{0, 0}, {1280, 938}} {320, 262} - {1.7976931348623157e+308, 1.7976931348623157e+308} + {3.4028235e+38, 3.4028235e+38} x11_prefs @@ -1244,13 +1265,12 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo View - {1.7976931348623157e+308, 1.7976931348623157e+308} + {3.4028235e+38, 3.4028235e+38} {320, 240} 256 - - YES + 265 @@ -1304,13 +1324,11 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 274 - - YES + 2304 - - YES + 256 @@ -1330,8 +1348,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo {{302, 0}, {16, 17}} - - YES + 121.73100280761719 62.730998992919922 @@ -1343,7 +1360,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 3 - MC4zMzMzMzI5OQA + MC4zMzMzMzI5ODU2AA 6 @@ -1439,7 +1456,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo YES - + 3 2 @@ -1462,7 +1479,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo YES 0 - + {{1, 17}, {301, 198}} @@ -1477,7 +1494,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo _doScroller: - 0.99492380000000002 + 0.99492377042770386 @@ -1487,15 +1504,14 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 1 _doScroller: - 0.68852460000000004 + 0.68852460384368896 2304 - - YES + - + {{1, 0}, {301, 17}} @@ -1504,7 +1520,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 4 - + {{20, 20}, {318, 231}} @@ -1513,7 +1529,6 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo - QSAAAEEgAABBmAAAQZgAAA @@ -1539,18 +1554,17 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 25 - + {485, 271} {{0, 0}, {1280, 938}} {320, 262} - {1.7976931348623157e+308, 1.7976931348623157e+308} + {3.4028235e+38, 3.4028235e+38} x11_apps Meny - - YES + YES @@ -1573,8 +1587,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo submenuAction: Programmer - - YES + YES @@ -1595,16 +1608,15 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo - + - + - + - - YES + copy: @@ -2149,13 +2161,28 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 300475 - + + + prefs_changed: + + + + 300480 + + + + option_sends_alt + + + + 300481 + + - - YES + 0 - + @@ -2180,31 +2207,28 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 29 - - YES + - + MainMenu 19 - - YES + - + 24 - - YES + @@ -2213,7 +2237,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo - + @@ -2259,17 +2283,15 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 56 - - YES + - + 57 - - YES + @@ -2282,7 +2304,7 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo - + @@ -2298,10 +2320,9 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 131 - - YES + - + @@ -2357,19 +2378,17 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 163 - - YES + - + 169 - - YES + - + @@ -2380,20 +2399,18 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 269 - - YES + - + 270 - - YES + - + @@ -2409,19 +2426,17 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 419 - - YES + - + 420 - - YES + - + @@ -2438,126 +2453,115 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 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 + @@ -2566,169 +2570,152 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo - + 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 @@ -2740,20 +2727,18 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 526 - - YES + - + 527 - - YES + - + @@ -2809,10 +2794,9 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 100382 - - YES + - + @@ -2863,13 +2847,12 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 380 - - YES + - + @@ -2895,13 +2878,12 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 295 - - YES + - + @@ -2922,21 +2904,19 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 296 - - YES + - + 535 - - YES + - + @@ -2947,10 +2927,9 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 298 - - YES + - + @@ -2961,10 +2940,9 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 297 - - YES + - + @@ -2975,10 +2953,9 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 310 - - YES + - + @@ -2989,10 +2966,9 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 292 - - YES + - + @@ -3003,10 +2979,9 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 293 - - YES + - + @@ -3017,42 +2992,38 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 300337 - - YES + - + 300338 - - YES + - + 300358 - - YES + - + 300359 - - YES + - + @@ -3068,10 +3039,9 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 300362 - - YES + - + @@ -3082,10 +3052,9 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 300364 - - YES + - + @@ -3096,10 +3065,9 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 300368 - - YES + - + @@ -3110,10 +3078,9 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 300370 - - YES + - + @@ -3124,17 +3091,15 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 300421 - - YES + - + 300422 - - YES + @@ -3143,25 +3108,23 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo - + 300423 - - YES + - + 300424 - - YES + - + @@ -3177,10 +3140,9 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 300447 - - YES + - + @@ -3191,10 +3153,9 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 300451 - - YES + - + @@ -3205,10 +3166,9 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 300453 - - YES + - + @@ -3219,10 +3179,9 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 300455 - - YES + - + @@ -3233,10 +3192,9 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 300457 - - YES + - + @@ -3247,10 +3205,9 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 300459 - - YES + - + @@ -3261,10 +3218,9 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo 300472 - - YES + - + @@ -3272,604 +3228,338 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo - - - - YES - - YES - -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.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.IBPluginDependency - 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.IBPluginDependency - 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 - - {{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}} - {{437, 749}, {484, 308}} - com.apple.InterfaceBuilder.CocoaPlugin - {{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}} - 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 - - {{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 - + + 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 + IBBuiltInLabel-Red + 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, 548}, {484, 308}} + com.apple.InterfaceBuilder.CocoaPlugin + {{507, 548}, {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}, {485, 271}} + com.apple.InterfaceBuilder.CocoaPlugin + + + {{68, 585}, {485, 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 + + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + 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 - - + - 300475 + 300481 - - YES + FirstResponder NSObject @@ -3894,19 +3584,21 @@ IMOlIGFrdGl2ZXJlIGRlbiBtaWR0cmUgZWxsZXIgaMO4eXJlIG11c2VrbmFwcGVuLgo - + 0 + IBCocoaFramework com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - + YES ../X11.xcodeproj 3 + + {9, 8} + {7, 2} + {15, 15} + diff --git a/hw/xquartz/bundle/Resources/no.lproj/main.nib/keyedobjects.nib b/hw/xquartz/bundle/Resources/no.lproj/main.nib/keyedobjects.nib index 30933f438b8104b6ee50b96adb6a8993a4c10f4b..a287eabf8f460418481a1f679e6d1d2b93389a14 100644 GIT binary patch literal 51758 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�A5Yy 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 ZrhVjpijx1*x%2;RpWOf3|KIJu{6Eo%qmKXp literal 50084 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

u3kn5#l9?l9q4qur)y`D*-t7Ax1j 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 LprojCompatibleVersion - 93 + 97 LprojLocale pl LprojRevisionLevel 1 LprojVersion - 93 + 97 diff --git a/hw/xquartz/bundle/Resources/pl.lproj/main.nib/designable.nib b/hw/xquartz/bundle/Resources/pl.lproj/main.nib/designable.nib index 1428ba68d..dca6bb2bf 100644 --- a/hw/xquartz/bundle/Resources/pl.lproj/main.nib/designable.nib +++ b/hw/xquartz/bundle/Resources/pl.lproj/main.nib/designable.nib @@ -1,7 +1,7 @@ - + - 1050 + 1040 11A79a 732 1059 @@ -10,24 +10,12 @@ com.apple.InterfaceBuilder.CocoaPlugin 732

- - YES - - - YES + + com.apple.InterfaceBuilder.CocoaPlugin - - - YES - - YES - - - YES - - - - YES + + + NSApplication @@ -41,8 +29,7 @@ MainMenu - - YES + X11 @@ -60,8 +47,7 @@ submenuAction: X11 - - YES + X11… @@ -101,9 +87,7 @@ submenuAction: Usługi - - YES - + _NSServicesMenu @@ -187,7 +171,7 @@ - + _NSAppleMenu @@ -202,8 +186,7 @@ submenuAction: Programy - - YES + YES @@ -224,7 +207,7 @@ - + @@ -238,8 +221,7 @@ submenuAction: Edycja - - YES + Kopiuj @@ -249,7 +231,7 @@ - + @@ -263,8 +245,7 @@ submenuAction: Okno - - YES + Zamknij @@ -305,7 +286,7 @@ - Przełączaj pomiędzy oknami + Przełączaj między oknami ` 1048576 2147483647 @@ -341,7 +322,7 @@ - + _NSWindowsMenu @@ -356,8 +337,7 @@ submenuAction: Pomoc - - YES + Pomoc X11 @@ -367,10 +347,10 @@ - + - + _NSMainMenu
@@ -391,15 +371,13 @@ 256 - - YES + 256 {{13, 10}, {558, 292}} - - YES + 1 @@ -407,8 +385,7 @@ 256 - - YES + 256 @@ -427,7 +404,7 @@ 1211912703 2 - + NSImage NSSwitch @@ -443,7 +420,7 @@ 256 - {{86, 48}, {385, 31}} + {{86, 58}, {385, 31}} YES @@ -480,7 +457,7 @@ 256 - {{86, 162}, {385, 42}} + {{86, 170}, {374, 34}} YES @@ -498,7 +475,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 256 - {{68, 85}, {402, 18}} + {{68, 92}, {402, 18}} YES @@ -509,7 +486,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 1211912703 2 - + @@ -520,7 +497,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 256 - {{86, 109}, {385, 31}} + {{86, 118}, {385, 31}} YES @@ -537,7 +514,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 256 - {{68, 146}, {402, 18}} + {{68, 151}, {402, 18}} YES @@ -548,7 +525,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 1211912703 2 - + @@ -556,7 +533,45 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 25 - + + + 256 + {{86, -1}, {385, 31}} + + YES + + 67239424 + 4194304 + Naciśnięcie klawisza Opcja spowoduje wysłanie symboli klawiszy X11 Alt_L i Alt_R X11, a nie Mode_switch. + + + + + + + + + 256 + {{68, 36}, {402, 18}} + + YES + + 67239424 + 0 + Klawisze Opcja działają jak prawy i lewy klawisz Alt + + + 1211912703 + 2 + + + + + 200 + 25 + + + {{10, 33}, {538, 246}} @@ -571,8 +586,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 256 - - YES + 256 @@ -587,7 +601,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 1211912703 2 - + @@ -654,8 +668,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg OtherViews - - YES + @@ -693,7 +706,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 24 - + 3 YES @@ -710,7 +723,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 67239424 4194304 - S29sb3J5Ogo + Kolory: @@ -749,7 +762,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 1211912703 2 - + @@ -771,7 +784,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 1211912703 2 - + @@ -796,7 +809,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg - + {{10, 33}, {538, 246}} Wyjście @@ -810,8 +823,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 256 - - YES + 256 @@ -826,7 +838,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 1211912703 2 - + @@ -864,7 +876,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 1211912703 2 - + @@ -886,7 +898,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 1211912703 2 - + @@ -908,7 +920,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 1211912703 2 - + @@ -930,7 +942,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 1211912703 2 - + @@ -970,7 +982,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg - + {{10, 33}, {538, 246}} Schowek @@ -984,8 +996,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 256 - - YES + 256 @@ -1000,7 +1011,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 1211912703 2 - + @@ -1039,7 +1050,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 1211912703 2 - + @@ -1078,7 +1089,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 1211912703 2 - + @@ -1103,7 +1114,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg - + {{10, 33}, {538, 246}} Okna @@ -1114,8 +1125,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 256 - - YES + 256 @@ -1130,7 +1140,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 1211912703 2 - + @@ -1152,7 +1162,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 1211912703 2 - + @@ -1211,25 +1221,24 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg - + {{10, 33}, {538, 246}} Zabezpieczenia - + 0 YES YES - - YES + - + - + {584, 308} {{0, 0}, {1440, 878}} @@ -1252,8 +1261,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 256 - - YES + 265 @@ -1307,13 +1315,11 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 274 - - YES + 2304 - - YES + 256 @@ -1333,8 +1339,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg {{302, 0}, {16, 17}} - - YES + 122.73100280761719 62.730998992919922 @@ -1346,7 +1351,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 3 - MC4zMzMzMzI5OQA + MC4zMzMzMzI5ODU2AA 6 @@ -1445,7 +1450,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg - + 3 2 @@ -1468,7 +1473,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg YES 0 - + {{1, 17}, {301, 198}} @@ -1483,7 +1488,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg _doScroller: - 0.99492380000000002 + 0.99492377042770386 @@ -1493,15 +1498,14 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 1 _doScroller: - 0.68852460000000004 + 0.68852460384368896 2304 - - YES + - + {{1, 0}, {301, 17}} @@ -1510,7 +1514,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 4 - + {{20, 20}, {318, 231}} @@ -1545,7 +1549,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 25 - + {454, 271} {{0, 0}, {1440, 878}} @@ -1555,8 +1559,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg Menu - - YES + YES @@ -1579,8 +1582,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg submenuAction: Programy - - YES + YES @@ -1601,16 +1603,15 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg - + - + - + - - YES + copy: @@ -2155,13 +2156,28 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 300475 - + + + prefs_changed: + + + + 300480 + + + + option_sends_alt + + + + 300481 + + - - YES + 0 - + @@ -2186,31 +2202,28 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 29 - - YES + - + MainMenu 19 - - YES + - + 24 - - YES + @@ -2219,7 +2232,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg - + @@ -2265,17 +2278,15 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 56 - - YES + - + 57 - - YES + @@ -2288,7 +2299,7 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg - + @@ -2304,10 +2315,9 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 131 - - YES + - + @@ -2363,19 +2373,17 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 163 - - YES + - + 169 - - YES + - + @@ -2386,20 +2394,18 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 269 - - YES + - + 270 - - YES + - + @@ -2415,19 +2421,17 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 419 - - YES + - + 420 - - YES + - + @@ -2444,126 +2448,115 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 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 + @@ -2572,169 +2565,152 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg - + 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 @@ -2746,20 +2722,18 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 526 - - YES + - + 527 - - YES + - + @@ -2815,10 +2789,9 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 100382 - - YES + - + @@ -2869,13 +2842,12 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 380 - - YES + - + @@ -2901,13 +2873,12 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 295 - - YES + - + @@ -2928,21 +2899,19 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 296 - - YES + - + 535 - - YES + - + @@ -2953,10 +2922,9 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 298 - - YES + - + @@ -2967,10 +2935,9 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 297 - - YES + - + @@ -2981,10 +2948,9 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 310 - - YES + - + @@ -2995,10 +2961,9 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 292 - - YES + - + @@ -3009,10 +2974,9 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 293 - - YES + - + @@ -3023,42 +2987,38 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 300337 - - YES + - + 300338 - - YES + - + 300358 - - YES + - + 300359 - - YES + - + @@ -3074,10 +3034,9 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 300362 - - YES + - + @@ -3088,10 +3047,9 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 300364 - - YES + - + @@ -3102,10 +3060,9 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 300368 - - YES + - + @@ -3116,10 +3073,9 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 300370 - - YES + - + @@ -3130,17 +3086,15 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 300421 - - YES + - + 300422 - - YES + @@ -3149,25 +3103,23 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg - + 300423 - - YES + - + 300424 - - YES + - + @@ -3183,10 +3135,9 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 300447 - - YES + - + @@ -3197,10 +3148,9 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 300451 - - YES + - + @@ -3211,10 +3161,9 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 300453 - - YES + - + @@ -3225,10 +3174,9 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 300455 - - YES + - + @@ -3239,10 +3187,9 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 300457 - - YES + - + @@ -3253,10 +3200,9 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 300459 - - YES + - + @@ -3267,10 +3213,9 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg 300472 - - YES + - + @@ -3278,604 +3223,339 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg - - - - YES - - YES - -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.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.IBPluginDependency - 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.IBPluginDependency - 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 - - {{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}} - {{437, 749}, {484, 308}} - com.apple.InterfaceBuilder.CocoaPlugin - {{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}} - 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 - - {{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 - + + 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 + IBBuiltInLabel-Red + 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, 548}, {584, 308}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{507, 548}, {584, 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 + + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + 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 - - + - 300475 + 300481 - - YES + FirstResponder NSObject @@ -3900,16 +3580,12 @@ dWplIMWbcm9ka293eSBsdWIgcHJhd3kgcHJ6eWNpc2sgbXlzenkuCg - + 0 com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - + YES ../X11.xcodeproj diff --git a/hw/xquartz/bundle/Resources/pl.lproj/main.nib/keyedobjects.nib b/hw/xquartz/bundle/Resources/pl.lproj/main.nib/keyedobjects.nib index e20f6bf999280e1aefe0366f2ca2a32b9f09a225..d9672ee6a61202f48f079e8506bed0cb85d71e9c 100644 GIT binary patch literal 54034 zcmeEv2VfLcx9}}fcV~8HQxF6sK6?^wnDORwf zq9PXTy`f?k6+f|KZ~W)X>~1#62JyY`d;fdB=l8MMow;-GJ?EZ#`nj{PqBK%f-J{2= zgc3$Lk%&wbdw@M~X7WmP0vJ~KPIaB;Yxx@uN-sIs6q0+**{S4S(-2wi*4twDY> zQHe&nksQ*83?@U#FfxjaCFhaL$d%+O@(;3sTu*K#w~=k+N%9nVp1eR_B(IRy$s6P? z@+tWz`HXx?4v;^nN;PUwi`q1k9!Z=t$_yNzvQceDH1C+tV|6DQoq{XEEz;9Yq)p2Pd`349ix%|m=45A(&mj4$QO z_;S9ApTy7M>-mNJ5`HDWieJk&@mu*l{9gVDe~!P#ck{RS+x%1h1^<>G;6LzR`ENw! z2PH|8C7+ZoHIt5%dPq4^AE~c2P#PkQkVZ>mr18=OX^J#U%9j>M%cK*eHPTtqxzc&k z`O-zwmC_B;jnYlh-O@eMz0xk}G3jyXS?LAoMd>wZxAd0uw)BDYp|nr>O8Q>LxmVe)JghvUJg>ZP&Tx8d6KuYPCi^Nj+ITQ$0()NWED7hkCWTMct}yQ}0$E zRd=b+s?Vu=)VI{V>PPA~>bL4I>aUul$(pGJv?H{pS~KlPt+ke|b<_H2eYIiQaBZA+ zoHk9%)8=XOwPG!zE!Il3CE5y2XeViBX=iH}X%}nPXxC~tYByzR5Jy}8~(Z>_h{JLnztZhCjUm)=_+pbylK(TD1z^wIip`gnb^K2x8s=j)|< znO><^=}Yxx`U(0e`l}h&R7};>Ox^UEe$y~bGhkY#Z3fLWGu_NEGtDOE z5oS}fnR%qy+-zaCG>}B>g`|kWjyczyXU;eC%>`!2Txb@Ug=W}XWEPplX2e`< zmYAhxnOSZ|%?fjgS!q_8)n<*k)LdpRH&>V|%~j?J=4$gqbB*bk!aT`5**wKO)m&?y zX09_&H_tH7G|w{6HqSBFo9CJr1gfn(Yq~YVnrY3lW?OTtxz;>uzLjq+utL^CtH3I> z!qy_I$SSrX)?%x~Dz(b2aw}?8SWB!*tIDdjYOJN!GHbcD!dhvqvQDs8TPIp;EXNYo zN!H2MDb}ghTI)1xopri(hIOWOmUXsujN+`7WL z(z?p}hjq1ejdiWH!P;nTvNl`SS=U=PST|ZXSvOl-tgY59)~(iU*6r3E)}7W});8;I z>mKV~YrA!yb-(q1wZnSQ+G#yxJ#0N_p0l2}Ua(%Y zUb0@cUa?-aUbA*vuUl_eZ(4h-x2(6VcdU1<_pJA=53CQZz1Bz8$JQs-KI>EKpVnvA ze(Q7V3+qekE9-0P8|z!^fc2gAz4e3jqxF;Zv-OMhtM!}pyY+{4&?Yvunayp@=biAMq1|m?S_fVv`_A zBk3fAWRfQ22-1`^BS(_vqy=dSpRGt1d^RU-Nj7Om+LI2XBk4pslP;udzJ0``sly8j z!c|p~g^|)o^@`j`Vb%EXimH6uo-}oO1TL3`XGF>iqsyx1O`4kPNqw(@HEHU|(oj`Z zxN3T+v?g3NXVTO$m7%imvS?+=^hr~Xk4CHW?Pe+Z_nJd@vB$ByxzITb?cJK5U4R|W znlyD%czHEkpY7enhWJ>tyd0Dd&_iIFFpJo%60?{DlZXLPfB4v=(Ms%ROtiduVyHY+ z6t09{?o(bLf<5V|f(7xf;xPE*{{LygZ%QN5MUM*hl%orFv|v31ztJIr<-80F(48Dj zdH@z&u&_Hvb~xVXNqUjq08RI*>dHuYkt4xy!z)0`DhMGIFO$BcAL&m9%=X|ehev06 zU&9`R6KkqNun<$-$2UULfn?CkNmISw@WsP`*Uu1g%zT(bO;vTY%)7pU3?YMHLC1|4 z87+v05{raW8%{=$k$~RrQEzD-?HaF}(PRv)NqpdN^+qz997_h}!KmSC@5yoGI4Ap7 zdkh&*CXk6_63Hc#$rN%tnM$USJTjfkAT!A)5#g+OmY@Eo18<|lXD%PV>un1RnBVXPUj)#5$7%E9p^pg1LsrcOXoZ1S3#+u zs-UKz>4G*BbgQ7Z3VOSscM7^q(0c^kF6jM&?htgRpbrcBsGyGv`lO&w3;L{}&kOpZ zpf3yhs-U|CeM8Vaf_^0EenGzw^gBU+5cEeue-iX(L4OexM*L0CKLkA}7!`~QCJP3{ zr3nTk0xtLr+vSv)0Iw7<$Tna=pDqK|^DR+qm zmp@ulSrB#tj_LRv7N@`~fa;8SGjno))~hR{rKRD@nT6rfa8al_>@Drpkt`$2!-eC@VCUxB!AVnrFN|JN6InVjS~xLO zh0F&Bfen{i?luDYjyC}$j;op)t_W3zs-uY+PdAKZE9x0d*EpVEp z0beBmW~S5J$iBS#yAJM#Z|WT3Gy#xfa|7mt zGZ|SNE+{DrRhD@8e~G;8vR7}9#-HCnULu2PJAaKl=QMSWbegzLu@@KUsnv;Pe3R?} z!0-;@djols4BA891{}VVz~TGW`VI(?kJ&R}PVGt3$8jB>^}W1VrY*CjIAJ~q8^Fun0k z_qwynDFjK7Lvpg(H&{zL$$OL@Pp878d2zT9s^0On>{SYqrP7rdVfSx2$dJV(oYj6x z*G9;T&W=wB`34Qul2>eQi5;C9>4h{*7sb1vB`~!zr@uG30rkP_w+O^t6&(RYRzxC= zVt)x>zY4k;2-qLw^owJEnUf9t*vd!ATDdd=${3PLV_>a{&&dVrq{hK&i0M;fm_D7J z0pOgK26`fifig6X>0_dH6BpMjNf?%220X6>nY|cv$O^myQhEh^4};9EgzM!~LXA!I zygC!TwDF0)Nw28C!ReLss@P<&r5j+fn?UcF7AmqkCzHp>_@qb7$}6c{u{aAze@byf zxNk^wwH3O$H5u+i7o(%L1&fGKt%yMz1;{=A5dyfwsit`cy)zCay%+kvukHjh;uAa; zd!G!wm5>lU0r0mBIMPZO2{oM((1F5@Ve!Fu|L$@>);Ja$g8gI+>}Tn7FtrzwF*iOw zvExcWJqy7UqI8tI)LGs}ow8&u&?D-oVUHM7$QAl3eU0u;@TIpPOcF<4gK4*$^d}C<&jP9sluqK7F?jA2c$5Ad|XbXthOiA}tz6iSVMAd~!{akT_P;O=TWH4YP+3WNWbu?`4LcYe>tGx^ z4my~S+(9_rLE-F)k@85Wx~8%uG^MOzACtX4$X1pIeauMiBe92zrp=B<%Nij_HYeT# z?o+m~mLTW<89}me41fq*41<>@4_*=nU~$xL+6Y@NBN5sR3@T(NSuTqyhaC-9rz~g) zXhmYI8W?L?8tAgb@urvGP2R;td0%;P)#5oMKWl9~fTD)6po) zW9PE-*!hWFbO}u3GN;;`NKO4+RFyY5S{5y+w~b;?8Bdx^cwUSY4Y*Vu0O_d0uny~*~lx7ge49riB#dLK5)hj9NRvMcU3ni^Rd z2D4=8n9@)Ycs;;#GcsCQQ&v8_1`M@uRb(Z2PNr6`Ca@?P^oJsjtCW$6jerR$_t_AC_L2`l?pKZrboid;*Tep z*zRaxVvUMf&tNT%4ToSnY@cs81v9U_It(UwY3bC8PyviRHXJD`t_FyXk1q4RgMBqE z4pNIoCh5))Iv*LWEcZHxAEQFmArBPj?%2wRH)rT>bh&G-x~{wWHzjuWKd!gSWy#JSwL-MP&XZHE!>zqZ42 zyf10T4|7O5SitUo&Z*F9tKN2)=G}GHIH&7-*gp0t`zQO1?FZ_39;js}`<#8jw!{Cv zX5X-H*#Y(){QCib7;&t-1YmOGLV|IQD23~zq6M*U1s>MGBy;^$unb_QB1l!vO+b++ z+LB<+1#97~4eG>ME7*~yXd+0Qrun8r>Z+wJUE_8a>hJ`VzJ5-Se9 zoCJ_Nr#L4$CpR|vH-T`!<`PbxtME^U(S;)f%T6A{y>Z~SsCN^LO@tk(Cr;R})uNK8@pKqJlO1qQbJhXWF!QzV!p8fQH)Z>IGY{qb zNVbzV=PlUhyd`Y3S9un14WDg!HgCt<^KAAj@5DRvF0j$6+>Hh+fPSKId39{;=~D|l zr;+P-@TNYpG*W@Lfh@hd!^^7C-8(kk7U*G(-BYl3&Kkkm3;K4DrU}*(zBni4+V=1) zLfn6s!e96&STn&|gAZyIpsi=utRAboX06KU3v1VJbqs;s`O))$i`8z4O}vMPy1JKR zyp#8GvN!VHybtf|oZ(#UY|i0()eILgdf9)@?m5b9|3%AD<93r@MHN{ zJ`S#ohg~wR3Xl#Q2=^9ldDwj;VPCtv#zVriXtZ=%qylgdLkiqR|4V4OyX)|4q}=`L zIfYz?g=`3(7*{pAFj9?u13kNKbmtPFzYOP0=O1l{tsh44zqZ42=bg6zzStbL*8E$Z zdcFvpFqkAv>ujhdNefkown-X3M*m7HM;3Z_xYrGt=5QV-f_!8)?idXX* zq+eL8(r6L--w+?zd(83Zes?Z#&T}rb73ZSqQ&&`hrwrD#*k$7hw1C$wF~gP4c_Vtn zW^e*uU4Nq@iZ}BU`5NwU(QqFpXa@Tp6A70V;uQeebD7}}Kn?zR(_2@5a$;pq;ivMo z{4}LY1I=K`OR~#(`G32@b(=u{kB_-lq3IuhPbA@vm zaPf?&ZG&4L^|J$@;(*x+3J+>-C9Vb+1?8vSQlHN+@Rqi7Y-y#8WVBoiXvrb+(ccHxT?A_y#hl@qK)q zyN_>#eS9Qscg<3-N8@npa^ZLa;CPBZ?ZWY_?%d$Qv8fIm*$FtN40FHMhvRwv0)H_E z$EyiAHpk$&E(~!Q^luy>)%Dl$OC}=cX|7Ja)49v>zYhBHe#swKRLCyLlme0^*-}ul zVq8LZ?so2RwxO_p(Anmx1Fl{rWk{J)6VgR$D(D4*9)m52plbm?t5)^x(>1GSPEVAo zy-~jA^k2RDU8y;rD7D~|q?XcAQY)UzPnNQP_e_ymOKqgKQnu8Ny#_&+tx`v+lcY&q zq^|r-sk?Nvt20gxS4N_RkpfrYTpGey)QFnu>S%dPTL;E8ycBd{h)sp#g2$De@wiK< z6jTg&YErbaEL0i`k3fhy@l))nFnob3K@4a2>sI-n}gF_=UlQM&Bmh z!FXiEy9>r`f%|+J5Qi7{k$SnInfsh3phZnx7O5^M1}#MDC-s+l0X4XQxWS+YocmnX zCJmAXyS&?j#BJcI_8X)@WRTb97-=Z*Mz00RhfUHk(lBZGAvmTqQW^y_@E+L=zhV?Q zuK)teCHd9GVCobVCzIb;X1nC~urm`(zk+DRihQ&V^FaicCAXU-<+|GN1HTUM>g>DdDaw1-QeIX(Ns z_r9xFzh|dQ&81Khk!AsjE|dz$y)Ka!N?~ac;JJ-d#K%d+Qbbw|#9AtqNx4!KHqR0u z*DBZh@`|*Sz2Z{e<5;X#tF+ zJV-5scy6<6YzEl;M92OH)o7b`S+}hV!KJ z1fcLK-Fe!%EJ)AQb?1#b+)r95t*Rq+Z5tI@$QO`Kbfn2|V>nN8z&{RQQAxm^`yeO^ zAwB6N>1434-;tJ(hoxy49F83!|T4Zij%K=T}54@+uGqv2b5}W*0ir?A+>N&r*#$FQiMH z>`hWsx=gxUy25$NdBJ(vdF?Hne~Q^(CH+IXI%)2kVeZ#EFS%2-H9%Iq$-YLu0DS{*hbkIlKAP5GU8(^fd zv9?S1N%tp>^)QU}sPnovR?~)K?Vd3al5e8rD^d;Ov4VnC-BC!POr1)r00R2le)T2dajm#{ARw=>;F%iIK`lx`^LBk5!Jfql-0 zsd&*prO%}O(&r#D_v_9_&d1JPPgd?t=0#rvFZvdE5oBj>F0#3{9XFkla(@)j!q$-K7o11#8cF62Cm6kx8n*|BQJG@P&~vIO$6P--t{?Q z*WZ&Ls;RRkvMPJ3#23y#Q{Y85WK+tMEx-%#=+B(}9*=&|+2tt+0CZ080iJ>|01(jY zPZR_>L(Y_&#DSKNlw%5l+$tr|pTndQK&Qh-!l>Fp*uL=?Vi*FY=!s3l5lIb@cMQ}; zkmOcXP#F%FCkZ7vTW;qP!U5;2Q~-C9I|IO7J%GPvUqD%M+zcIai(x|Be@Q2<#p~+d@P56to>|V9+)}fDiZ!%BGwrPnTyTa63mH z5yS0*l(_vFrk}uVcQPZfL9#p{0QhswS%|BmHiywvPlF4&TMgr^cpoteIHq&psVL}r zcr60!P~u|W%}xLVHip%b@QN@d6jdeTGb}Gcd4MrjoBuGC%94f$wt`!(4nH@t>bwNcka!!&@_K>3p%2HwHGi@a67B?0Lj@-;C??@0}*A19Weh0Hnz5ytEasSKM1 zJwlk;flLVXoRw4tBV|#vpr$H+5u^=5j3B=(T2mEHUgihn9Uky$f(B9n|FHZB0KY2+ zyd|ie0{9;N{sQn%$xqAAB!GWG-Vp=-)zrWTabk&O&Kwghsj13ZmQ@~IwxXaoD_T+> zDkx6C87JdpwFVg ziv}?Y8BF8By`2RuvY?l6>=zorwLNA*rf?|%+sKYqpuGdiT6tkreyFrM8ErqvKYD1} zBIuDAHMHbk|rk;dpwwDps;#B+-y?tw1DFs9n-F1?S_ajP*@dO8b;eY@hJLDv2mo_YuqH> zP0ULX>jm0FECVzS913=6{Z{eEA@brOp6CnygP38H~0Z?WcRzPw|n>8 zh$6-W1Z^&83qfxb^d>=D3wnc~tpvSZ(3=I#N}IeKf+Q5;Cr3e;an-7x{ed|`qy)*S zPk+$edi4O04j7@HeH$(>SRBTKtrM1$gR*}9=&^9>a za57G52Qh3p7qo-7m5xd$wqNNS_iwQ$lrG>u{9Ng(bW^(XGhxkhl%9$KG!H2gN?*_= zU=iGiWVjGKZ8&kXKD`iT{1>JbV`RZyBR7&ct+J*Z^60~bZjyABpu+_nCg@P-GC-`W zsceQXI`HA__#_A5B*!{G#D5Qg%oX`$WvDVt9-)j-Mk=FZNa|*SLMW@7^Sz)sg7y(~ z0PML2PCI3+GEN?=j8`Ur9wlf8K|8vfK+vwv53YXH9|Bu_`s3R5>JO~HSI+9yDICel zWMztSyfV~v{?AZmkgcAl3u-5U6gt6NT<8ATf_6slei5YEql`X$<;PPyy+}Z<+PM(3 zH(ZWT29lu&I0SM6&&rO()TEG`M&V_Apz>7Y@{BUz4wz;U%NT>dH6T^c!RGOp0{HIT z$DRw}*CJ?*Gg8u(AkNs5rJl-32{5d4<4ViYt`U&$R)2^~3GeJM|KkDdkF38J2p9dLXS} z{3X6b3tgsM-;anw*JHbwu!9;u{zYUadmn2VZy4^?W#*-zv7#+C63|!{dlJ<*Y*_?#@h6j+K7Pj;ppu8$a6%n`Yu$;jAvRYiD*>A)#IV^@&|ayq2`=Y9 zBY2^lq@1jbNR7?ju<7bxbDW#i69p1O-z*BcxB>$yNkG6AaK%$-QTQ#yU-Sgeb>rG# zh~Wx=slIK1S6uBM{;mWJV!yEjD!775aP4M6D`GL=6>$Yb+YmQrE9U@i&W&jWeFg28 zq!plJ9{KHGQT>#Ql#7*1;%b3%g)-7p3zTb8s|EdmQPrvits&xro6XIB2S};_elLLw zx1>iCHKfE<3*rWVM|rqOYk)FVG=y=JvKe5!KDPb?1s#;U{%C8%ZtCW$w+VjtM%^$H zdsx|`Y*lViM#UFDnb!>lPMcWzs9g+&MIl5vARY|7ghRgmLLxaN>pWGk+z2G{p4gUf zLB>37Tw>42MwFBRxu93Eq2ZWJ9IpOD@}bnp)0E=BkB8qL0d<9MIE#4S6Wy`H@Jtnq z908PKqFHy>2*?31gl7%*>4lb0Z}5P-oQ+$`JsaamB0w@Z;JNV3qCS1FAz0eb&=a=z zLm2^x(;do#%1-4WSMrS(6g=*y2zt?OP_-T*=PQpYyLg52n4GIT0qgdZG6Qs$n0N(Q zigFc{pK*oY_>L@!gewId<=XZm9VlcP0n!Es1BbNooFh%iDIznH_CVO<#V;x^fp(T8 zvNtF%lR$8vEidbT-=goc|FsReX*igrBGeM!tJM~059-g9^0 zRs~I<0pKcCnUtqW$^>u$3OZ5HNiN{1n1B}$H!6e%d%8|QccbZ%sNQ@xFblTHE~HX-s`$oUc)IQf|{u| zfkkKhy-!cIjcY|HjcQy5io_q6_2@bEm~TUAtPW9+0ceNCpq(Y?>{QTt zaq@(yO0@$S~eQl2)o47<7#bE0hFKDHGF%!VUPl zI!(<}r`PiLlLcKMXnrk&S7#%GPYTnhbEQmmKIx)DyOV0I%TP=Ps0APc)Iv3^E>ers zVl|>JR>6*5DCi2@rJ*iNJjD6 zGv>%XoS=xhR9&Vnk4pme1hvqU1gc0a3BoYjT1k+RL?#~h$D+1kAoHlpsL(eD{u|n? zAuOk=YXO#Z$^;jdB0-BiSb(+1f$4=NP5)XY9GQCqElfRIJx5)yhU0{ttc67YuL-h7 zEo?Z*A1{F-u1(b{#>m`J0gp3RPdP{8t%1#2Uuj24S0C2eCq0pXn80hEy_yS(>@~1q zJmYC0^tuS{q77Ns0__OoJb{b@@An8G-uIrR>UK(0}*RW~FEnkH{T<{HUyzWf3^Jpe&L#wV*h8T;A9#@|LR6P|#6}XV9Q=uwmxAi)lgevuU^#%3C z1gc(Di({yIGc~GefO*AHm2VGDUU_$c!zEdeS_K|#SoW&wtcqyX%Fs%1Wv_&^#2R#N zhl`?F)!~w=>Y9e&y`#Ph;JqIMZ<(OW>wpJh9|=3B&tHfKs~@YMsQVJ|?N=i)_`XgJ z-wNQ&weWRI1z&=qT~ZI#(t1OHzEi&kfPReezg2>s-~p7x|9YdP-P2X863T5u{`Z^u zyZVQ^I2Hd}4T2YfV`o0MGy`f!1D#!xJ+oJiLnKs)TTeo8w7A zkXT(<+*C)whH27qtHT?&*3F5iZ(I|a5!;~+R3NRTWNEExRiF!Nq-h=HYqZYt4y~(mm!PLXBu~&YA*3bf`Ud+zJ6h`jBlH9X7bA`91U=miwxNZ$ z%~fgoq4S_$?Jj7<_pJ5P`fCHUj`78-YvP>&^GGZons_0Qu?-U>iB&$BjYpj`a+EXgZ=0X zOR*0|YNG&`V`8{GOVG1Z;nFjgd%JZ;P^*%{SkT666SRq1=hV172UfEVF5#G+#JoIH z!82`Y2_11%KVpk;;4wL<19=YOj=)tAzqnakg8+C+IoylmpsxAt-SLtiyaM!88j&_b zn+Z6X9mC1Ff}WR*6W|O;U!K@-(`tHyZz>f^^0ft8Nb8y!CFcWa*Fni@P~ECw`pFi# zXA8#3qL!TEO!9EZ3RO`=E@p(dJjPYC5k+4?GVcdA za;cz~xv4A2M)tZh>VqmzU(Yha?~SeV$=WH}soK)i>wG!Ppw2qq1PWm)n;usrzOI-z zg)UrAjC$e>y#Su)2#Fe#RZvQJ?pxgUunyoXtAH(n{dl=oXiQWB?$Lljv3VR;2gjZX z0rqhlVZJz;4xTZFtLa5lP-uIUgUki*qBAZoTx(~8?eQ+o2TV6Ns0LIFLLR8stwqLX z3ScIv0-#ZZ?L9Xhj+A63x$>#j;}NH@ICHB@ub%o4^CmQ0-SyhJu)62RR`*IluS#BB z*u=P^{aqQ+`%sH}iFT=WnYJwT;{F3@tIp!y4Tptc%+C|_m{s8Mb#Ig4rdjE31YAm7 z#ITFdLRb=4O2F@xu!OkX+{LD&T*M+%NOqLqlXwNap~(L+@Uy~2o~t#*P#o9Mu;pLQ zzjVo^AuREwKv{KYn1FxR(;IOf9s#3k(zAt9s~+Cc#>c91NeW3EwM;J$8Znnbnr+lJ z!J=OmTl8xLy*7E#LF32Jez%;MEsNTJYDb@Tv$jRssx42w>KlNa)LHf3E}KI+=4r*a z>Mm<`XPzv}@eWEhkF^2@-7S0A&b~$&<^0)jRNBglNZ2)vz;^^k>uL9D+iQa!o3#79 z@Jj8a*|k{}u45c<6$)p{tDzXBybwrpIKtwlCe?ZLC~^rV)c`Qhz(74?gkJ>?tvb!J zVT7S>v*%!h;d#Z8!f>4iouR=` zAFog4*?OK7gik@=5%gWRJYRPnguitXyY$(li#}JMmvFta4uUmx3$}V8AIurx2K94# zfVk)dn*KX=Dhji(qA*@hs4vh%`a->cY}Ld1BE3k@#cD#mguN20kZ_Bo)jnLw?XXytvTe^A8!lZMu7=f% z1*-KLsGI`gudTq$FRbyFw=O-b0NjD^2ypiq;_l;yxI0l_gIJ5F<_t$0c(_YK zjAsHJ7Gl=wr|IkT(*ZGO0%FeASGkBe?+}Rjr;C_RVS*lF3PFbf8(39`PD^n3%8^w2YBRJ0KM z<&e)^uriLJ`&|rKNf1NUZ=H>~lUyR7>;eq65|H{g-;==w#i8<|aAAX{BjQb+?~_>} z^rDQ6-vUuv{~i!HEPy-0*n0P*kK^~859{5MA-?53=KNOgmgMby=+SvJ`PN=w9~<4L zeurDjT;-!UTv|~F5FiNx*o%=wo8;%egy$jQ@iD;&JRg}`4)QV;`}q#qL6#G=gPeZ{ zPRpJyj9TZ-`i1pFHrBE3IW6Ta|`R=ODqv6L-p?!)jn5S&;*hK=AuSw z?=7wWTygEa%6j+YcJX`8SM_i0iQj^3RX23%>*wn)Sod4)OIUBYv$9eOsNeHl`nAe9 zHII%|7O7$1XqpcBK_BoDpwO?e2i;WYI!vY8H6Mk!ro6C$@y z!0B*r^7h)fYG>9*U99YrOXzU0k6J@AK{okTnnw4@kMJ&94|$z*In7drvh!sKG-;#Q z0r@@ULA8)=r2YAIY7=Fo)|DQ^da7%+nQ93grfJGfeGMGL-d7pM`hu$XzP3#I42ouQ z<#zIB`ibuzmC=D(M{=k7uC|;GQTD14c`Q9jU!`nT-lvPS&Wa)LVL93fsFXlll)VM@RNa9o zIwv~dJ{|2m<+@*vgiIt(~*2OPv$ck{9X2_x+th&ct^u=&|=d=hQqCXOw1mVp8ab{#wc3}C%8%qeig z%jcn9Jj#s@oC0#tndxlAd{+pORywWF`2QH{j~>MoET1z)Fo;7>a-f6LoOCzbbhQH; zcrw~8KR8`LltI=Y>cgP?ohdN=J;PamZYNLzoxM)wpVkfdUh=){d&T!E&-U&1z3zKM zv3+}_qkV5F>ArV-?+TVKScYJo1%t8P7OazCO$39*x>>Lz63O)}(?%l#qF=qhjoGWe zR|DDyw40v&AV)h2$LwQ%vR9thsLLfLV|;u6MY;CwmL=nSpE}u_^jv)vJAjh-EfoK- zN?*ore+3RcIM}H@?*hkKy^F^#wS)zRldMjSxA@V?zLsrwPIN6=JQvF?x=9?7Z#&)}crm)QX@p5dGZI2EN@uvUT{ z<*aQx^sC*A7r-GN?%7m=WjWqq6z&O6-rzY{`2@#vt)81-7>%DD$M-z0D230HL|!(Q~zq04yMwUp-@P2QJs>27%k-0$d0mUI}ejbuTlp$B2EW3gv)7u1P=4F7P9Yv2snEad~*Ub4t$ zh+Xf8Z+U8-(v_wI9!5!dbP&weBz%-H1cSE_r z90t71*#!rX0Y`kxc^Vo2HgwCs4SXLs(U;Cz=R}Ygz})vj>mTsRh0v>w{CKR(if20W z(WeHFp5kJ>Rvl6;liwxol%)Ns?7Qj4y zgEn|T_%0Mxt$;h{0>{Tjr+E?v3RRp+>=rrzHVp899o80~t%2vR#-zd@0D$h;-y#qO zcn7A8ARs%M4s-g!8>l|_vvD=oAY5cL%el@_S0->jUYUe-`)0fnVAsw{N4b}pzbNlFXvf@+Jr z4&t${(xMij+5%)dDp_gKx+){}HS`#@1k{!$>RL}}(Pnx|3#u%v@8K#fpss+@!g5e) zQ8qVJT5fQYBECfB#no8gczRE50bQjdYAbDlC}5H5t1aD~pK8?>jMzMdYXoWw>MW?b z)K^<3!Xm$xQf+~ZY*_t%sJIMHskWfP0^PYf%NUGH{83kJL4oFKE>yzMwx_nB&#)#& z$53fgPi+Aj?StycFjQ9xTs5Y+R&6;irnb0B3+gU^U2TDV0%{9tE2y=&YD_|HiIJ`m z@<`WMXcQQQM%Y+n6dA=v#8_;U7^Oy;QEo(OGh>NSX;c~2Mvbx5SY|9YRv0UdRmKU% zYU4y>jo}!=ILSEKIK?>CSZkbStTRqG&M?k2&N9w6&N0>-=Nji3=NlIo7aA8C7aNxt zml~HDmm60YR~lCt|1hpLt}(7PHW(X?O~z*9I^%ld2IEHKCgWyfi?P+X#kkeD&A8pT z!?@G9%h+bzZQNtrYiu{}GwwGYFm@OZ8as`LjE9X!j7N=K#$(3g#uLVq##6@A#xusV z#&gE=#tX)a#!JS_#w*6F#%soI<8|W=<4t3a@s{zn@s9DX@t*O%@qzK7vDf&>_}KWw z*k^od{L}c%*l&Dpd|`ZPd}VxXd}DlT95B8!z9&~0KN>$7KMQa=g42uj7GQgVS;_hd zaCNc)f(;aGkYIxa8zR^-f(>;*p&KUHaKT0hHd3%rf{hkzj9|wKHde54f*mK=c)=zJ zHc_xig5?S}SuoH`j~8sJVABN46KuL*GX$F{*et`cMV66|cj&Jk?A zVCM>Uo?zz-c7b3Q3U-lT7YlZYV3!JZnP8U-c7D|N>;}PZ6znF!Ko{O3*jB-A5$smMZWHWw!R`?3PQmUHY@1+r3wDoS_X@UM zu=@nNU$6%R+acJ4g6$OSA;BIN>=D5p6>Jw!D|<|^#|3+0PU7V%-Fimtp^%7)F4Pljul-uZ7kC4+Q|+H>59)N+`B7n;Z6vD7JfB6wVMQt%a~gz-5y zpbv4Y{||*_IPvVmnD}_W;2{opgp7i21Qwy@FuM9%WVew{aBlSEnyTU~?}VhRj!Diy z!0Et4P-Ai$4yNOILD%GvrFS-*mwSSN>BBlTj&z!ic0spZQTvD_b8;LIWISEcTA)-+@UHfcNv_79kr_u0|R*S!T<0gTiowU-CE5M z&;@2ddig>g+v@mtOT9;M+Z@)){t0_ak~RIK_A$^UCLSQ}LXZfOMW(w6B)FS9)~#D4 zn2A%Te#N~~ns405dy-+1D<2=$*PLlXB}cS&U;fM+c61bPEmArK(!F4aM9k&6hZP=y&{&_+YuO^Nbc9$4x zflI?#-Z9Qu9o>V)-6d|gF_Q&h-3 zGNvxM862oarQUS^X5!6Enp)z0U!9U~PFs;1Dy*{|izsUB;fY1ryuLGjMuC{3Pja>_A%p zAvubc%qD&VVNy!I-9KsT{iW5*w~uRd>Hlh-Ezpsj z#PIOtfN&}3ZCdXYLGFHmYtzG(n4nk+#oFGxmC(Icn_G~~6(_q&L;Y8;Liq{g$72B_ zR#bRm(klu9l#V(K8IcQialBHpuHBjJ;X)bgCFSGiUp#*US9i%FnE2ns!-!5PWJ0Mu zHGeaGrg@`OiZqC&O;{9H?^U))2u~gcO*Sm5`SW6$|0@tmm5B7G1wyzagAT!Y(WbAh zTt`#ItE&PwkfL@8PgILnmZJ~g5T`|xWP#bIF2}@o%)-2e9b!BEm$0q*v7=yJZjH8L zW3DJXrU#vIG5sT}y&GW3fwxb>s}!>GD&kQG&$E?eJ%egIHd+~32^A4_gg|B^+bhLD z@UqG}k}Ku8#vp&X*J<^qdTG?II*gtAKfc@>=|8;@WY>Ai2Wp3DNm4yw>en2CO8;gt zn5aFu5mo-bjdNjc%y7c@>%xk)PSOV(+Ze4!xMfMo1jya;9Z5UIfVS*TF zPvxJl)ssArSpDOm5-vALo=n<~i8mZW*LEZO*I>>}G53&FM*B)1ZIPTWS z3jYfXb@UxI?zN3oLDkVP`bO=@Ar|U?Wh<-TY%%TqgI zXFtNqtUL^EHXJzE-{?>`B*?~WmOKCzJyEFLB9q2*2T+^CP^;^jC_4;%{g0)fjCw2@ z&l3S;tv?Ky{};2jy2{}AXho!EF<>nNuvQx?#S=8~z^yV@59kQ|C-#yYjDa2zO!A2Sf2m$Pk4v2 zq;>-QOAj!?ozmfuvcC4{rNeq_9(FjO5zS<>%lz>u8B~z}rOu9dbsPavd&nWC@NZ9j zZF>lWCR;J7ES9AFn4|!E&YYymqNsiDVF-`7Syb2Q{J$jGDG7D`qIUEUyykD# zK=;2byQVB@(Os0)<|x!naF`t`D=CjG?ld>qdyL-f)DDmTGH=Y`*?oV*;PeBBA&veo zY4G2WG#Is;CT*Jf!R-3)(Fmh!&f{PZIq?*JkAu0+y-u+rIuk0Lx?dCj0o6`$e#N`e z67ntYOU{zl!4YD!)MLm@wo(2O)VQ;ui1Gj(1Qc*89mczmB~Xz(SKh3?OW<4wD8+0C zCfNcqLAs1$WNV$23&o@T=>VlGyx2MqPO#`o1e`#(o2-Rb<`&DH$!Y2n%4RY}jmnQe zv8GM3q(Ysfr0LT#dLQZIvI)M;d*a*h-rbLc0^4yY1d&T?2UIBl~B*{p9SC&}-T zd<9a)c^}#uNfxpB1?DRFhd*rcXDVfCHqytHT@;)63RoBI2ww}w|lOlMR!uRA{IK!nM zyo+F;b^;WX_Ed%`BcTknBbl!lWW07RnGT1ZouMp}J|j_ikGfVaA*<;@O_MBm>(G8F zs*Hly9$Y~p%10#3w!heP$(QT@pRd>P!#-*U>r&|@wAE;vAS4=BPHB3B(~$(xiwgW{ivW@9Se@z zfV%0Y1=FCk`4Tv`qNkw4q0ad|JWm4(L4Ol;Hxx*?793Pdaxw;~XfDy~u&$!hm49fHxB|iq*J)!`q$J z?itZg3j3pbKFMN1w>iavzJW)UTd^ z`dsCF07rZ<_;$4Ov7pbo#j(W>;N~YR8FsMN8y538tS5$3KNdQ#3A$6@2_^SnP5dON z5kEuFFWf^yK7xYxN8E$TUKJGPljB5Uj359tmBx2 znFA*UP7a(BI5n^~a9Utp;Pk*5finYV1A<>jO6gZVcQMxH+&Tur+W?;MTxxf!hOj z1nvyn71$QIJ8)0n-oW<2eS!M}4+M4u9t`XZJQR31@JQg%z^=e!fyV<+1fC2$6?i)E zOyJqTbAjgrF9co;ycBpj@Jis-z-xisf!70X1l|nn3A`0}JMd26-N1W+_X8gUJ`C&) zd=&UN@JV1_;M2fA1D^%<2R;vc5%@CjRp9HuH-T>h2Lj&(z7PBm_%ZNP;OD?EfnNi^ z1%40w5jbcOi(1U$7MxpPDVAz!mTvhhzhzja6|gMJwt`lgm2PENnN}0)2&<{p%sSF) zZndylT1Q!}tSqaw)y8UTWn1m6_Erb0qt(gkY<01^THUPf*3niEE63_-^|E?feXPD# zKdZkrz#3=`vIbj2tYfU9)-Y?hHNqNcjj~2tW2|GXvDP^2IBUE$!J24IvU07-))eb_ zYpMmcx6cUntYFUx_Pk&(2==02FA4UtV6O=Fs$j1Pwp*~*1$#rVHwD`x7|`R}f&pK6 zSFra4dta~*1OuYpE7(VZeJt1~f&oo`D%d{-`%JL?f_*O77lM5$*jIvmEg0ApD{0za*6#Oi~&lda~!Pg6Z zuHfehe!k!r2!5g97YTl`;Fkz~so<9he!1XR2!5sDR|)e1qT{1>Yq2 zX2Gu${CdG}2+|XREF%a<1QF??yV3|<=f`gwgY4nOY3j|oA#3IE<}zkq+X2I);fdZ!J89D~0X z1?h=FHpCuiiy)mBWLA)++cMrcK1i>#p9|7JkYxvHMUb__tK0D-j2}1QhdakB@Y|*M zF$F(vwy(lJj|Ay_{97EPFiq*A#r8!ARcricju$orX_O_p~pAFI#cxzmcUJva~+Z|+0@b`m3dOkiE#2-C^w3D44WH5kq(WW3>7NoZZ zX|>%Fe{T-bH9>k7e!bp4H^=~Xx~>iWyc0j}$B(r^x;{t&O1cgLfzm~j@gpZl=LT7; zARTTG2*OD8s30?f^me>=ti8^@I7mZ5x)FbF!w*=Dk|1jlWPu<(120?|q}}lEariMY zNYBLn4g7I6e%xx$wVw~Np+UOJ?jK~CLAo?ZVajyfjvz}5vgScr3cpT!%sq+l;K75x z2Wftg0gW$vz@T%Yw8r$d1GoWANi)`}-i>iVd0t>B&Ksg%<&Ay3WLpCP8`&UfF>km*ExY z<81pz{J8}`dg8~acq2VX9sKbCegFnn2PvTXB>Z(-kaol-89}-*NIM5qGQ$`gnb!J{`^`T?hw>uFy|`<2SF?uhVbU@6{jHU({dIKh?j{ zf7Aca5BfA;rmuysjjxNZo9_YNgT9A+kN9@^9``-zd)oJ`?|I*gaQ@hJWe%){QEjXkq)8EwJ+<%n6wLjb6!Qa{6 z&ELb{%iq^Oz(3eO)IY*M+CSDm-apAd#XrqI!#~?U&%eN5;9umA_)Gm!f2F_1zudpd zf1-cA{}TUZ|1JL8{CD{8^55;>>3`V&sQ)GZ9{*ndF9tPiqqWi2XlHaVIvE3vF~&qA z&zND%GUgcb;6RcRIDVuO4jowvM}%yFLq48>V?5r5gE@XQ;dDOJFaxG-rkNRLrrE@7 zZniX!GP{@q&B5j|<}h=tIom8Smzt~0b>`$BwdPIcHuFAnulc$8gZY#ByLm7` z13VxH)PNBP1nfYwK*vCzK)=9%z@WgWz?i`Jz{Ef<=x!@PV-ujQof^~B&H?@GcF?Qt z1)b^v(5D^+E$Ru-kM@Gj^D}5RKG0s8fR@q&bdcVlfAk0KVmxRTxu8|dwhFAURbf?H z)z(sLxwX>TXl=G`vbI>aShrbsSa(_5t^2JV*2C6|)(6&J>tk!5^-t?t>pR=DEjwtZ z+nM$eb~C%V-O_Glx3=5b?d%cuD0_@O);`Y8wWruqfhnwpZF!2l7Ff&~_Imp~`vQB5 zeT)6N{igk{{l5L7{gM5Nz0dyC{=)t$*fe-#uvM^iux+qiutTs@uzRpauxD^+a8fWo z7z!2y!@;6pMX)kh6+AU~OYpYfw%|R%?ZNwlJAw}ecLsL_9}n&eejfZX_;v8x;CI2F zgTDrUPwSf2J#9wXthD)Q3(^**6{ampD@rR)D@%)}U6^)x+LdY7rfp2yoOXTMjcK=} z-IjJo+5>41roET;QQ9YIpQe45_IcVjX$R82Pj8YwD1Au!i1bnEW75Z_AD5n+J|%r> zdUg6$=~t(3O201shV+}#x1?`Pza{<7^lj<8)89&eC;h$j57PIhf13VT`sW!uL(WLc z7?d$2V?@TNj4>HwGmguckTE4=YDQj0VaAe-s*IY9Wf@M!Ng1bQoSt!J#$6eAXWXB$ zBV%XA!x@ie?8^DPYce-yUY~hm=FOQ~Gw;Z}EA#Hm9ho~b zKh69s^Q+8nG7n^apZR0v&zXNTAx&5lwMmmE9h!9de^s6LTT_SQ{jJuCqje+%k`NL? zNXURBK*CH2B!mRQh>YyvO~4y2xwudY7Ey7aBJRC4H|E~l;6N0ud+)vK9<{dh?Wond zK7F3=Pv7&)`2)^x=Q-zj5#k9vf`A|)q!KiQ0)mcEOeiIcCX^E@2}Z(Cgl0kuVFsa< zFq<%+&`#(etR$=^>?a&193>nloFtqkTp(N`Tp`>eJRp8Y>_;3x97G&U97-HP97QA& z$;4cuil`+P5{rl>L_Kjdv5aUWnu$%s7UB$ID{(e)F0q~1L0n8cK|DqLo%o9Qn)sIZ zH}N0hXX4lJUg5dnP`EdILinWc$>9y*jp0qQcdNLi#dvMh2!BzKVy zlkbq9lV6ZulK&$AkNk%GjzXbCQKBgfN-Tv2^0|}gQBDuC{D^GN)u%cWgTS$ zWfNr!#Ygc|9#j6H{7daeB~fFkLaLaWOqEd6s2NllRY6r!)l@CDkZPxnp}MI})K=;e z>RM`mx{KOHJwQE3Jxo1HeI3;+DlCc;#feIal11sFOi^Q^fGBrVbrcv?6IB~kAJrVy z5;Z+)UX(v-chr%n^HH~>oOF9EtRIA z<({Dv}LpaZ7=OO?L6%w?K15u?KO(Uxc+dQSB6Xe@e1^zP_A(R-tNq7OtLj6NKFH2Qh;hvi!B1Q>A&uC^$V@zkvWXxjBVYD%pFxE2GF?@_; zjMI#Bj0=oQj4O<5j2nzcjDHv(8J`$m7~f*TV#G0dF$FP2F(onjn6j9P7(5?U}DS=b0@Ql+0E=>UW*+X%ZN>k zRmE1ux?`urw#BZBT@$-8c3UhGyFC_-4aSCIcf{_B?TYP=-Nz!Z7%V1>#bUFBtTdL2 zrDkbZde&H0Evue2gEgPEinWooowbwo3+o)~9_s-4Q{2S3V{td)9>slQk7U!?VsW)d-exT9}ba2+{LT4?^O5t3^CiA_{P*$w;zz}^r{xv$ig+bFJ+F*c!JEfh!SnM1JdB6)I(Zj(7kQU?S9#ZY zw|IAWzw+Mm1^h&QGCz%#KqN>KqzI&fG(m=7qhO!ltl+%hqTsUNs^GQY zjo_W&z2Jl3li-WsTS9n3WCArIIw2;3mB2~JPH0GIOqiC?nlL+IZo<5T1qlli79}i6 zSeCFN;X`6rA~}(o7@f#SWF}@ODiU)ORf+0EZDL_!QDSxC#>CBuNFtVqCw3<8Ox&Hg zCvk6LPvU{ZgF=ch?mxPFnlMu+7b=7{p}g7coRkQJg4V#1rLJc3f9TFWC9T%Mxofe%HeH0H9)5LT!QyeGeh*jb|u|`}dE)tiDM~lnFUNIuxF2=>X z#9iWU@jmeZ@geaM@iFlU@hR~`@jpoek_IIWN%|pac#ksZ5$J&6Va!^Q8`H ztF%qJP`X&UOu9n4O1eh6Ub-=LTK>YdcPsrOSKr9Mf0 zp89+0A8CElIB9}3aau}RYFc_)W|}Nbk(Qf2IGvr&N#~^}qzluN(k1Ds>80uQ>5b{r z(r2X4N}rS7mOejyVfvzsxQyHkWrjLKn^BlioKc!FIs?ksmVsno89Op|Wprh9XY^$J zl5r^GNXD^@6PbfE*_oV7US>k3Ff%Drl9`%Wk~uE3KC?0N=ggMO8JVq_voqVWtXcJ0 z%~`XuHe~s;0$E*Id$aau9n3nCbv)~S){CtFWqpzLlJ$}GlMRrC$%e{^GLkG(#*v9+ za+y-5m(|F;vT?GBvU*vAtVz}?n=P9wTP#~D+a~kNP+3scDcdFMl6A{^WVd9uWxvWE z$R5d_%AU(!$iI`P%G2d?xl*1d&zEcE|FLZ4dU=_=LT-@nl3$izkzbeJlHZZvlRuO{ zmVe5oWizum*}Uw8Y+<%IJ2_jLou)`tlq)I}MukOTQ#chaMU~=b#TJEM5ma<4b}70P z-HLsR1B!!+lZvN`XNnh!KNNo{UMt=y-scR<5$8yAGIQiPIXTLlyqx@;f*f7W?wl(* zS95OU+|Ie1b3f-%&Xb%kx%6CCE;m<@E6f$=Cg)0W)BcNKu#%}1D+`oG%2H*SvQlYM zT9sAGu}Y7!Svg(Vs+^;2Q!Y?0SFTiUS7OSLa;LIOxmUSgc~E&o`9S$l`9%3#`MdH@ z5RGCy3l}+VPjZrO71yraCSM5;kR&}d-RKKWhsy?c| z=JmUshjJ-&EgG-%~$OKUROr7w0GEr{&A?v-5NEmHFy?ZGK^XQGQ9j zKL39H=ln04UYb6dewu-rFwIa+tj4ObYg`&oQ=_TXz?$)zNt(%;22G=8s^);^j^?iB zzUGnUspdD$@0vfg{j^zHxmKywXbZGDZLwCbE!S3RjaswTs$HNBXi+V$-J#vB?bh~a zf6?C5e$;*~=u^O5!H|Ms1;Y#O6nrT7Sn#>vTVe0QzJ&t{!wMONIfd%N!ouQ0 zePLN)MWLb4tRv_Ix)fcJu2fg1tJE2F7M)!;R_D<{x=Fgpx|zCJy1Bafx`n#Mx@EeZ zx?Q?Gx_!F+x`VnSx?{R~MSY3}6b&i*p=dvej)zFcq6oAegFP4CnLqkBf*8hv~8ucIG~el+^&=-)>F zUe>#eRmLq#EEAWdlu66d$}-AiW!dGS^7G{v$}g8+E5A{GyZqPk`{f@hC>8VyRt2Ym zS0SiKtPoWsS4b*0RrFMxskmBkui|;d>x$2nBP*jS^_7-Ncjc7Isg-jpS68mB+)%l> za%<(W%IlRkEALd^t9(%TN9C8wZ-(B6zJ~q=l7VC38UzNRL2M{Bj4`+j)dr6NGR!rs zHmo&lFl;t#H5@WrHe5B_Fx)oWH9R+bF#K!yV(ew?Z5(2x8fiv`k!fTZWyWG-sj! zede3yTjsmw`{qaHr{?G8-_74Fy)At${VjtmLo6(d$zriMEglPO8E2VjnQZyVGS$*- zX|c?(v{}|z)>$@Mwp&n3m*t@4u;qy5j^z)_E6W?pJIg=Tk=9YxaBHNMYK^ustg%*^ zb%J%0^(X5L>l|yFb%C|Ry2QHNy3)GZy4JeQid#FaJFF+Ix2$)q_pJ}DkFD=*{cVG6 zLu|ur!)*dvf=y&gwn=U2woIGcX0)~2I&7~HMv?C%}@9fKT09K#$x zI;akTL+D6yq&TDwt;6iFIh+o_;dV@SEO9J%ta7YztaI#i9CMs>oN=6UTyQ*aJa#;D z{N{M+`0V)R?Ct#C+20xNjC4|+G$+F;cBVK}o$1ajXOXkiS>~*88l4_zt+UQK-Z{xR z%Q@FM-`Vb5^RV-n^Mv!X^NRC2&>t8GgaJc=AAk|SC?Fh&1gHQF zU;wcI8;A$^Kq4Rlk^l*i3Zw&BfE>sHlt3P!0SW*ePy*dpqB5%?Ks0cHTLz-(YHFb`-476D6u<-kf{HLwoY2y6zn0e&C=U_c1i z33LJ7Ko9T>a0oa890N`Or-5_81>h2J1-K5}0`3C$frr3j;2H26@Dlh7cn!P--UA2kTMU7!nc!LISHiLS}623MnNs;k*`&~?Oh z+;z%z)^)*k*>%lz({;yn&-K{#%=NTK2ds%KTNs$N&Ut9oBOxSCnbuTHDZsn%7y ztLv(_RpZs&)%&UsRG+QBR(-qrarHBh2$H}^kP6a32FL{Cz<7`kCV(O^8I*vjUOA8ft8>UG=nzK0geG(U==tPtO0957#s&q1Sf+(flXjD*aFT3 zXMuCTHgG=J4t9Wx!KL7Ga22=~Tn}ynw}9I~1Pp)}7y@^KyTLu+UT{Bn5IhVX15bdb zz%$@E@B(-Vyb4|iZ-TeMU%~s}Bk(Es9DD)31pfqIfp5US!4Kdk@T=!LPajWTPk+xK z&tT6`&kvsAo>87~Po#(9p?MgdSWldXGEb$)u+NCss?Igkoc zLmH?MDuzm-GN=+VLKeslIUxY5g2qBMkQW*UO@Qj5DbP<)6Vwb%hh{>vpt;aIs2y4a zErpgtE1@;edT1lG1=af`T%``zSj1t?Ni&gc0g@d?U4Tlyd!Ey)e>tXYALm} zT6%3vEvuGO%d1VO71oMtlWQfl^4c8lB<~b&qxWZTi+84Xwzti@z}w+n;$7}tP5T(Z_wN6-R0fm-RC{vJ>)&=J>fm=J?FjXz2d#@z2&{@z3+YGed_(q`_lWD z_qF$(_aE=S-Y;-3xDVV99taPHhrz?)QE)gM2~*){I0k0H9GC|uz#=#qmcr?97Mu;| z!g;U;E`*C=JzNeOU^8rkov;h8hCOgCTnA5p>){5t32ug`!>#ZfcplsiFM^lCE8x}e zI(Q?z1@^()VGItzJK-*PFT5W<2p@ru!>8c0@CEoXd=0({-+}MJ58)^9bNF}oPxycE zTlhWv5&jH+tLt6Yw{AdPSl!UNAL~Ze5$huAD0Q?tMqO+jyN+8Ys1w$S>r(1c>oV%p zb*IO*j5|Mm-}oC73MY)7FmqzV#95QZ)jR5u`dyR7ljT!PQ^rl%JO!EZS3_DuNrSoJ zX2ZLmvVJQ2skQOnrV&llrX@{iQ+Lzlsidi_scV1EZI(38o)$h$FfDnScG|d>n3mEO zcgy6K87=FlkC-l=K4E&(^!qc&Gva0vXBuX%n|ZsH)tcH`*y?CSXGvyL<_wr4pL?~f zpslja)Ap+E>pa1{;(6|Qi|6f~_j3N#`Ck?cU+}GcV|%duO8Y+xeI0@hbw^vr=8hAK zhA)m^JZo`q@xCSPOOPeUmi8?Dd)eh>FIEg%5w#+JC2wW@%C?m+R*zqOY)$H#yfw$x z4qY3uHg=tQ-RSkn>t*YkHuT+~-7sdu`VHGQbZ>aDarVZ~n~0lun^HIJ-@J3HV5?(m z_14C%Gq=v(I%n&mtxJ8QedWGNpV4RW*?nVtE?>0|^ws#hzHz>ZzRA7@U!!lTZ<=qq zuhlol*XCQ`>+mh{E%&YRt?{k%ZS-yNZSx_%?LN#G^6l{L@^$&TeLcPdzJtEQzGJ?V zzB9gazKg!gzH7c4zT3WEeGhz(d{2G9`Cj_|^u6-E_PzDJ_kHwz@_j|VL%v7)BLk5z zWGM0jG6ETegd>p%6`>(?go(r<9E67?AR;6gks|3xCL%+!kz7QD7x`EF*99yAdtgk!9T*#^33vnJ0uuw113v|(2BrmO1ZD;12IdDA z1{MdF1y%;u1l9*O1-1r|Kp+qdbOv?>_5}6?4g?Mbjs{KyP6y5fE(Wdyt_N-f?gs7$ z9tEBTeha(|{1tc|co+C5@NeJ?+6(Q2_Cp7vgVAB=aC8(Jjz*$XG#ZUTSttkPp$Vu6 zO-7|?I+}%Mqq%4vszD3UVpNZoqXyKB+E6FzLaR{^T8q}96VQ6J0c}E?(dlR_ItQJH zwxf&CrRWNDHM$Pnh;BiB=ynuCL+DPl3*C$EM-QS$(BtSS^elP-y^LN%Z=!e5d+0;- z3HluU9sLviANm%3kA6fyqu;RJSYK=a7KRPQe#Ay%L@WZMU^I+@#bRuXiwQ6xmV`;L zG%OR7V>y@#%f||^BCHfE!zwWoX2l#BfK_2224OHZ9-D+s!5Xoju@-D5HXCch7GNFN z5^OoP3R{b9z&2ysFh7Q3IJN`Zjdf!^*e}>&>=}&A5V838k@Q2`tV0e%cqy_20m>@gI4<-gh!Q`Mcm==@;6~WwK zeozug}x8<4-E_r4h;(p4-rEVAxelAVutvk#E>|Y5=swch7=)XC@-W5 z6@^MeWg%n876L+JL$x6|G(I#bG$k}O)EsIF%?!;BwS^XjmWGyxR)yAwHifo^wukW0 zuF#&){?OsjiO}iL+0doX_0XNrgV5v9Z=pX!{|mhhy$^i~eeLYi*{^e8=its^ox?jv zb%u9RI-@%2oy^X-&csepr?@ktQ`=eG>FliPocJFw>Ob}F{r~*G+t&Z5&ielYZtIFG literal 52193 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 U|C^pY|8EE1`M>@D-rDDX0A9?P82|tP diff --git a/hw/xquartz/bundle/Resources/pt.lproj/locversion.plist b/hw/xquartz/bundle/Resources/pt.lproj/locversion.plist index 9c2dbad4b..3b46498b4 100644 --- a/hw/xquartz/bundle/Resources/pt.lproj/locversion.plist +++ b/hw/xquartz/bundle/Resources/pt.lproj/locversion.plist @@ -3,12 +3,12 @@ LprojCompatibleVersion - 93 + 97 LprojLocale pt LprojRevisionLevel 1 LprojVersion - 93 + 97 diff --git a/hw/xquartz/bundle/Resources/pt.lproj/main.nib/designable.nib b/hw/xquartz/bundle/Resources/pt.lproj/main.nib/designable.nib index 7d11f48eb..ea9f5f321 100644 --- a/hw/xquartz/bundle/Resources/pt.lproj/main.nib/designable.nib +++ b/hw/xquartz/bundle/Resources/pt.lproj/main.nib/designable.nib @@ -1,7 +1,7 @@ - + - 1050 + 1040 11A79a 732 1059 @@ -10,24 +10,12 @@ com.apple.InterfaceBuilder.CocoaPlugin 732 - - YES - - - YES + + com.apple.InterfaceBuilder.CocoaPlugin - - - YES - - YES - - - YES - - - - YES + + + NSApplication @@ -41,8 +29,7 @@ MainMenu - - YES + X11 @@ -60,8 +47,7 @@ submenuAction: X11 - - YES + Sobre o X11 @@ -101,9 +87,7 @@ submenuAction: Serviços - - YES - + _NSServicesMenu @@ -187,7 +171,7 @@ - + _NSAppleMenu @@ -202,8 +186,7 @@ submenuAction: Aplicativos - - YES + YES @@ -224,7 +207,7 @@ - + @@ -238,8 +221,7 @@ submenuAction: Editar - - YES + Copiar @@ -249,7 +231,7 @@ - + @@ -263,8 +245,7 @@ submenuAction: Janela - - YES + Fechar @@ -341,7 +322,7 @@ - + _NSWindowsMenu @@ -356,8 +337,7 @@ submenuAction: Ajuda - - YES + Ajuda X11 @@ -367,10 +347,10 @@ - + - + _NSMainMenu @@ -391,15 +371,13 @@ 256 - - YES + 256 {{13, 10}, {618, 292}} - - YES + 1 @@ -407,8 +385,7 @@ 256 - - YES + 256 @@ -427,7 +404,7 @@ 1211912703 2 - + NSImage NSSwitch @@ -510,7 +487,7 @@ ZS4KA 1211912703 2 - + @@ -549,7 +526,7 @@ ZS4KA 1211912703 2 - + @@ -557,7 +534,45 @@ ZS4KA 25 - + + + 256 + {{36, -1}, {385, 31}} + + YES + + 67239424 + 4194304 + Quando esta opção está marcada, as teclas opção enviam os símbolos de tecla do X11 Alt_L e Alt_R em vez de Mode_switch. + + + + + + + + + 256 + {{18, 36}, {402, 18}} + + YES + + 67239424 + 0 + As teclas Opção enviam Alt_L e Alt_R + + + 1211912703 + 2 + + + + + 200 + 25 + + + {{10, 33}, {598, 246}} @@ -572,8 +587,7 @@ ZS4KA 256 - - YES + 256 @@ -588,7 +602,7 @@ ZS4KA 1211912703 2 - + @@ -655,8 +669,7 @@ ZS4KA OtherViews - - YES + @@ -694,7 +707,7 @@ ZS4KA 24 - + 3 YES @@ -711,7 +724,7 @@ ZS4KA 67239424 4194304 - Q29yZXM6Cg + Cores: @@ -750,7 +763,7 @@ ZS4KA 1211912703 2 - + @@ -772,7 +785,7 @@ ZS4KA 1211912703 2 - + @@ -797,7 +810,7 @@ ZS4KA - + {{10, 33}, {598, 246}} Saída @@ -811,8 +824,7 @@ ZS4KA 256 - - YES + 256 @@ -827,7 +839,7 @@ ZS4KA 1211912703 2 - + @@ -865,7 +877,7 @@ ZS4KA 1211912703 2 - + @@ -887,7 +899,7 @@ ZS4KA 1211912703 2 - + @@ -909,7 +921,7 @@ ZS4KA 1211912703 2 - + @@ -931,7 +943,7 @@ ZS4KA 1211912703 2 - + @@ -971,7 +983,7 @@ ZS4KA - + {{10, 33}, {598, 246}} Área de Colagem @@ -985,8 +997,7 @@ ZS4KA 256 - - YES + 256 @@ -1001,7 +1012,7 @@ ZS4KA 1211912703 2 - + @@ -1039,7 +1050,7 @@ ZS4KA 1211912703 2 - + @@ -1077,7 +1088,7 @@ ZS4KA 1211912703 2 - + @@ -1101,7 +1112,7 @@ ZS4KA - + {{10, 33}, {598, 246}} Janelas @@ -1112,8 +1123,7 @@ ZS4KA 256 - - YES + 256 @@ -1128,7 +1138,7 @@ ZS4KA 1211912703 2 - + @@ -1150,7 +1160,7 @@ ZS4KA 1211912703 2 - + @@ -1209,25 +1219,24 @@ ZS4KA - + {{10, 33}, {598, 246}} Segurança - + 0 YES YES - - YES + - + - + {644, 308} {{0, 0}, {1280, 938}} @@ -1250,8 +1259,7 @@ ZS4KA 256 - - YES + 265 @@ -1305,13 +1313,11 @@ ZS4KA 274 - - YES + 2304 - - YES + 256 @@ -1331,8 +1337,7 @@ ZS4KA {{334, 0}, {16, 17}} - - YES + 132.73099999999999 62.731000000000002 @@ -1440,7 +1445,7 @@ ZS4KA YES - + 3 2 @@ -1463,7 +1468,7 @@ ZS4KA YES 0 - + {{1, 17}, {333, 198}} @@ -1493,10 +1498,9 @@ ZS4KA 2304 - - YES + - + {{1, 0}, {333, 17}} @@ -1505,7 +1509,7 @@ ZS4KA 4 - + {{20, 20}, {350, 231}} @@ -1540,7 +1544,7 @@ ZS4KA 25 - + {519, 271} {{0, 0}, {1280, 938}} @@ -1550,8 +1554,7 @@ ZS4KA Menu - - YES + YES @@ -1574,8 +1577,7 @@ ZS4KA submenuAction: Aplicativos - - YES + YES @@ -1596,16 +1598,15 @@ ZS4KA - + - + - + - - YES + copy: @@ -2150,13 +2151,28 @@ ZS4KA 300475 - + + + prefs_changed: + + + + 300480 + + + + option_sends_alt + + + + 300481 + + - - YES + 0 - + @@ -2181,31 +2197,28 @@ ZS4KA 29 - - YES + - + MainMenu 19 - - YES + - + 24 - - YES + @@ -2214,7 +2227,7 @@ ZS4KA - + @@ -2260,17 +2273,15 @@ ZS4KA 56 - - YES + - + 57 - - YES + @@ -2283,7 +2294,7 @@ ZS4KA - + @@ -2299,10 +2310,9 @@ ZS4KA 131 - - YES + - + @@ -2358,19 +2368,17 @@ ZS4KA 163 - - YES + - + 169 - - YES + - + @@ -2381,20 +2389,18 @@ ZS4KA 269 - - YES + - + 270 - - YES + - + @@ -2410,19 +2416,17 @@ ZS4KA 419 - - YES + - + 420 - - YES + - + @@ -2439,126 +2443,115 @@ ZS4KA 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 + @@ -2567,169 +2560,152 @@ ZS4KA - + 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 @@ -2741,20 +2717,18 @@ ZS4KA 526 - - YES + - + 527 - - YES + - + @@ -2810,10 +2784,9 @@ ZS4KA 100382 - - YES + - + @@ -2864,13 +2837,12 @@ ZS4KA 380 - - YES + - + @@ -2896,13 +2868,12 @@ ZS4KA 295 - - YES + - + @@ -2923,21 +2894,19 @@ ZS4KA 296 - - YES + - + 535 - - YES + - + @@ -2948,10 +2917,9 @@ ZS4KA 298 - - YES + - + @@ -2962,10 +2930,9 @@ ZS4KA 297 - - YES + - + @@ -2976,10 +2943,9 @@ ZS4KA 310 - - YES + - + @@ -2990,10 +2956,9 @@ ZS4KA 292 - - YES + - + @@ -3004,10 +2969,9 @@ ZS4KA 293 - - YES + - + @@ -3018,42 +2982,38 @@ ZS4KA 300337 - - YES + - + 300338 - - YES + - + 300358 - - YES + - + 300359 - - YES + - + @@ -3069,10 +3029,9 @@ ZS4KA 300362 - - YES + - + @@ -3083,10 +3042,9 @@ ZS4KA 300364 - - YES + - + @@ -3097,10 +3055,9 @@ ZS4KA 300368 - - YES + - + @@ -3111,10 +3068,9 @@ ZS4KA 300370 - - YES + - + @@ -3125,17 +3081,15 @@ ZS4KA 300421 - - YES + - + 300422 - - YES + @@ -3144,25 +3098,23 @@ ZS4KA - + 300423 - - YES + - + 300424 - - YES + - + @@ -3178,10 +3130,9 @@ ZS4KA 300447 - - YES + - + @@ -3192,10 +3143,9 @@ ZS4KA 300451 - - YES + - + @@ -3206,10 +3156,9 @@ ZS4KA 300453 - - YES + - + @@ -3220,10 +3169,9 @@ ZS4KA 300455 - - YES + - + @@ -3234,10 +3182,9 @@ ZS4KA 300457 - - YES + - + @@ -3248,10 +3195,9 @@ ZS4KA 300459 - - YES + - + @@ -3262,10 +3208,9 @@ ZS4KA 300472 - - YES + - + @@ -3273,604 +3218,333 @@ ZS4KA - - - - YES - - YES - -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.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.IBPluginDependency - 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.IBPluginDependency - 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 - - {{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}} - {{437, 749}, {484, 308}} - com.apple.InterfaceBuilder.CocoaPlugin - {{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}} - 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 - - {{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 - + + 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 - - + - 300475 + 300481 - - YES + FirstResponder NSObject @@ -3895,16 +3569,12 @@ ZS4KA - + 0 com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - + YES ../X11.xcodeproj diff --git a/hw/xquartz/bundle/Resources/pt.lproj/main.nib/keyedobjects.nib b/hw/xquartz/bundle/Resources/pt.lproj/main.nib/keyedobjects.nib index 5f08c8bf2ec832f43b5faeec9eb1ac16ed7b21d0..1b68c458888701198118f682971b1e4965f8a551 100644 GIT binary patch literal 54537 zcmeFa2VfM{);NC4%?rm^ zvG<0G4HbJYh=^cU^x4H;{^!i>CcDW7@%w-8``-6^PfW5qbMKvd&prK~bEdeuqP(WI zckkB;C5&()5t%4fU#s8Dj!Pr4n(}DX%#P9GMUj%)npqvgv66-5aCvIS+Gur<&{MCz zEx>Of9-@*SB$xCfN0Ot+Ffx)HP0k~ikju#x53+Qw@gU+NSw2DS) zHLat|=?Z!>J&T@A&!Lyn&GcG&9lf32LATNe=~MJ&`U-uOzDD=Zz4Qb6DgBQAMt^52 z)0mg}S&+42tyvqE!@97ptQR|ijbJ0$C^msjWRut|Hk(CQ6^pWJwt}r>$FWn{IqY0^ z9=n`f!LDQ**tP67c00R+-O0AF``AP5Q}#3ag)^>mgJ2NPVS&(qL(rG(s9Fjg`hp6Qvo_JZZjEC#{rL zNoPuDOXo=EN*73%O4mx)N!LqvOZQ0kN{>m8OHWA8N-sz+O0P+;OK(ZLq`lI+(nr!4 z(s$DLGL@OkWmUH1fP9$TRu0LXJVYKYkCP|MQ{*D~SUD^&kgMdVe7w9$ zK0!W7UL&uSFOe^mFO#p9ua|F-@0GX6_sI{*+vO+a*W}mbH{@ON`|=0!*YY>=xAKol zhLWjdDcMR(H`1m$$)4COrK zeB~s*YC2sFT#m>MV7(TB4S!5p{uDq1LL$tE<%0)YH{-)$`QL)XUXP>Spye z^>+0R^-lF(b&GnRdcXRBx>bExeMEgi-L5{XKBvB{zM}3>-&A+2@2KyqAE=+I`_wPh zuhj3={pv63uNu*)rf43`r&(G+%hnFjT5D~z_F4xmN9&^X)Ou-swSL+l?Fj8CZJ0Jn z8?7Cq6>77z*;<*lP^;9cv?W?hTc)knZ0#)VZ0$Vld~LmUv37;FS-V!dOS@a!qTQ!G zq&=)Xu05^2puMWSsqNO@)85xU(f*-*p?#};r~Rb;to@<=>6N^i*YC~nw(z#`w)YKIh%#ecQX+yVv`!_dV~Y-mksid-r>P@-ZLxNj{Iy@&$ZZzHHwizC(Sje64+L ze24kk`r7+C_&WI>(P!)X^&j*f^`G>g^3_44a*1^K_kP+G_s6r;}D~T(b727Xl1lE+8Bo!ZHCIL$cSIKw#8SYw>+kD8Or$>tQZ(41;cGpCy~%$epa zbGA9hoNLZA=bJ_5v1ZsTHcQM>Gh!|<%glvlxw*((Y*v_+W|bK=tIZ{5%&akM%{p_b zxy)Q{t}s`c$C<~QtIQM3)uwF<^F;F`^JMcB^HlRR^K|nJ^GtJ%xz;?(Jlj0SJl8zW zJm0*)TxVWrUSzH}FE%eRFEuYSFE_6+uQabRuQsnSH<%mEP3C6vTJt*ddh-VJM)M}~ zX7d*FR`WLVcJmJNPV+AFZu1`VUUQ3ipLxIefVtIt(0s^z*nGr%)ZAu1Ww|H(xMcG+#1bHeWGcHD5DdH{URKm~Wap&9}^5=G*3O^Br@Kxz~Kx ze9wH}{J{Ls{K)*+{KWj!+-H7fes2E5{KEXw{L1{={Kov&{LcK|+;9G1{%HPW{%rnY z{%Zba{%-zZ{%H}5TFl~>WXYCdc`Vh^EU)FWbjz^(mT6g5zzSL!R;HC@Wm|_>Ev%N- zp;jxawbjNt%xY_etaes=tAo|i>ST4c4!3fwE>>5oo7LUwVfD0fr**8VtEkv(1&Kzy z#7A^u5I-@AMFJ#9GDs%LBH82+(t@-khmuyLHE9FC+maCcZbdqfj-(UmOb#bGqzmav zx{>Zh)*%xL^Gix1H8thM33s**#MPrMnPbi!cjn)=fEz^weHizNj-Ep|N zFgQHgy*0gK2@X7KLg9qS@>;k)+r5hov0JpN3KS5~MPQmRi}r&}XjN@NxGG#0iNQCgmpg`F&jQzH8TePR8T@hne_rsLgG9RUalxLmHNkQP%M<)2 zn+VqDRoH-@q!;N8P;i!o!`ZUU@kSo$L;AvMde+p&%B#w32_BbU4VqR-7+3Ks=}!ib zfn?BZcimOcb*B3<;;yiut~LxCQRsBv2u+V5gJ(`Cbicy~7Xt1$L&(tiFo(LD+GwSF zeFGUn2E&Gq9X=vj5)IdH5>73j3@0N1ygj4t*4paT?l7asXxNj)gCn&Y$tW_044wv0 zjnuk5$C7b&$J?yYQsM2;n4 zQcOxnDT$B;q>L;iWiLQW;8k<-Z;=LtR-iWv&lK+T-$4#_Tly_d$oO!{h0lP{f@oYe$W2E z{>=W`{=xoTP%fw@s3~ZcpsfVGP0%|8y-U!01l=O&{eo^4^dUhX5p0Sx-VUCKQej7e^`p zX+}nBYRjt}q`~cv*2PL9w%;~vpUn~&co|@wK5u4jF5r4?ELu?!iOnpHR7A?cwGnq~ zuOe3$S($+G<;4^0YAYhO^;EHuTt%)Sg8_fwUj5bN8Eqn)NeCX<*|u!gA@`B{VaNx_R`MWu2nK$bJOWSLMjnIVpMZZ)l3Nfh%a=z=$5sO67FmG_g}@g^ zEvYMCS`aNQ2-hI&2@zD~yWf1r(fn{ddt?W!q3$Fh2&p++VNw2~Do&{Qejyz9Z07y-V)HwU#5PS>! z5IY-|9G@F7C!EQMg^`lQmEqW87yhr1R~`21(rBXp2J#9S+%WhX>+!}yY*1~2w?gNU{AioK>FjW$BcQz|A^A453kRlF4 zi2{2G1Dh!ab`mDBP-kZ=s7Af8g>f#IAB%-oY=mn*G8p#I`RX<^s6UQW8>j)Sw=`O^ z7y+L|88k>U9LhM}&Pk#SnoVw|Eoe)-E5PPByUWaiaCsGWjf07{u{&<2htak)MBCB! zb~n4go@&pvYtwEe?MOS(&hQ`yXtW!wyocSxU3*V>Zp!Mr7XlM#v|sfUOLJjfeV}(Q znAdo_dty2R?2b3nfpic(f)1uf(jjyxJ&F#a`E)oPVfVK4?0$BC`$&6;JP1H=RNYq4%`J(r{sY6WiJ+ zYMHRHF-L~r_I?JNTLN1f2FcMA|4r`R493yfiP<4Hq2UIMi%+wj&eOxclt$=+#1M2b zOtI1)=uUD_%^CIY%X+KD5Zn$gil4#Hzxv z(9}ppI0S61JUltv+i*sCXU+Ula39;f94kNRz;W8LbLe zl&=iOdiLy@p2Yv4e=?E)0h7tY%wtb?hn&$E1kS=0Wb91<@pX~5T_zrt6xAikJI3?vAvgqcv)cDq$17PA;MTfozjYV9SFfNWJmFqKUz(imZ-J1`Ab1Lxqv5+Vaw9XlxaF_oI_fXl}Ku zQdWEN-&yTxiLPudOz`ZqaF2l}VrneB5|)Y#GlcqiXmku_7nu)SEAD}4mT$51*#&G} zJ>p*i&$-NA>ON^%W5lnUmcOX3v@zbtxfi<%u>LZ8IpBOkMPr+gW;fd_n!^4%w$9~Q z>}Gi6t%(PwFrJmOoX4SLngdHo=zmiyQ}su7H~pBb2g~XNV3NN1;p*y|qMC%AlB8#{ z2iR7p-QBir`}SJd>|yo@dz5WskFm$u6C}vCvnSb8>}mE4dzL-No@Xzx7uiefW%det zmA%GZXK%0_>`k^4e%@lc*xPJ3dxz~|d)d42?R`My58?jDO>GM{Yb;z=hHV@x z3GK7d(b$A&71&te3dejK9xhp27K_$ZmBPqT=+yybJ(y(E%OlGY-IGjT=V@U2jEq~g zV8tCB3B&WSeUa4y%rC$jFpVoJ3ai5<@a&@_Rgw1LA(m6`VZR;Kv6~Kgm8xu+GWP?ldd@>;bDBLyr5o>7bnRum+^r#4R4+LG+S= zJE74{u>5fCh&>6!exm`DJd4 zu`hXBAhaF4J?{X&JMqr^aGt|E0}Q(H?z{&OT8%?!umkA70R|X<_VmIM*O}w^1Kg>P zs3@<-+klqt-Tca0bi*E)SoldsX+)ak>3r?*^=j1F$#God;a3fh0EZJQsASm*d(3?`L=1$oumF ze4xG7zQ*3Xiyy%UvtLP&AIXRCq5LR5jOUXl_z1R@kK&{G7=AP#3*V0c3K?4i00-`a zbcN&&ls5us8de)$K72tBNO-wJU-+@S%K7NJWgOOo38z$fsDFyTpjGJBj);e~uEpT?*2 z8GI(d8fWC}7(Ar@a~{kkzJ0hKQ-PKox&lf97Em3H)dnT;$FP7(?6d8Q?REA!_W4sM zL@Oi6=x^Y2_*_1Z&*w$_SU|ow176@f#XiqIx5Kc`&U{HgZ#{Q>T}gRqcuXt|4A;f+ z5?%_u(7C;VmpCpZzJQnUg?ub8$4MfOMZV}jVqtl0#J=E|-aUav`}D~hG>Eu^Eanve zD5vcPzL*StgI56vqA*f5Ujk#*@LFDnND7-$5iLXK7Xkyvj(h!_&-R7(1@=XjVy~ZG zxS|H!R3Ic4I=s3bCgAd_pWjORg5ka6GdP~FYD|p?-_864zM9)yG$mHN?Fb&g5Sekwl=u<#6iCSSvLl3U^=2vmnO2G;L{!bueX zwuR9OkTtIFJ(!sb+b9wHQoyCF>?`ccfK_MC!U=@%L8<$BKEJ@-zpnB9lQNT6e-W%c zmo$d-r3h&Uj#t|2f%r>Yw{AWB-2Gb3uiON1xr$#+2B%xG+iC;f2&+nxJRA51@ESHl zlh-;lc>}+Z-{jEbEtpW;tD^M6*eZ*=B=ZPNTZ*3WsMjP+io4l6obaw3q`|>$1$~zRXD;4$l+rU#!=DYbj^(#dk>??AM zgZ!ZVEURhIkD9FiCJp3XW-6BLUrV^�FG?QcH~WH-y?geHllLF|PvndVHE**- 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 J|6l94{{b3~_Xhv~ literal 52696 zcmeFa2YeLO_Bej;ow~cTGrQ>_lm!BU)Fgx|y$I3?y@gG(B!MIwQm7(x1q5t>ir5Q9 z5fm#bHpGIcSV8Pq0Tnyg+y9)I-DEe}@bLY=-_LvB-+Rx;W@qN!JLjHz?rHa&vw7tu z#g$c^J0BvHFd`6npC72GEDn}UP7mhI3FKE*PD%Gy_dGKdT%Ysp4(9l4&|KyD#h$z5b8xu5JK&yfSF1p>ZER}(|DRfQ)zSBo_3%eX%-zo&!fZXcshYjq<&gL zOKBOcr1R+ldLg}pUP>>c*U-&$3*Ab0(!1$y`UriNzD!@CuhQ4(d-Q$!5j{q~qrcMM zn9LNWGL3myDr>~jSZj6`Yr{IQ?yNr>zy`7rY$O}SCb7vZpOvsuR>l^vg=`U9!7gK$ zv$gCxc0Id+-NLr8yVy>4H@k=JVh^%M*)jGL`&l4@Q*a4hAz5fIbPzIxZo+xOBw@0U zE6ft|g(6|DP$g6g^Myr%DO@UCCR`zG5Uvxh7j70d33mz)2)l$m!t=sw!t27D!dt?p z!so)*!Z*VA!cW4_L=k=yiAY6RG{i(PNo+565HrL~v8&ia>?8IU2Z-m2L&cHe1aX=; zU91!ric7@R;-%tc;^pFc@fvZ9xK+GOyidGed_a6s+$%mM?iXJa4~VacuZwSrZ;9`V zN5oIW6XJK`_u^j?k*Fj~x@1U=r6y8Ssio9TYA^MWdP=>de$r5Bv@}MVA
r2?r$ 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%0D@<0|87;~L`zV~6pW@r3cD@s#n5@sjb1@tN_3 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 diff --git a/hw/xquartz/bundle/Resources/pt_PT.lproj/locversion.plist b/hw/xquartz/bundle/Resources/pt_PT.lproj/locversion.plist index 42ca3d2ff..cf6548ad2 100644 --- a/hw/xquartz/bundle/Resources/pt_PT.lproj/locversion.plist +++ b/hw/xquartz/bundle/Resources/pt_PT.lproj/locversion.plist @@ -3,12 +3,12 @@ LprojCompatibleVersion - 93 + 97 LprojLocale pt_PT LprojRevisionLevel 1 LprojVersion - 93 + 97 diff --git a/hw/xquartz/bundle/Resources/pt_PT.lproj/main.nib/designable.nib b/hw/xquartz/bundle/Resources/pt_PT.lproj/main.nib/designable.nib index d2b7c017c..710d9eaa8 100644 --- a/hw/xquartz/bundle/Resources/pt_PT.lproj/main.nib/designable.nib +++ b/hw/xquartz/bundle/Resources/pt_PT.lproj/main.nib/designable.nib @@ -1,7 +1,7 @@ - + - 1050 + 1040 11A79a 732 1059 @@ -10,24 +10,12 @@ com.apple.InterfaceBuilder.CocoaPlugin 732
- - YES - - - YES + + com.apple.InterfaceBuilder.CocoaPlugin - - - YES - - YES - - - YES - - - - YES + + + NSApplication @@ -41,8 +29,7 @@ MainMenu - - YES + X11 @@ -60,8 +47,7 @@ submenuAction: X11 - - YES + Acerca do X11 @@ -101,9 +87,7 @@ submenuAction: Serviços - - YES - + _NSServicesMenu @@ -187,7 +171,7 @@ - + _NSAppleMenu @@ -202,8 +186,7 @@ submenuAction: Aplicações - - YES + YES @@ -224,7 +207,7 @@ - + @@ -238,8 +221,7 @@ submenuAction: Edição - - YES + Copiar @@ -249,7 +231,7 @@ - + @@ -263,8 +245,7 @@ submenuAction: Janela - - YES + Fechar @@ -341,7 +322,7 @@ - + _NSWindowsMenu @@ -356,8 +337,7 @@ submenuAction: Ajuda - - YES + Ajuda do X11 @@ -367,10 +347,10 @@ - + - + _NSMainMenu
@@ -391,15 +371,13 @@ 256 - - YES + 256 {{13, 10}, {607, 292}} - - YES + 1 @@ -407,8 +385,7 @@ 256 - - YES + 256 @@ -427,7 +404,7 @@ 1211912703 2 - + NSImage NSSwitch @@ -509,7 +486,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 1211912703 2 - + @@ -548,7 +525,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 1211912703 2 - + @@ -556,7 +533,45 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 25 - + + + 256 + {{36, -1}, {385, 31}} + + YES + + 67239424 + 4194304 + Quando activadas, as teclas de opção enviam símbolos de teclas X11 Alt_L e Alt_R em vez de alternar_modo. + + + + + + + + + 256 + {{18, 36}, {402, 18}} + + YES + + 67239424 + 0 + As teclas de opção enviam Alt_L e Alt_R + + + 1211912703 + 2 + + + + + 200 + 25 + + + {{10, 33}, {587, 246}} @@ -571,8 +586,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 256 - - YES + 256 @@ -587,7 +601,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 1211912703 2 - + @@ -654,8 +668,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo OtherViews - - YES + @@ -693,7 +706,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 24 - + 3 YES @@ -710,7 +723,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 67239424 4194304 - Q29yZXM6Cg + Cores: @@ -749,7 +762,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 1211912703 2 - + @@ -771,7 +784,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 1211912703 2 - + @@ -796,7 +809,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo - + {{10, 33}, {587, 246}} Saída @@ -810,8 +823,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 256 - - YES + 256 @@ -826,7 +838,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 1211912703 2 - + @@ -864,7 +876,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 1211912703 2 - + @@ -886,7 +898,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 1211912703 2 - + @@ -908,7 +920,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 1211912703 2 - + @@ -930,7 +942,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 1211912703 2 - + @@ -970,7 +982,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo - + {{10, 33}, {587, 246}} Área de colagem @@ -984,8 +996,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 256 - - YES + 256 @@ -1000,7 +1011,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 1211912703 2 - + @@ -1038,7 +1049,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 1211912703 2 - + @@ -1076,7 +1087,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 1211912703 2 - + @@ -1100,7 +1111,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo - + {{10, 33}, {587, 246}} Janelas @@ -1111,8 +1122,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 256 - - YES + 256 @@ -1127,7 +1137,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 1211912703 2 - + @@ -1149,7 +1159,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 1211912703 2 - + @@ -1208,25 +1218,24 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo - + {{10, 33}, {587, 246}} Segurança - + 0 YES YES - - YES + - + -
+ {633, 308}
{{0, 0}, {1440, 878}} @@ -1249,8 +1258,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 256 - - YES + 265 @@ -1304,13 +1312,11 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 274 - - YES + 2304 - - YES + 256 @@ -1330,8 +1336,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo {{280, 0}, {16, 17}} - - YES + 99.731002807617188 62.730998992919922 @@ -1439,7 +1444,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo YES - + 3 2 @@ -1462,7 +1467,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo YES 0 - + {{1, 17}, {279, 198}} @@ -1492,10 +1497,9 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 2304 - - YES + - + {{1, 0}, {279, 17}} @@ -1504,7 +1508,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 4 - + {{20, 20}, {296, 231}} @@ -1539,7 +1543,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 25 - + {477, 271} {{0, 0}, {1440, 878}} @@ -1549,8 +1553,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo
Menu - - YES + YES @@ -1573,8 +1576,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo submenuAction: Aplicações - - YES + YES @@ -1595,16 +1597,15 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo - + - + -
+ - - YES + copy: @@ -2149,13 +2150,28 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 300475 - + + + prefs_changed: + + + + 300480 + + + + option_sends_alt + + + + 300481 + + - - YES + 0 - + @@ -2180,31 +2196,28 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 29 - - YES + - + MainMenu 19 - - YES + - + 24 - - YES + @@ -2213,7 +2226,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo - + @@ -2259,17 +2272,15 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 56 - - YES + - + 57 - - YES + @@ -2282,7 +2293,7 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo - + @@ -2298,10 +2309,9 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 131 - - YES + - + @@ -2357,19 +2367,17 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 163 - - YES + - + 169 - - YES + - + @@ -2380,20 +2388,18 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 269 - - YES + - + 270 - - YES + - + @@ -2409,19 +2415,17 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 419 - - YES + - + 420 - - YES + - + @@ -2438,126 +2442,115 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 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 + @@ -2566,169 +2559,152 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo - + 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 @@ -2740,20 +2716,18 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 526 - - YES + - + 527 - - YES + - + @@ -2809,10 +2783,9 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 100382 - - YES + - + @@ -2863,13 +2836,12 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 380 - - YES + - + @@ -2895,13 +2867,12 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 295 - - YES + - + @@ -2922,21 +2893,19 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 296 - - YES + - + 535 - - YES + - + @@ -2947,10 +2916,9 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 298 - - YES + - + @@ -2961,10 +2929,9 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 297 - - YES + - + @@ -2975,10 +2942,9 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 310 - - YES + - + @@ -2989,10 +2955,9 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 292 - - YES + - + @@ -3003,10 +2968,9 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 293 - - YES + - + @@ -3017,42 +2981,38 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 300337 - - YES + - + 300338 - - YES + - + 300358 - - YES + - + 300359 - - YES + - + @@ -3068,10 +3028,9 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 300362 - - YES + - + @@ -3082,10 +3041,9 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 300364 - - YES + - + @@ -3096,10 +3054,9 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 300368 - - YES + - + @@ -3110,10 +3067,9 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 300370 - - YES + - + @@ -3124,17 +3080,15 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 300421 - - YES + - + 300422 - - YES + @@ -3143,25 +3097,23 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo - + 300423 - - YES + - + 300424 - - YES + - + @@ -3177,10 +3129,9 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 300447 - - YES + - + @@ -3191,10 +3142,9 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 300451 - - YES + - + @@ -3205,10 +3155,9 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 300453 - - YES + - + @@ -3219,10 +3168,9 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 300455 - - YES + - + @@ -3233,10 +3181,9 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 300457 - - YES + - + @@ -3247,10 +3194,9 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 300459 - - YES + - + @@ -3261,10 +3207,9 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo 300472 - - YES + - + @@ -3272,604 +3217,333 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo - - - - YES - - YES - -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.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.IBPluginDependency - 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.IBPluginDependency - 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 - - {{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}} - {{437, 749}, {484, 308}} - com.apple.InterfaceBuilder.CocoaPlugin - {{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}} - 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 - - {{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 - + + 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 - - + - 300475 + 300481 - - YES + FirstResponder NSObject @@ -3894,16 +3568,12 @@ cmEgYWN0aXZhciBvcyBib3TDtWVzIGNlbnRyYWwgb3UgZGlyZWl0byBkbyByYXRvLgo - + 0 com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - + YES ../X11.xcodeproj diff --git a/hw/xquartz/bundle/Resources/pt_PT.lproj/main.nib/keyedobjects.nib b/hw/xquartz/bundle/Resources/pt_PT.lproj/main.nib/keyedobjects.nib index ff75065ec9c4661012dc4ec6588a6fec1fc88b3b..efae776996562da30a63a36889e352d0312ddd84 100644 GIT binary patch literal 55486 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 D2$vhV delta 27151 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 diff --git a/hw/xquartz/bundle/Resources/ru.lproj/locversion.plist b/hw/xquartz/bundle/Resources/ru.lproj/locversion.plist index 6e924f4de..06b662be8 100644 --- a/hw/xquartz/bundle/Resources/ru.lproj/locversion.plist +++ b/hw/xquartz/bundle/Resources/ru.lproj/locversion.plist @@ -3,12 +3,12 @@ LprojCompatibleVersion - 93 + 97 LprojLocale ru LprojRevisionLevel 1 LprojVersion - 93 + 97 diff --git a/hw/xquartz/bundle/Resources/ru.lproj/main.nib/designable.nib b/hw/xquartz/bundle/Resources/ru.lproj/main.nib/designable.nib index c900cef44..bba4ce614 100644 --- a/hw/xquartz/bundle/Resources/ru.lproj/main.nib/designable.nib +++ b/hw/xquartz/bundle/Resources/ru.lproj/main.nib/designable.nib @@ -1,7 +1,7 @@ - + - 1050 + 1040 11A79a 732 1059 @@ -10,24 +10,12 @@ com.apple.InterfaceBuilder.CocoaPlugin 732 - - YES - - - YES + + com.apple.InterfaceBuilder.CocoaPlugin - - - YES - - YES - - - YES - - - - YES + + + NSApplication @@ -41,8 +29,7 @@ MainMenu - - YES + X11 @@ -60,8 +47,7 @@ submenuAction: X11 - - YES + О программе X11 @@ -101,9 +87,7 @@ submenuAction: Службы - - YES - + _NSServicesMenu @@ -187,7 +171,7 @@ - + _NSAppleMenu @@ -202,8 +186,7 @@ submenuAction: Программы - - YES + YES @@ -224,7 +207,7 @@ - + @@ -238,8 +221,7 @@ submenuAction: Правка - - YES + Копировать @@ -249,7 +231,7 @@ - + @@ -263,8 +245,7 @@ submenuAction: Окно - - YES + Закрыть @@ -305,7 +286,7 @@ - Последовательное переключение окон + Круговое переключение окон ` 1048576 2147483647 @@ -314,7 +295,7 @@ - Обратное последовательное переключение окон + Обратное круговое переключение окон ` 1179648 2147483647 @@ -334,14 +315,14 @@ - Все окна – на передний план + Все окна - на передний план 1048576 2147483647 - + _NSWindowsMenu @@ -356,8 +337,7 @@ submenuAction: Справка - - YES + Справка X11 @@ -367,10 +347,10 @@ - + - + _NSMainMenu @@ -391,15 +371,13 @@ 256 - - YES + 256 {{13, 10}, {578, 292}} - - YES + 1 @@ -407,8 +385,7 @@ 256 - - YES + 256 @@ -427,7 +404,7 @@ 1211912703 2 - + NSImage NSSwitch @@ -510,7 +487,7 @@ 1211912703 2 - + @@ -549,7 +526,7 @@ 1211912703 2 - + @@ -557,7 +534,45 @@ 25 - + + + 256 + {{62, -1}, {385, 31}} + + YES + + 67239424 + 4194304 + Если включено, клавиши Option отправляют символы X11 клавиш Alt_L и Alt_R X11, вместо Mode_switch. + + + + + + + + + 256 + {{44, 36}, {402, 18}} + + YES + + 67239424 + 0 + Клавиши Option отправляют Alt_L и Alt_R + + + 1211912703 + 2 + + + + + 200 + 25 + + + {{10, 33}, {558, 246}} @@ -572,8 +587,7 @@ 256 - - YES + 256 @@ -588,7 +602,7 @@ 1211912703 2 - + @@ -655,8 +669,7 @@ OtherViews - - YES + @@ -694,7 +707,7 @@ 24 - + 3 YES @@ -711,7 +724,7 @@ 67239424 4194304 - 0KbQstC10YLQsDoKA + Цвета: @@ -750,7 +763,7 @@ 1211912703 2 - + @@ -772,7 +785,7 @@ 1211912703 2 - + @@ -797,7 +810,7 @@ - + {{10, 33}, {558, 246}} Выход @@ -811,8 +824,7 @@ 256 - - YES + 256 @@ -827,7 +839,7 @@ 1211912703 2 - + @@ -865,7 +877,7 @@ 1211912703 2 - + @@ -887,7 +899,7 @@ 1211912703 2 - + @@ -909,7 +921,7 @@ 1211912703 2 - + @@ -931,7 +943,7 @@ 1211912703 2 - + @@ -971,7 +983,7 @@ - + {{10, 33}, {558, 246}} Буфер обмена @@ -985,8 +997,7 @@ 256 - - YES + 256 @@ -1001,7 +1012,7 @@ 1211912703 2 - + @@ -1039,7 +1050,7 @@ 1211912703 2 - + @@ -1077,7 +1088,7 @@ 1211912703 2 - + @@ -1101,7 +1112,7 @@ - + {{10, 33}, {558, 246}} Окна @@ -1112,8 +1123,7 @@ 256 - - YES + 256 @@ -1128,7 +1138,7 @@ 1211912703 2 - + @@ -1150,7 +1160,7 @@ 1211912703 2 - + @@ -1209,25 +1219,24 @@ - + {{10, 33}, {558, 246}} Безопасность - + 0 YES YES - - YES + - + - + {604, 308} {{0, 0}, {1280, 938}} @@ -1250,8 +1259,7 @@ 256 - - YES + 265 @@ -1305,13 +1313,11 @@ 274 - - YES + 2304 - - YES + 256 @@ -1331,8 +1337,7 @@ {{352, 0}, {16, 17}} - - YES + 138.73101806640625 62.730998992919922 @@ -1440,7 +1445,7 @@ YES - + 3 2 @@ -1463,7 +1468,7 @@ YES 0 - + {{1, 17}, {351, 198}} @@ -1493,10 +1498,9 @@ 2304 - - YES + - + {{1, 0}, {351, 17}} @@ -1505,7 +1509,7 @@ 4 - + {{10, 20}, {368, 231}} @@ -1540,7 +1544,7 @@ 25 - + {504, 271} {{0, 0}, {1280, 938}} @@ -1550,8 +1554,7 @@ Меню - - YES + YES @@ -1574,8 +1577,7 @@ submenuAction: Программы - - YES + YES @@ -1596,16 +1598,15 @@ - + - + - + - - YES + copy: @@ -2150,13 +2151,28 @@ 300475 - + + + prefs_changed: + + + + 300480 + + + + option_sends_alt + + + + 300481 + + - - YES + 0 - + @@ -2181,31 +2197,28 @@ 29 - - YES + - + MainMenu 19 - - YES + - + 24 - - YES + @@ -2214,7 +2227,7 @@ - + @@ -2260,17 +2273,15 @@ 56 - - YES + - + 57 - - YES + @@ -2283,7 +2294,7 @@ - + @@ -2299,10 +2310,9 @@ 131 - - YES + - + @@ -2358,19 +2368,17 @@ 163 - - YES + - + 169 - - YES + - + @@ -2381,20 +2389,18 @@ 269 - - YES + - + 270 - - YES + - + @@ -2410,19 +2416,17 @@ 419 - - YES + - + 420 - - YES + - + @@ -2439,126 +2443,115 @@ 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 + @@ -2567,169 +2560,152 @@ - + 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 @@ -2741,20 +2717,18 @@ 526 - - YES + - + 527 - - YES + - + @@ -2810,10 +2784,9 @@ 100382 - - YES + - + @@ -2864,13 +2837,12 @@ 380 - - YES + - + @@ -2896,13 +2868,12 @@ 295 - - YES + - + @@ -2923,21 +2894,19 @@ 296 - - YES + - + 535 - - YES + - + @@ -2948,10 +2917,9 @@ 298 - - YES + - + @@ -2962,10 +2930,9 @@ 297 - - YES + - + @@ -2976,10 +2943,9 @@ 310 - - YES + - + @@ -2990,10 +2956,9 @@ 292 - - YES + - + @@ -3004,10 +2969,9 @@ 293 - - YES + - + @@ -3018,42 +2982,38 @@ 300337 - - YES + - + 300338 - - YES + - + 300358 - - YES + - + 300359 - - YES + - + @@ -3069,10 +3029,9 @@ 300362 - - YES + - + @@ -3083,10 +3042,9 @@ 300364 - - YES + - + @@ -3097,10 +3055,9 @@ 300368 - - YES + - + @@ -3111,10 +3068,9 @@ 300370 - - YES + - + @@ -3125,17 +3081,15 @@ 300421 - - YES + - + 300422 - - YES + @@ -3144,25 +3098,23 @@ - + 300423 - - YES + - + 300424 - - YES + - + @@ -3178,10 +3130,9 @@ 300447 - - YES + - + @@ -3192,10 +3143,9 @@ 300451 - - YES + - + @@ -3206,10 +3156,9 @@ 300453 - - YES + - + @@ -3220,10 +3169,9 @@ 300455 - - YES + - + @@ -3234,10 +3182,9 @@ 300457 - - YES + - + @@ -3248,10 +3195,9 @@ 300459 - - YES + - + @@ -3262,10 +3208,9 @@ 300472 - - YES + - + @@ -3273,604 +3218,334 @@ - - - - YES - - YES - -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.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.IBPluginDependency - 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.IBPluginDependency - 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 - - {{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}} - {{437, 749}, {484, 308}} - com.apple.InterfaceBuilder.CocoaPlugin - {{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}} - 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 - - {{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 - + + 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, 548}, {604, 308}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{507, 548}, {604, 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 - - + - 300475 + 300481 - - YES + FirstResponder NSObject @@ -3895,16 +3570,12 @@ - + 0 com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - + YES ../X11.xcodeproj diff --git a/hw/xquartz/bundle/Resources/ru.lproj/main.nib/keyedobjects.nib b/hw/xquartz/bundle/Resources/ru.lproj/main.nib/keyedobjects.nib index 0342bb5de59173d0f453d7afd0f1a9ad668997c0..9c5cc85e75c8220461fc560230c2e3b30b912ce5 100644 GIT binary patch literal 56631 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 Pdi`Jj_oM!Q3GMhFn($$F literal 54972 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 w*n(JdY LprojCompatibleVersion - 93 + 97 LprojLocale sv LprojRevisionLevel 1 LprojVersion - 93 + 97 diff --git a/hw/xquartz/bundle/Resources/sv.lproj/main.nib/designable.nib b/hw/xquartz/bundle/Resources/sv.lproj/main.nib/designable.nib index a6a828905..601aca4ba 100644 --- a/hw/xquartz/bundle/Resources/sv.lproj/main.nib/designable.nib +++ b/hw/xquartz/bundle/Resources/sv.lproj/main.nib/designable.nib @@ -1,33 +1,21 @@ - + - 1050 + 1040 11A79a - 732 + 784 1059 478.00 com.apple.InterfaceBuilder.CocoaPlugin - 732 + 784 - - YES - - - YES + + com.apple.InterfaceBuilder.CocoaPlugin - - - YES - - YES - - - YES - - - - YES + + + NSApplication @@ -41,8 +29,7 @@ MainMenu - - YES + X11 @@ -60,8 +47,7 @@ submenuAction: X11 - - YES + Om X11 @@ -101,9 +87,7 @@ submenuAction: Tjänster - - YES - + _NSServicesMenu @@ -187,7 +171,7 @@ - + _NSAppleMenu @@ -202,8 +186,7 @@ submenuAction: Program - - YES + YES @@ -224,7 +207,7 @@ - + @@ -238,8 +221,7 @@ submenuAction: Redigera - - YES + Kopiera @@ -249,7 +231,7 @@ - + @@ -263,8 +245,7 @@ submenuAction: Fönster - - YES + Stäng @@ -341,7 +322,7 @@ - + _NSWindowsMenu @@ -356,8 +337,7 @@ submenuAction: Hjälp - - YES + X11 Hjälp @@ -367,10 +347,10 @@ - + - + _NSMainMenu
@@ -386,20 +366,19 @@ View - {1.7976931348623157e+308, 1.7976931348623157e+308} + {3.4028235e+38, 3.4028235e+38} {320, 240} - + 256 - - YES + 256 {{13, 10}, {458, 292}} - - YES + + 1 @@ -407,13 +386,13 @@ 256 - - YES + 256 {{18, 210}, {402, 18}} + YES 67239424 @@ -427,7 +406,7 @@ 1211912703 2 - + NSImage NSSwitch @@ -443,8 +422,9 @@ 256 - {{36, 48}, {385, 31}} + {{36, 56}, {385, 31}} + YES 67239424 @@ -463,7 +443,7 @@ controlColor 3 - MC42NjY2NjY2NjY3AA + MC42NjY2NjY2ODY1AA @@ -480,8 +460,9 @@ 256 - {{36, 162}, {385, 42}} + {{36, 164}, {385, 42}} + YES 67239424 @@ -498,8 +479,9 @@ ciBzw6UgYWt0aXZlcmFzIG11c2VucyBtaXR0LSByZXNwZWt0aXZlIGjDtmdlcmtuYXBwLgo 256 - {{18, 85}, {402, 18}} + {{18, 91}, {402, 18}} + YES 67239424 @@ -509,7 +491,7 @@ ciBzw6UgYWt0aXZlcmFzIG11c2VucyBtaXR0LSByZXNwZWt0aXZlIGjDtmdlcmtuYXBwLgo 1211912703 2 - + @@ -520,8 +502,9 @@ ciBzw6UgYWt0aXZlcmFzIG11c2VucyBtaXR0LSByZXNwZWt0aXZlIGjDtmdlcmtuYXBwLgo 256 - {{36, 111}, {400, 29}} + {{36, 116}, {400, 29}} + YES 67239424 @@ -537,8 +520,9 @@ ciBzw6UgYWt0aXZlcmFzIG11c2VucyBtaXR0LSByZXNwZWt0aXZlIGjDtmdlcmtuYXBwLgo 256 - {{18, 146}, {402, 18}} + {{18, 149}, {402, 18}} + YES 67239424 @@ -548,7 +532,7 @@ ciBzw6UgYWt0aXZlcmFzIG11c2VucyBtaXR0LSByZXNwZWt0aXZlIGjDtmdlcmtuYXBwLgo 1211912703 2 - + @@ -556,9 +540,50 @@ ciBzw6UgYWt0aXZlcmFzIG11c2VucyBtaXR0LSByZXNwZWt0aXZlIGjDtmdlcmtuYXBwLgo 25 - + + + 256 + {{36, 1}, {385, 31}} + + + YES + + 67239424 + 4194304 + När aktiverad kommer alt-tangenterna att skicka tangentsymboler Alt_L och Alt_R X11 istället för Mode_switch. + + + + + + + + + 256 + {{18, 36}, {402, 18}} + + + YES + + 67239424 + 0 + Alt-tangenter sänder Alt_L och Alt_R + + + 1211912703 + 2 + + + + + 200 + 25 + + + {{10, 33}, {438, 246}} + Indata @@ -571,8 +596,7 @@ ciBzw6UgYWt0aXZlcmFzIG11c2VucyBtaXR0LSByZXNwZWt0aXZlIGjDtmdlcmtuYXBwLgo 256 - - YES + 256 @@ -587,7 +611,7 @@ ciBzw6UgYWt0aXZlcmFzIG11c2VucyBtaXR0LSByZXNwZWt0aXZlIGjDtmdlcmtuYXBwLgo 1211912703 2 - + @@ -654,8 +678,7 @@ ciBzw6UgYWt0aXZlcmFzIG11c2VucyBtaXR0LSByZXNwZWt0aXZlIGjDtmdlcmtuYXBwLgo OtherViews - - YES + @@ -693,7 +716,7 @@ ciBzw6UgYWt0aXZlcmFzIG11c2VucyBtaXR0LSByZXNwZWt0aXZlIGjDtmdlcmtuYXBwLgo 24 - + 3 YES @@ -710,7 +733,7 @@ ciBzw6UgYWt0aXZlcmFzIG11c2VucyBtaXR0LSByZXNwZWt0aXZlIGjDtmdlcmtuYXBwLgo 67239424 4194304 - RsOkcmdlcjoKA + Färger: @@ -749,7 +772,7 @@ ciBzw6UgYWt0aXZlcmFzIG11c2VucyBtaXR0LSByZXNwZWt0aXZlIGjDtmdlcmtuYXBwLgo 1211912703 2 - + @@ -771,7 +794,7 @@ ciBzw6UgYWt0aXZlcmFzIG11c2VucyBtaXR0LSByZXNwZWt0aXZlIGjDtmdlcmtuYXBwLgo 1211912703 2 - + @@ -796,7 +819,7 @@ ciBzw6UgYWt0aXZlcmFzIG11c2VucyBtaXR0LSByZXNwZWt0aXZlIGjDtmdlcmtuYXBwLgo - + {{10, 33}, {438, 246}} Utdata @@ -810,8 +833,7 @@ ciBzw6UgYWt0aXZlcmFzIG11c2VucyBtaXR0LSByZXNwZWt0aXZlIGjDtmdlcmtuYXBwLgo 256 - - YES + 256 @@ -826,7 +848,7 @@ ciBzw6UgYWt0aXZlcmFzIG11c2VucyBtaXR0LSByZXNwZWt0aXZlIGjDtmdlcmtuYXBwLgo 1211912703 2 - + @@ -864,7 +886,7 @@ ciBzw6UgYWt0aXZlcmFzIG11c2VucyBtaXR0LSByZXNwZWt0aXZlIGjDtmdlcmtuYXBwLgo 1211912703 2 - + @@ -886,7 +908,7 @@ ciBzw6UgYWt0aXZlcmFzIG11c2VucyBtaXR0LSByZXNwZWt0aXZlIGjDtmdlcmtuYXBwLgo 1211912703 2 - + @@ -908,7 +930,7 @@ ciBzw6UgYWt0aXZlcmFzIG11c2VucyBtaXR0LSByZXNwZWt0aXZlIGjDtmdlcmtuYXBwLgo 1211912703 2 - + @@ -930,7 +952,7 @@ ciBzw6UgYWt0aXZlcmFzIG11c2VucyBtaXR0LSByZXNwZWt0aXZlIGjDtmdlcmtuYXBwLgo 1211912703 2 - + @@ -970,7 +992,7 @@ ciBzw6UgYWt0aXZlcmFzIG11c2VucyBtaXR0LSByZXNwZWt0aXZlIGjDtmdlcmtuYXBwLgo - + {{10, 33}, {438, 246}} Urklipp @@ -984,8 +1006,7 @@ ciBzw6UgYWt0aXZlcmFzIG11c2VucyBtaXR0LSByZXNwZWt0aXZlIGjDtmdlcmtuYXBwLgo 256 - - YES + 256 @@ -1000,7 +1021,7 @@ ciBzw6UgYWt0aXZlcmFzIG11c2VucyBtaXR0LSByZXNwZWt0aXZlIGjDtmdlcmtuYXBwLgo 1211912703 2 - + @@ -1041,7 +1062,7 @@ cmthIGlubmVow6VsbGV0Lgo 1211912703 2 - + @@ -1080,7 +1101,7 @@ cmthIGlubmVow6VsbGV0Lgo 1211912703 2 - + @@ -1105,7 +1126,7 @@ cmthIGlubmVow6VsbGV0Lgo - + {{10, 33}, {438, 246}} Fönster @@ -1116,8 +1137,7 @@ cmthIGlubmVow6VsbGV0Lgo 256 - - YES + 256 @@ -1132,7 +1152,7 @@ cmthIGlubmVow6VsbGV0Lgo 1211912703 2 - + @@ -1154,7 +1174,7 @@ cmthIGlubmVow6VsbGV0Lgo 1211912703 2 - + @@ -1213,30 +1233,31 @@ cmthIGlubmVow6VsbGV0Lgo - + {{10, 33}, {438, 246}} Säkerhet - + 0 YES YES - - YES + - + - + {484, 308} + + {{0, 0}, {1440, 878}} {320, 262} - {1.7976931348623157e+308, 1.7976931348623157e+308} + {3.4028235e+38, 3.4028235e+38} x11_prefs @@ -1249,13 +1270,12 @@ cmthIGlubmVow6VsbGV0Lgo View - {1.7976931348623157e+308, 1.7976931348623157e+308} + {3.4028235e+38, 3.4028235e+38} {320, 240} 256 - - YES + 265 @@ -1309,13 +1329,11 @@ cmthIGlubmVow6VsbGV0Lgo 274 - - YES + 2304 - - YES + 256 @@ -1335,8 +1353,7 @@ cmthIGlubmVow6VsbGV0Lgo {{302, 0}, {16, 17}} - - YES + 122.73100280761719 62.730998992919922 @@ -1348,7 +1365,7 @@ cmthIGlubmVow6VsbGV0Lgo 3 - MC4zMzMzMzI5OQA + MC4zMzMzMzI5ODU2AA 6 @@ -1447,7 +1464,7 @@ cmthIGlubmVow6VsbGV0Lgo - + 3 2 @@ -1470,10 +1487,9 @@ cmthIGlubmVow6VsbGV0Lgo YES 0 - + {{1, 17}, {301, 198}} - 4 @@ -1485,7 +1501,7 @@ cmthIGlubmVow6VsbGV0Lgo _doScroller: - 0.99492380000000002 + 0.99492377042770386 @@ -1495,27 +1511,24 @@ cmthIGlubmVow6VsbGV0Lgo 1 _doScroller: - 0.68852460000000004 + 0.68852460384368896 2304 - - YES + - + {{1, 0}, {301, 17}} - 4 - + {{20, 20}, {318, 231}} - 50 @@ -1547,18 +1560,17 @@ cmthIGlubmVow6VsbGV0Lgo 25 - + {496, 271} {{0, 0}, {1440, 878}} {320, 262} - {1.7976931348623157e+308, 1.7976931348623157e+308} + {3.4028235e+38, 3.4028235e+38} x11_apps Meny - - YES + YES @@ -1581,8 +1593,7 @@ cmthIGlubmVow6VsbGV0Lgo submenuAction: Program - - YES + YES @@ -1603,16 +1614,15 @@ cmthIGlubmVow6VsbGV0Lgo - + - + - + - - YES + copy: @@ -2157,13 +2167,28 @@ cmthIGlubmVow6VsbGV0Lgo 300475 - + + + prefs_changed: + + + + 300480 + + + + option_sends_alt + + + + 300481 + + - - YES + 0 - + @@ -2188,31 +2213,28 @@ cmthIGlubmVow6VsbGV0Lgo 29 - - YES + - + MainMenu 19 - - YES + - + 24 - - YES + @@ -2221,7 +2243,7 @@ cmthIGlubmVow6VsbGV0Lgo - + @@ -2267,17 +2289,15 @@ cmthIGlubmVow6VsbGV0Lgo 56 - - YES + - + 57 - - YES + @@ -2290,7 +2310,7 @@ cmthIGlubmVow6VsbGV0Lgo - + @@ -2306,10 +2326,9 @@ cmthIGlubmVow6VsbGV0Lgo 131 - - YES + - + @@ -2365,19 +2384,17 @@ cmthIGlubmVow6VsbGV0Lgo 163 - - YES + - + 169 - - YES + - + @@ -2388,20 +2405,18 @@ cmthIGlubmVow6VsbGV0Lgo 269 - - YES + - + 270 - - YES + - + @@ -2417,19 +2432,17 @@ cmthIGlubmVow6VsbGV0Lgo 419 - - YES + - + 420 - - YES + - + @@ -2446,126 +2459,115 @@ cmthIGlubmVow6VsbGV0Lgo 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 + @@ -2574,169 +2576,152 @@ cmthIGlubmVow6VsbGV0Lgo - + 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 @@ -2748,20 +2733,18 @@ cmthIGlubmVow6VsbGV0Lgo 526 - - YES + - + 527 - - YES + - + @@ -2817,10 +2800,9 @@ cmthIGlubmVow6VsbGV0Lgo 100382 - - YES + - + @@ -2871,13 +2853,12 @@ cmthIGlubmVow6VsbGV0Lgo 380 - - YES + - + @@ -2903,13 +2884,12 @@ cmthIGlubmVow6VsbGV0Lgo 295 - - YES + - + @@ -2930,21 +2910,19 @@ cmthIGlubmVow6VsbGV0Lgo 296 - - YES + - + 535 - - YES + - + @@ -2955,10 +2933,9 @@ cmthIGlubmVow6VsbGV0Lgo 298 - - YES + - + @@ -2969,10 +2946,9 @@ cmthIGlubmVow6VsbGV0Lgo 297 - - YES + - + @@ -2983,10 +2959,9 @@ cmthIGlubmVow6VsbGV0Lgo 310 - - YES + - + @@ -2997,10 +2972,9 @@ cmthIGlubmVow6VsbGV0Lgo 292 - - YES + - + @@ -3011,10 +2985,9 @@ cmthIGlubmVow6VsbGV0Lgo 293 - - YES + - + @@ -3025,42 +2998,38 @@ cmthIGlubmVow6VsbGV0Lgo 300337 - - YES + - + 300338 - - YES + - + 300358 - - YES + - + 300359 - - YES + - + @@ -3076,10 +3045,9 @@ cmthIGlubmVow6VsbGV0Lgo 300362 - - YES + - + @@ -3090,10 +3058,9 @@ cmthIGlubmVow6VsbGV0Lgo 300364 - - YES + - + @@ -3104,10 +3071,9 @@ cmthIGlubmVow6VsbGV0Lgo 300368 - - YES + - + @@ -3118,10 +3084,9 @@ cmthIGlubmVow6VsbGV0Lgo 300370 - - YES + - + @@ -3132,17 +3097,15 @@ cmthIGlubmVow6VsbGV0Lgo 300421 - - YES + - + 300422 - - YES + @@ -3151,25 +3114,23 @@ cmthIGlubmVow6VsbGV0Lgo - + 300423 - - YES + - + 300424 - - YES + - + @@ -3185,10 +3146,9 @@ cmthIGlubmVow6VsbGV0Lgo 300447 - - YES + - + @@ -3199,10 +3159,9 @@ cmthIGlubmVow6VsbGV0Lgo 300451 - - YES + - + @@ -3213,10 +3172,9 @@ cmthIGlubmVow6VsbGV0Lgo 300453 - - YES + - + @@ -3227,10 +3185,9 @@ cmthIGlubmVow6VsbGV0Lgo 300455 - - YES + - + @@ -3241,10 +3198,9 @@ cmthIGlubmVow6VsbGV0Lgo 300457 - - YES + - + @@ -3255,10 +3211,9 @@ cmthIGlubmVow6VsbGV0Lgo 300459 - - YES + - + @@ -3269,10 +3224,9 @@ cmthIGlubmVow6VsbGV0Lgo 300472 - - YES + - + @@ -3280,604 +3234,333 @@ cmthIGlubmVow6VsbGV0Lgo - - - - YES - - YES - -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.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.IBPluginDependency - 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.IBPluginDependency - 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 - - {{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}} - {{437, 749}, {484, 308}} - com.apple.InterfaceBuilder.CocoaPlugin - {{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}} - 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 - - {{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 - + + 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, 548}, {484, 308}} + com.apple.InterfaceBuilder.CocoaPlugin + {{507, 548}, {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}, {496, 271}} + com.apple.InterfaceBuilder.CocoaPlugin + + + {{68, 585}, {496, 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 - - + - 300475 + 300481 - - YES + FirstResponder NSObject @@ -3902,19 +3585,21 @@ cmthIGlubmVow6VsbGV0Lgo - + 0 + IBCocoaFramework com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - + YES ../X11.xcodeproj 3 + + {9, 8} + {7, 2} + {15, 15} + diff --git a/hw/xquartz/bundle/Resources/sv.lproj/main.nib/keyedobjects.nib b/hw/xquartz/bundle/Resources/sv.lproj/main.nib/keyedobjects.nib index 122483d6e66563770039a8e0e77791631da01a9f..c623b1ad8677dc8c565785666a2de472108b078c 100644 GIT binary patch literal 54129 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 z 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 P|3B@W{y+WyA3FGd^-NN2 literal 52356 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 diff --git a/hw/xquartz/bundle/Resources/zh_CN.lproj/locversion.plist b/hw/xquartz/bundle/Resources/zh_CN.lproj/locversion.plist index 85fa1f2a6..c2c6a557a 100644 --- a/hw/xquartz/bundle/Resources/zh_CN.lproj/locversion.plist +++ b/hw/xquartz/bundle/Resources/zh_CN.lproj/locversion.plist @@ -3,12 +3,12 @@ LprojCompatibleVersion - 93 + 99 LprojLocale zh_CN LprojRevisionLevel 1 LprojVersion - 93 + 99 diff --git a/hw/xquartz/bundle/Resources/zh_CN.lproj/main.nib/designable.nib b/hw/xquartz/bundle/Resources/zh_CN.lproj/main.nib/designable.nib index 4ef22f024..13cf11e0d 100644 --- a/hw/xquartz/bundle/Resources/zh_CN.lproj/main.nib/designable.nib +++ b/hw/xquartz/bundle/Resources/zh_CN.lproj/main.nib/designable.nib @@ -1,33 +1,21 @@ - + - 1050 - 11A79a - 732 - 1059 - 478.00 + 1040 + 11A194b + 787 + 1079 + 502.00 com.apple.InterfaceBuilder.CocoaPlugin - 732 + 787 - - YES - - - YES + + com.apple.InterfaceBuilder.CocoaPlugin - - - YES - - YES - - - YES - - - - YES + + + NSApplication @@ -41,8 +29,7 @@ MainMenu - - YES + X11 @@ -60,8 +47,7 @@ submenuAction: X11 - - YES + 关于 X11 @@ -101,9 +87,7 @@ submenuAction: 服务 - - YES - + _NSServicesMenu @@ -187,7 +171,7 @@ - + _NSAppleMenu @@ -202,8 +186,7 @@ submenuAction: 应用程序 - - YES + YES @@ -224,7 +207,7 @@ - + @@ -238,8 +221,7 @@ submenuAction: 编辑 - - YES + 拷贝 @@ -249,7 +231,7 @@ - + @@ -263,8 +245,7 @@ submenuAction: 窗口 - - YES + 关闭 @@ -341,7 +322,7 @@ - + _NSWindowsMenu @@ -356,8 +337,7 @@ submenuAction: 帮助 - - YES + X11 帮助 @@ -367,10 +347,10 @@ - + - + _NSMainMenu @@ -386,20 +366,19 @@ View + {1.7976931348623157e+308, 1.7976931348623157e+308} {320, 240} 256 - - YES + 256 {{13, 10}, {458, 292}} - - YES + 1 @@ -407,8 +386,7 @@ 256 - - YES + 256 @@ -427,7 +405,7 @@ 1211912703 2 - + NSImage NSSwitch @@ -509,7 +487,7 @@ moTpvKDmoIfmjInplK7jgIIKA 1211912703 2 - + @@ -548,7 +526,7 @@ moTpvKDmoIfmjInplK7jgIIKA 1211912703 2 - + @@ -556,7 +534,45 @@ moTpvKDmoIfmjInplK7jgIIKA 25 - + + + 256 + {{36, -1}, {385, 31}} + + YES + + 67239424 + 4194304 + 如果已启用,则 Option 键会发送 Alt_L 和 Alt_R X11 键符号,而不是发送 Mode_switch。 + + + + + + + + + 256 + {{18, 36}, {402, 18}} + + YES + + 67239424 + 0 + Option 键会发送 Alt_L 和 Alt_R + + + 1211912703 + 2 + + + + + 200 + 25 + + + {{10, 33}, {438, 246}} @@ -571,8 +587,7 @@ moTpvKDmoIfmjInplK7jgIIKA 256 - - YES + 256 @@ -587,7 +602,7 @@ moTpvKDmoIfmjInplK7jgIIKA 1211912703 2 - + @@ -615,7 +630,7 @@ moTpvKDmoIfmjInplK7jgIIKA 256 - {{62, 202}, {128, 26}} + {{59, 202}, {128, 26}} YES @@ -654,8 +669,7 @@ moTpvKDmoIfmjInplK7jgIIKA OtherViews - - YES + @@ -693,7 +707,7 @@ moTpvKDmoIfmjInplK7jgIIKA 24 - + 3 YES @@ -710,7 +724,7 @@ moTpvKDmoIfmjInplK7jgIIKA 67239424 4194304 - 6aKc6Imy77yaCg + 颜色: @@ -749,7 +763,7 @@ moTpvKDmoIfmjInplK7jgIIKA 1211912703 2 - + @@ -771,7 +785,7 @@ moTpvKDmoIfmjInplK7jgIIKA 1211912703 2 - + @@ -796,7 +810,7 @@ moTpvKDmoIfmjInplK7jgIIKA - + {{10, 33}, {438, 246}} 输出 @@ -810,8 +824,7 @@ moTpvKDmoIfmjInplK7jgIIKA 256 - - YES + 256 @@ -826,7 +839,7 @@ moTpvKDmoIfmjInplK7jgIIKA 1211912703 2 - + @@ -864,7 +877,7 @@ moTpvKDmoIfmjInplK7jgIIKA 1211912703 2 - + @@ -886,7 +899,7 @@ moTpvKDmoIfmjInplK7jgIIKA 1211912703 2 - + @@ -908,7 +921,7 @@ moTpvKDmoIfmjInplK7jgIIKA 1211912703 2 - + @@ -930,7 +943,7 @@ moTpvKDmoIfmjInplK7jgIIKA 1211912703 2 - + @@ -970,7 +983,7 @@ moTpvKDmoIfmjInplK7jgIIKA - + {{10, 33}, {438, 246}} 粘贴板 @@ -984,8 +997,7 @@ moTpvKDmoIfmjInplK7jgIIKA 256 - - YES + 256 @@ -1000,7 +1012,7 @@ moTpvKDmoIfmjInplK7jgIIKA 1211912703 2 - + @@ -1038,7 +1050,7 @@ moTpvKDmoIfmjInplK7jgIIKA 1211912703 2 - + @@ -1076,7 +1088,7 @@ moTpvKDmoIfmjInplK7jgIIKA 1211912703 2 - + @@ -1100,7 +1112,7 @@ moTpvKDmoIfmjInplK7jgIIKA - + {{10, 33}, {438, 246}} 窗口 @@ -1111,8 +1123,7 @@ moTpvKDmoIfmjInplK7jgIIKA 256 - - YES + 256 @@ -1127,7 +1138,7 @@ moTpvKDmoIfmjInplK7jgIIKA 1211912703 2 - + @@ -1149,7 +1160,7 @@ moTpvKDmoIfmjInplK7jgIIKA 1211912703 2 - + @@ -1208,25 +1219,24 @@ moTpvKDmoIfmjInplK7jgIIKA - + {{10, 33}, {438, 246}} 安全性 - + 0 YES YES - - YES + - + - + {484, 308} {{0, 0}, {1280, 938}} @@ -1244,13 +1254,13 @@ moTpvKDmoIfmjInplK7jgIIKA View + {1.7976931348623157e+308, 1.7976931348623157e+308} {320, 240} 256 - - YES + 265 @@ -1287,7 +1297,7 @@ moTpvKDmoIfmjInplK7jgIIKA 67239424 137887744 - 去掉 + 移除 -2038284033 @@ -1304,13 +1314,11 @@ moTpvKDmoIfmjInplK7jgIIKA 274 - - YES + 2304 - - YES + 256 @@ -1330,8 +1338,7 @@ moTpvKDmoIfmjInplK7jgIIKA {{302, 0}, {16, 17}} - - YES + 121.73100280761719 62.730998992919922 @@ -1343,7 +1350,7 @@ moTpvKDmoIfmjInplK7jgIIKA 3 - MC4zMzMzMzI5OQA + MC4zMzMzMzI5ODU2AA 6 @@ -1442,7 +1449,7 @@ moTpvKDmoIfmjInplK7jgIIKA - + 3 2 @@ -1465,7 +1472,7 @@ moTpvKDmoIfmjInplK7jgIIKA YES 0 - + {{1, 17}, {301, 198}} @@ -1480,7 +1487,7 @@ moTpvKDmoIfmjInplK7jgIIKA _doScroller: - 0.99492380000000002 + 0.99492377042770386 @@ -1490,15 +1497,14 @@ moTpvKDmoIfmjInplK7jgIIKA 1 _doScroller: - 0.68852460000000004 + 0.68852460384368896 2304 - - YES + - + {{1, 0}, {301, 17}} @@ -1507,7 +1513,7 @@ moTpvKDmoIfmjInplK7jgIIKA 4 - + {{20, 20}, {318, 231}} @@ -1516,7 +1522,6 @@ moTpvKDmoIfmjInplK7jgIIKA - QSAAAEEgAABBmAAAQZgAAA @@ -1542,7 +1547,7 @@ moTpvKDmoIfmjInplK7jgIIKA 25 - + {454, 271} {{0, 0}, {1280, 938}} @@ -1552,8 +1557,7 @@ moTpvKDmoIfmjInplK7jgIIKA 菜单 - - YES + YES @@ -1576,8 +1580,7 @@ moTpvKDmoIfmjInplK7jgIIKA submenuAction: 应用程序 - - YES + YES @@ -1598,16 +1601,15 @@ moTpvKDmoIfmjInplK7jgIIKA - + - + - + - - YES + copy: @@ -2152,13 +2154,28 @@ moTpvKDmoIfmjInplK7jgIIKA 300475 - + + + prefs_changed: + + + + 300480 + + + + option_sends_alt + + + + 300481 + + - - YES + 0 - + @@ -2183,31 +2200,28 @@ moTpvKDmoIfmjInplK7jgIIKA 29 - - YES + - + MainMenu 19 - - YES + - + 24 - - YES + @@ -2216,7 +2230,7 @@ moTpvKDmoIfmjInplK7jgIIKA - + @@ -2262,17 +2276,15 @@ moTpvKDmoIfmjInplK7jgIIKA 56 - - YES + - + 57 - - YES + @@ -2285,7 +2297,7 @@ moTpvKDmoIfmjInplK7jgIIKA - + @@ -2301,10 +2313,9 @@ moTpvKDmoIfmjInplK7jgIIKA 131 - - YES + - + @@ -2360,19 +2371,17 @@ moTpvKDmoIfmjInplK7jgIIKA 163 - - YES + - + 169 - - YES + - + @@ -2383,20 +2392,18 @@ moTpvKDmoIfmjInplK7jgIIKA 269 - - YES + - + 270 - - YES + - + @@ -2412,19 +2419,17 @@ moTpvKDmoIfmjInplK7jgIIKA 419 - - YES + - + 420 - - YES + - + @@ -2441,126 +2446,115 @@ moTpvKDmoIfmjInplK7jgIIKA 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 + @@ -2569,169 +2563,152 @@ moTpvKDmoIfmjInplK7jgIIKA - + 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 @@ -2743,20 +2720,18 @@ moTpvKDmoIfmjInplK7jgIIKA 526 - - YES + - + 527 - - YES + - + @@ -2812,10 +2787,9 @@ moTpvKDmoIfmjInplK7jgIIKA 100382 - - YES + - + @@ -2866,13 +2840,12 @@ moTpvKDmoIfmjInplK7jgIIKA 380 - - YES + - + @@ -2898,13 +2871,12 @@ moTpvKDmoIfmjInplK7jgIIKA 295 - - YES + - + @@ -2925,21 +2897,19 @@ moTpvKDmoIfmjInplK7jgIIKA 296 - - YES + - + 535 - - YES + - + @@ -2950,10 +2920,9 @@ moTpvKDmoIfmjInplK7jgIIKA 298 - - YES + - + @@ -2964,10 +2933,9 @@ moTpvKDmoIfmjInplK7jgIIKA 297 - - YES + - + @@ -2978,10 +2946,9 @@ moTpvKDmoIfmjInplK7jgIIKA 310 - - YES + - + @@ -2992,10 +2959,9 @@ moTpvKDmoIfmjInplK7jgIIKA 292 - - YES + - + @@ -3006,10 +2972,9 @@ moTpvKDmoIfmjInplK7jgIIKA 293 - - YES + - + @@ -3020,42 +2985,38 @@ moTpvKDmoIfmjInplK7jgIIKA 300337 - - YES + - + 300338 - - YES + - + 300358 - - YES + - + 300359 - - YES + - + @@ -3071,10 +3032,9 @@ moTpvKDmoIfmjInplK7jgIIKA 300362 - - YES + - + @@ -3085,10 +3045,9 @@ moTpvKDmoIfmjInplK7jgIIKA 300364 - - YES + - + @@ -3099,10 +3058,9 @@ moTpvKDmoIfmjInplK7jgIIKA 300368 - - YES + - + @@ -3113,10 +3071,9 @@ moTpvKDmoIfmjInplK7jgIIKA 300370 - - YES + - + @@ -3127,17 +3084,15 @@ moTpvKDmoIfmjInplK7jgIIKA 300421 - - YES + - + 300422 - - YES + @@ -3146,25 +3101,23 @@ moTpvKDmoIfmjInplK7jgIIKA - + 300423 - - YES + - + 300424 - - YES + - + @@ -3180,10 +3133,9 @@ moTpvKDmoIfmjInplK7jgIIKA 300447 - - YES + - + @@ -3194,10 +3146,9 @@ moTpvKDmoIfmjInplK7jgIIKA 300451 - - YES + - + @@ -3208,10 +3159,9 @@ moTpvKDmoIfmjInplK7jgIIKA 300453 - - YES + - + @@ -3222,10 +3172,9 @@ moTpvKDmoIfmjInplK7jgIIKA 300455 - - YES + - + @@ -3236,10 +3185,9 @@ moTpvKDmoIfmjInplK7jgIIKA 300457 - - YES + - + @@ -3250,10 +3198,9 @@ moTpvKDmoIfmjInplK7jgIIKA 300459 - - YES + - + @@ -3264,10 +3211,9 @@ moTpvKDmoIfmjInplK7jgIIKA 300472 - - YES + - + @@ -3275,604 +3221,338 @@ moTpvKDmoIfmjInplK7jgIIKA - - - - YES - - YES - -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.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.IBPluginDependency - 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.IBPluginDependency - 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 - - {{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}} - {{437, 749}, {484, 308}} - com.apple.InterfaceBuilder.CocoaPlugin - {{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}} - 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 - - {{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 - + + 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 + IBBuiltInLabel-Red + 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, 548}, {484, 308}} + com.apple.InterfaceBuilder.CocoaPlugin + {{507, 548}, {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 + + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + 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 - - + - 300475 + 300481 - - YES + FirstResponder NSObject @@ -3897,19 +3577,21 @@ moTpvKDmoIfmjInplK7jgIIKA - + 0 + IBCocoaFramework com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - + YES ../X11.xcodeproj 3 + + {9, 8} + {7, 2} + {15, 15} + diff --git a/hw/xquartz/bundle/Resources/zh_CN.lproj/main.nib/keyedobjects.nib b/hw/xquartz/bundle/Resources/zh_CN.lproj/main.nib/keyedobjects.nib index 6ceb043501a7a4e37f30ac1705bd191f744dab72..d8f5f8b75e72fd25037ab27c9e78b8c31a55f983 100644 GIT binary patch literal 43969 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 Yy3HrV^3$|!`@h@E^S}H5ySm-~0b6AirvLx| literal 43954 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 N^0)un|L;u0{{Yb%X{i7J diff --git a/hw/xquartz/bundle/Resources/zh_TW.lproj/locversion.plist b/hw/xquartz/bundle/Resources/zh_TW.lproj/locversion.plist index 5c24adfb9..77a4ffeab 100644 --- a/hw/xquartz/bundle/Resources/zh_TW.lproj/locversion.plist +++ b/hw/xquartz/bundle/Resources/zh_TW.lproj/locversion.plist @@ -3,12 +3,12 @@ LprojCompatibleVersion - 93 + 98 LprojLocale zh_TW LprojRevisionLevel 1 LprojVersion - 93 + 98 diff --git a/hw/xquartz/bundle/Resources/zh_TW.lproj/main.nib/designable.nib b/hw/xquartz/bundle/Resources/zh_TW.lproj/main.nib/designable.nib index 04ec5ce2d..0739b89a6 100644 --- a/hw/xquartz/bundle/Resources/zh_TW.lproj/main.nib/designable.nib +++ b/hw/xquartz/bundle/Resources/zh_TW.lproj/main.nib/designable.nib @@ -1,33 +1,23 @@ - + - 1050 - 11A79a - 732 - 1059 - 478.00 + 1040 + 11A194b + 787 + 1079 + 502.00 com.apple.InterfaceBuilder.CocoaPlugin - 732 + 787 - - YES - - - YES + + + + com.apple.InterfaceBuilder.CocoaPlugin - - - YES - - YES - - - YES - - - - YES + + + NSApplication @@ -41,8 +31,7 @@ MainMenu - - YES + X11 @@ -60,8 +49,7 @@ submenuAction: X11 - - YES + 關於 X11 @@ -101,9 +89,7 @@ submenuAction: 服務 - - YES - + _NSServicesMenu @@ -187,7 +173,7 @@ - + _NSAppleMenu @@ -202,8 +188,7 @@ submenuAction: 應用程式 - - YES + YES @@ -224,7 +209,7 @@ - + @@ -238,8 +223,7 @@ submenuAction: 編輯 - - YES + 拷貝 @@ -249,7 +233,7 @@ - + @@ -263,8 +247,7 @@ submenuAction: 視窗 - - YES + 關閉 @@ -341,7 +324,7 @@ - + _NSWindowsMenu @@ -356,8 +339,7 @@ submenuAction: 輔助說明 - - YES + X11 輔助說明 @@ -367,10 +349,10 @@ - + - + _NSMainMenu @@ -386,20 +368,20 @@ View - {1.7976931348623157e+308, 1.7976931348623157e+308} + + {3.4028235e+38, 3.4028235e+38} {320, 240} - + 256 - - YES + 256 {{13, 10}, {458, 292}} - - YES + + 1 @@ -407,13 +389,13 @@ 256 - - YES + 256 {{18, 210}, {402, 18}} + YES 67239424 @@ -427,7 +409,7 @@ 1211912703 2 - + NSImage NSSwitch @@ -445,6 +427,7 @@ 256 {{36, 92}, {399, 14}} + YES 67239424 @@ -463,7 +446,7 @@ controlColor 3 - MC42NjY2NjY2NjY3AA + MC42NjY2NjY2ODY1AA @@ -482,6 +465,7 @@ 256 {{36, 176}, {385, 28}} + YES 67239424 @@ -500,6 +484,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 256 {{18, 112}, {402, 18}} + YES 67239424 @@ -509,7 +494,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 1211912703 2 - + @@ -522,6 +507,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 256 {{36, 141}, {385, 14}} + YES 67239424 @@ -539,6 +525,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 256 {{18, 161}, {402, 18}} + YES 67239424 @@ -548,7 +535,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 1211912703 2 - + @@ -556,9 +543,50 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 25 - + + + 256 + {{36, 26}, {385, 31}} + + + YES + + 67239424 + 4194304 + 當啟用時,option 鍵會傳送 Alt_L 和 Alt_R X11 按鍵符號,而不是 Mode_switch。 + + + + + + + + + 256 + {{18, 63}, {402, 18}} + + + YES + + 67239424 + 0 + 讓 Option 鍵傳送 Alt_L 和 Alt_R + + + 1211912703 + 2 + + + + + 200 + 25 + + + {{10, 33}, {438, 246}} + 輸入 @@ -571,8 +599,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 256 - - YES + 256 @@ -587,7 +614,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 1211912703 2 - + @@ -615,7 +642,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 256 - {{63, 202}, {128, 26}} + {{55, 202}, {136, 26}} YES @@ -654,8 +681,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA OtherViews - - YES + @@ -693,7 +719,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 24 - + 3 YES @@ -710,7 +736,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 67239424 4194304 - 6aGP6Imy77yaCg + 顏色: @@ -749,7 +775,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 1211912703 2 - + @@ -771,7 +797,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 1211912703 2 - + @@ -796,7 +822,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA - + {{10, 33}, {438, 246}} 輸出 @@ -810,8 +836,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 256 - - YES + 256 @@ -826,7 +851,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 1211912703 2 - + @@ -864,7 +889,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 1211912703 2 - + @@ -886,7 +911,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 1211912703 2 - + @@ -908,7 +933,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 1211912703 2 - + @@ -930,7 +955,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 1211912703 2 - + @@ -970,7 +995,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA - + {{10, 33}, {438, 246}} 剪貼板 @@ -984,8 +1009,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 256 - - YES + 256 @@ -995,12 +1019,12 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 67239424 0 - 穿透至未啓用的視窗 + 穿透至未啟用的視窗 1211912703 2 - + @@ -1017,7 +1041,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 67239424 4194304 - 當啓用時,按一下未啓用的視窗將會使滑鼠按鍵穿透至該視窗並將其啓用。 + 當啟用時,按一下未啟用的視窗將會使滑鼠按鍵穿透至該視窗並將其啓用。 @@ -1038,7 +1062,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 1211912703 2 - + @@ -1076,7 +1100,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 1211912703 2 - + @@ -1093,14 +1117,14 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 67239424 4194304 - 當啓用時,新建的 X11 視窗將會使 X11.app(而不是 Finder.app、終端機.app 等)移至最前。 + 當啟用時,新增的 X11 視窗將會使 X11.app(而不是 Finder.app、終端機.app 等)移至最前。 - + {{10, 33}, {438, 246}} 視窗 @@ -1111,8 +1135,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 256 - - YES + 256 @@ -1127,7 +1150,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 1211912703 2 - + @@ -1149,7 +1172,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 1211912703 2 - + @@ -1208,30 +1231,31 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA - + {{10, 33}, {438, 246}} 安全性 - + 0 YES YES - - YES + - + - + {484, 308} + + {{0, 0}, {1440, 878}} {320, 262} - {1.7976931348623157e+308, 1.7976931348623157e+308} + {3.4028235e+38, 3.4028235e+38} x11_prefs @@ -1244,13 +1268,13 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA View - {1.7976931348623157e+308, 1.7976931348623157e+308} + + {3.4028235e+38, 3.4028235e+38} {320, 240} - + 256 - - YES + 265 @@ -1304,13 +1328,11 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 274 - - YES + 2304 - - YES + 256 @@ -1330,11 +1352,10 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA {{302, 0}, {16, 17}} - - YES + - 122.73099999999999 - 62.731000000000002 + 122.73100280761719 + 62.730998992919922 1000 75628096 @@ -1343,7 +1364,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 3 - MC4zMzMzMzI5OQA + MC4zMzMzMzI5ODU2AA 6 @@ -1439,7 +1460,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA YES - + 3 2 @@ -1462,7 +1483,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA YES 0 - + {{1, 17}, {301, 198}} @@ -1477,7 +1498,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA _doScroller: - 0.99492380000000002 + 0.99492377042770386 @@ -1487,15 +1508,14 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 1 _doScroller: - 0.68852460000000004 + 0.68852460384368896 2304 - - YES + - + {{1, 0}, {301, 17}} @@ -1504,7 +1524,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 4 - + {{20, 20}, {318, 231}} @@ -1539,18 +1559,18 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 25 - + {454, 271} + {{0, 0}, {1440, 878}} {320, 262} - {1.7976931348623157e+308, 1.7976931348623157e+308} + {3.4028235e+38, 3.4028235e+38} x11_apps 選單 - - YES + YES @@ -1573,8 +1593,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA submenuAction: 應用程式 - - YES + YES @@ -1595,16 +1614,15 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA - + - + - + - - YES + copy: @@ -2149,13 +2167,28 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 300475 - + + + prefs_changed: + + + + 300480 + + + + option_sends_alt + + + + 300481 + + - - YES + 0 - + @@ -2180,31 +2213,28 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 29 - - YES + - + MainMenu 19 - - YES + - + 24 - - YES + @@ -2213,7 +2243,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA - + @@ -2259,17 +2289,15 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 56 - - YES + - + 57 - - YES + @@ -2282,7 +2310,7 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA - + @@ -2298,10 +2326,9 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 131 - - YES + - + @@ -2357,19 +2384,17 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 163 - - YES + - + 169 - - YES + - + @@ -2380,20 +2405,18 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 269 - - YES + - + 270 - - YES + - + @@ -2409,19 +2432,17 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 419 - - YES + - + 420 - - YES + - + @@ -2438,126 +2459,115 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 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 + @@ -2566,169 +2576,152 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA - + 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 @@ -2740,20 +2733,18 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 526 - - YES + - + 527 - - YES + - + @@ -2809,10 +2800,9 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 100382 - - YES + - + @@ -2863,13 +2853,12 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 380 - - YES + - + @@ -2895,13 +2884,12 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 295 - - YES + - + @@ -2922,21 +2910,19 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 296 - - YES + - + 535 - - YES + - + @@ -2947,10 +2933,9 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 298 - - YES + - + @@ -2961,10 +2946,9 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 297 - - YES + - + @@ -2975,10 +2959,9 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 310 - - YES + - + @@ -2989,10 +2972,9 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 292 - - YES + - + @@ -3003,10 +2985,9 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 293 - - YES + - + @@ -3017,42 +2998,38 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 300337 - - YES + - + 300338 - - YES + - + 300358 - - YES + - + 300359 - - YES + - + @@ -3068,10 +3045,9 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 300362 - - YES + - + @@ -3082,10 +3058,9 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 300364 - - YES + - + @@ -3096,10 +3071,9 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 300368 - - YES + - + @@ -3110,10 +3084,9 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 300370 - - YES + - + @@ -3124,17 +3097,15 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 300421 - - YES + - + 300422 - - YES + @@ -3143,25 +3114,23 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA - + 300423 - - YES + - + 300424 - - YES + - + @@ -3177,10 +3146,9 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 300447 - - YES + - + @@ -3191,10 +3159,9 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 300451 - - YES + - + @@ -3205,10 +3172,9 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 300453 - - YES + - + @@ -3219,10 +3185,9 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 300455 - - YES + - + @@ -3233,10 +3198,9 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 300457 - - YES + - + @@ -3247,10 +3211,9 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 300459 - - YES + - + @@ -3261,10 +3224,9 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA 300472 - - YES + - + @@ -3272,604 +3234,336 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA - - - - YES - - YES - -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.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.IBPluginDependency - 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.IBPluginDependency - 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 - - {{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}} - {{437, 749}, {484, 308}} - com.apple.InterfaceBuilder.CocoaPlugin - {{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}} - 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 - - {{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 - + + 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, 548}, {484, 308}} + com.apple.InterfaceBuilder.CocoaPlugin + {{507, 548}, {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 + IBBuiltInLabel-Red + com.apple.InterfaceBuilder.CocoaPlugin + IBBuiltInLabel-Red + 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 + IBBuiltInLabel-Red + 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 - - + - 300475 + 300481 - - YES + FirstResponder NSObject @@ -3894,19 +3588,21 @@ vKDnmoTkuK3plpPmiJblj7PpgormjInpiJXjgIIKA - + 0 + IBCocoaFramework com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - + YES ../X11.xcodeproj 3 + + {9, 8} + {7, 2} + {15, 15} + diff --git a/hw/xquartz/bundle/Resources/zh_TW.lproj/main.nib/keyedobjects.nib b/hw/xquartz/bundle/Resources/zh_TW.lproj/main.nib/keyedobjects.nib index b65ef07e28c4521ab0897aa01fc6a0953e965e61..e08046e00736d890d007faf92fd77200a7e017fc 100644 GIT binary patch literal 45835 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%0AFLlkj*Sfd5 z54uk|t#aDrw9V;|laRyA$XY?Cy+m))_ty{9SL+AsYxH&cdi_X!gMNZOs$Z#JrEk*zs$Zwy zsNbUBu0NxHqkpIWp#PNHBKPYzer~(mj=5cPvvPyECAs0;vfT1qC>P1?pF1vhMeeHH zrrfo;>vK2dZpq!2`&;flgW6DJa2YBMRffTa8bh67gkh9nqG7TDGb}JHHY_zPH~eB~ zGHf;+G8{FWFq|@+F`P48G+Z(KZMb3hX!v4mW&Fn2*4WsP;+j%SB2&OrYZ`7E zX&P-BV`?;wH%&4vFkLWRGF>rUGhH{`GTk-ZH$65zH9a@IGQG){=I_rxn13w)ME(nNg1L+NdvgzSPjeqL!^|>g zn1`Bc&2{E_^GNe(^H}pZ^JFt-j+!YmZQg7C+kDe}$9&)X!2HPk)cm5LeSx?@R-h1F9-NwTmlTuX{YY8h&Y zT4>8^%Ua8N%O=ZK%XZ5y%R$Rw%Tdc2%XQ05%N@&o%RiPUmgkn2)=t(g)^64xtUau~ ztqd#6nqe)mMyzF4&`q{>^acz8?z$UUu zZE{_duD4c>|Z#paB|`N z!i9xP3YQhGC|p&zv2b_c?}hsd4;3CQJW=>Z;iJMQh0h9K7XDlKy6|n`hobI9nMJxH zeUYKaR8&x8Eh;Q>7Ws#k%6$Vq>wX*jij%JffH`o>RP}cy;mS z;yuO3if+|l5m9Mc>#9kU&C9m^eC9XlMqIrcdA zI?g)oIPN?CaXfZBb#`MVEu=$z^#owRehbEb2#bAxlU zbDMLAbC>h5^P=;z^P2Oz^QQBi>pNG1tBb3ftGkQsQn^xH8druZ%Vl!`u86DL1-bgV zhP%ePCc758*1Gn%_PP$Z4!e%JuDYJMp1EGSUb)`5d$?2FBDd77aI4%oZin0D_PPV^ zkh{!1*ge!e%w6vu>7MAG>7MPL=U(7mLt9(y<5H8y}P`7y!*Vjz4yEiy^p<5ywANaz0KY?zAiqq&+04k75iL1ug~u*^MO9d z*Uwk!8|16?jrNW4jrGm&E%&YTt@f?;t@G{o{pCCFyX3p-yYBnqZ{`2S|E<5hzoWmC zzl;BSzswK$5r2RG0DrZAh`+`^%0I?G){pt4e#$?`zr?@Pzs$eYf5d;xf71V_|E&L( z|6l(r|9}4X{*Qr#K<7ZWzz>050Z~8_kOx$Ow17Ea2^0p31I_>#fC5OMe_&u>bf6(H zE-*1LIWRjgH}F$nQD8}+DezlhPhel*VBm1zV&HP%THr?DR^VCSOR#0IP4H{E9b^P$ zK}Ap12m4?6&92yoH9vT@M z9clW zXbpS=v;*1$9e@O&Gtdp_4)g?i1BpNqzy`Pg9}oZ{Knf@THINQu0NH>ZFaRc?0I&i@ zKr!F~Jb)hv0sv47fB*#a1yG<87zk7YLx38f4j2K90>%K1z<6LHFa?MLF@OSSU z4Y&^60`3C$fq#Iyi;g6A)k=7A@L=nk|7$f-+OT-qjM;wu01d8;H^otCL zR7D0whD1h2Mn@VVjgdK#C6U#UEs-mcyOH~mhml8-r;!(t=E&>F=hBv?eM(bGm8IFG z1*L;ahnCis)|HMZ9aY*;+E|L0#!8o!t}R_(y0LU~>G9G#rB6yt8m!Y;4)YGNOD>`QGyV{BHS! z@<-)Q%Ac3NEN?D`6EWP?0V0181d zC$ifpcc#mb)X(JfF{rkT0k3U2OXdb^n!jc1ct#f5CmZm0sDaiz$$PMI25b} z>%e+&Bsdyu02{&a;6!i=h=Wr>0;Irc;7o81I1l^@TnH`!e+HL>E5X&^8gL!B5!?)J z1$ThEz&+qT@BnxSJOUmAPk^Vu)8Jp=dGI258N3Q!2XBJ6!Mosn@FDmZde^@aLDl~5Hl z2pS62Lc^gE&?smO)Ci4-CP5e!g<=o|O@n4av!S`rd}sl*7+MM~gH}STpeAT7v<}(` zZHBf&JD^?A9%vtQ5IO=KhyH+0LuaA$&?V>!^fz<^x((fh9zg#lLk17^Y;mJk zvK`rl>_PS+2azMlapVu=H1Zd60lAD^LvA3qk$cEPcG(hCk)(N)w-%jRce*DYIxO{s>Rh^ ztC`gUtLIhk8x$CHW^jwan+9JR!Wy!E$oZiyhRTL|hCZ+9T*Ig-s+m!$*Esdhx| zg4(^c_l9*EHg#Bh*tTKkhP|wd)*Y#PG(3AaG<@Cg1NEBvyn07HP+w7BT|csZQvHPy z2_rH_?Ycj5Cj`8aHa( z-SNnHY<$!B-^bsc(0W4E1bSlIiG3!TC;m9Gc~aX+8zvV__DwFGTsFC4@&HVPNiZ3v z#MD?irp2_==2 z)`(5OCSg-B9Gi-f7>&)qW@GcP1=wP2DYgt-iLJ)gV(YPu*cNO%whP;X?ZXaWhp}VW zN$eDM8v6@7k6ps9VArr4*lp|{_7Ho7J;9!1FR^CqHTD+!fPKQg;H~gBcssm3-T_a* zyWrjMAMjpyADn@+a4w#V3vn?n!f=BRj z9KsR2A3gxD#)sfFcpW|hAB8vIjre$c5{}_haT2HT8Tc%GE+-r_-cF& zz7F4rZ^pObJMrE4Ui<)l7(a%ez)#_)@w50j{33oCzlvYSZ{oM{yZC+lA^sSDhQGvL z;s4?9@lW`dXv=7uXxnJ}Xvb*hXt!whXpd;GXrCw}%8YWN{Afy49F;|tQFSyus*Pqv zbE3J?yr?;9iQ1y}s59z``lG=p5RF93q7_j%ibgA=RnfXwT1*?uisi%%F;lD{W{cTl z&X_0WkA-64SXrzh);HEKHXv3V8xpIH4UdhCjgF0tjgL)=VX>((GDgQ{#Ae6l#TLXC z$9|5jh^>mPiLHxmjBSZ+kL`->iS3IWj2(#`kNpul9s4VGA$B=-Ep{VzJ9aPjF!nh1 zEcP&CE61miOxhf;s>G^kw`EJ4#6i<2r(felte0_Au>=tqK2p=Mi8Tj24WmBk(fe634(|d(}`KcT;eBU z5wVn5PW(bN5x)`}h|R<{Vkfbi*h?HB4im?Slf<9IS>il#iMUE!CvFjUi3h|Z;wkZh zXeQne?}(4Y7qS)k4f!qEf$T(fCA*V7$v$Kf$tHQEfE1BZQbDT8bTWg?CiSF|%qJ~m zAz4hiNG};6OUMXWPC_I?_9q9DgUF%eFtVQfksL!dk`u_uBu>UiikwEyBg~!H}ZFKKY55eN}eE3k!Q$rLzuEx<@^r{-K^x&D0y}9rcm=5^oi66K@~y5bqT468|CIE1no<#(8mJ zTozZy)8kq3oVX!wj$7jPxFhb32jV61vN#w=;{D=P@xk$7@saU{_=GqXC*tw=%=n!6 z{P^Pd&+!%Uruh2!ruf$QuK3>gf%u{L@%W$dv+?usi}5S*Yw;WLyYUC{C-LX;SMhi8 z4|EHq2;uSPNg+;Hf^BIw3RNR9kiDY&|w;+AsV3v(AD%1 zx{e+}kD*-DOc6t}Rhu%vcqL0wW=|AYR^m+Os zeTBY3-=^=;59lZKGx{a{ihf6bp4M{OchfpdOPJPUTH-YEG{slQ>eqa|GXCFm@&Dic I|2fV0KZ%eFCjbBd literal 44214 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 Date: Mon, 13 Sep 2010 12:33:53 +0300 Subject: [PATCH 047/125] xfree86: vgaarb: fix decoding stub API This fix a problem introduced in commit 65466652. It closes also: https://bugs.freedesktop.org/show_bug.cgi?id=30160 Reported-by: Signed-off-by: Tiago Vignatti Signed-off-by: Keith Packard --- hw/xfree86/common/xf86VGAarbiter.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/xfree86/common/xf86VGAarbiter.c b/hw/xfree86/common/xf86VGAarbiter.c index 4f46059c3..951a5852d 100644 --- a/hw/xfree86/common/xf86VGAarbiter.c +++ b/hw/xfree86/common/xf86VGAarbiter.c @@ -1123,7 +1123,7 @@ void xf86VGAarbiterLock(ScrnInfoPtr pScrn) {} void xf86VGAarbiterUnlock(ScrnInfoPtr pScrn) {} Bool xf86VGAarbiterAllowDRI(ScreenPtr pScreen) { return TRUE; } void xf86VGAarbiterScrnInit(ScrnInfoPtr pScrn) {} -void xf86VGAarbiterDeviceDecodes(ScrnInfoPtr pScrn) {} +void xf86VGAarbiterDeviceDecodes(ScrnInfoPtr pScrn, int rsrc) {} Bool xf86VGAarbiterWrapFunctions(void) { return FALSE; } #endif From a715de7f11afeda7798f0882148a94d4db2291e6 Mon Sep 17 00:00:00 2001 From: Jamey Sharp Date: Tue, 25 May 2010 13:10:05 -0700 Subject: [PATCH 048/125] dmx: Delete unused GLX visual matching code. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Kristian deleted this API from the rest of the server in 2007, in commit 7d74690536b64f7b8e8036507ab7790807349c50. Signed-off-by: Jamey Sharp Reviewed-by: Kristian Høgsberg --- hw/dmx/dmxinit.c | 9 - hw/dmx/glxProxy/glxext.c | 40 ---- hw/dmx/glxProxy/glxext.h | 14 -- hw/dmx/glxProxy/glxvisuals.c | 388 +---------------------------------- hw/dmx/glxProxy/glxvisuals.h | 8 - 5 files changed, 1 insertion(+), 458 deletions(-) diff --git a/hw/dmx/dmxinit.c b/hw/dmx/dmxinit.c index 075553208..74b358244 100644 --- a/hw/dmx/dmxinit.c +++ b/hw/dmx/dmxinit.c @@ -69,12 +69,6 @@ #include "dmx_glxvisuals.h" #include #include - -extern void GlxSetVisualConfigs( - int nconfigs, - __GLXvisualConfig *configs, - void **configprivs -); #endif /* GLXEXT */ /* Global variables available to all Xserver/hw/dmx routines. */ @@ -768,9 +762,6 @@ void InitOutput(ScreenInfo *pScreenInfo, int argc, char *argv[]) } } - /* Hand out the glx configs to glx extension */ - GlxSetVisualConfigs(nconfigs, configs, (void**)configprivs); - XFlush(dmxScreen->beDisplay); } } diff --git a/hw/dmx/glxProxy/glxext.c b/hw/dmx/glxProxy/glxext.c index 4adfbff88..36a79ef93 100644 --- a/hw/dmx/glxProxy/glxext.c +++ b/hw/dmx/glxProxy/glxext.c @@ -367,46 +367,6 @@ Bool __glXCoreType(void) /************************************************************************/ -void GlxSetVisualConfigs(int nconfigs, - __GLXvisualConfig *configs, void **privates) -{ - glxSetVisualConfigs(nconfigs, configs, privates); -} - -static miInitVisualsProcPtr saveInitVisualsProc; - -Bool GlxInitVisuals(VisualPtr *visualp, DepthPtr *depthp, - int *nvisualp, int *ndepthp, - int *rootDepthp, VisualID *defaultVisp, - unsigned long sizes, int bitsPerRGB, - int preferredVis) -{ - Bool ret; - - if (saveInitVisualsProc) { - ret = saveInitVisualsProc(visualp, depthp, nvisualp, ndepthp, - rootDepthp, defaultVisp, sizes, bitsPerRGB, - preferredVis); - if (!ret) - return False; - } - - glxInitVisuals(nvisualp, visualp, defaultVisp, *ndepthp, *depthp,*rootDepthp); - - return True; -} - -void -GlxWrapInitVisuals(miInitVisualsProcPtr *initVisProc) -{ - if (dmxGLXProxy) { - saveInitVisualsProc = *initVisProc; - *initVisProc = GlxInitVisuals; - } -} - -/************************************************************************/ - void __glXFlushContextCache(void) { __glXLastContext = 0; diff --git a/hw/dmx/glxProxy/glxext.h b/hw/dmx/glxProxy/glxext.h index b9f75b46b..361bcac25 100644 --- a/hw/dmx/glxProxy/glxext.h +++ b/hw/dmx/glxProxy/glxext.h @@ -74,19 +74,5 @@ extern void GlxExtensionInit(void); extern Bool __glXCoreType(void); -extern int GlxInitVisuals( -#if NeedFunctionPrototypes - VisualPtr * visualp, - DepthPtr * depthp, - int * nvisualp, - int * ndepthp, - int * rootDepthp, - VisualID * defaultVisp, - unsigned long sizes, - int bitsPerRGB, - int preferredVis -#endif -); - #endif /* _glxext_h_ */ diff --git a/hw/dmx/glxProxy/glxvisuals.c b/hw/dmx/glxProxy/glxvisuals.c index d738ec293..8a2e5574e 100644 --- a/hw/dmx/glxProxy/glxvisuals.c +++ b/hw/dmx/glxProxy/glxvisuals.c @@ -32,16 +32,8 @@ #include #endif -#include -#include "dmx.h" #include "glxserver.h" -#include "glxutil.h" -#include "dmx_glxvisuals.h" -#include - -static int numConfigs = 0; -static __GLXvisualConfig *visualConfigs = NULL; -static void **visualPrivates = NULL; +#include "glxvisuals.h" int glxVisualsMatch( __GLXvisualConfig *v1, __GLXvisualConfig *v2 ) { @@ -158,381 +150,3 @@ VisualPtr glxMatchVisual( ScreenPtr pScreen, VisualPtr pVisual, ScreenPtr pMatch return 0; } - -void glxSetVisualConfigs(int nconfigs, __GLXvisualConfig *configs, - void **privates) -{ - numConfigs = nconfigs; - visualConfigs = configs; - visualPrivates = privates; -} - -static int count_bits(unsigned int n) -{ - int bits = 0; - - while (n > 0) { - if (n & 1) bits++; - n >>= 1; - } - return bits; -} - -static VisualID FindClosestVisual( VisualPtr pVisual, int rootDepth, - DepthPtr pdepth, int ndepths, - VisualPtr pNewVisual, int numNewVisuals) -{ - int d, v; - VisualPtr vis; - - /* - * find the first visual with the same or deeper depth - * of the same class. - */ - for (d=0; d= rootDepth) { - for (v=0; vvid ) vis++; - - if (vis->class == pVisual->class) { - return pdepth[d].vids[v]; - } - } - } - } - - /* - * did not find any. - * try to look for the same class only. - */ - for (d=0; dvid ) vis++; - - if (vis->class == pVisual->class) { - return pdepth[d].vids[v]; - } - } - } - - /* - * if not found - just take the first visual - */ - return pdepth[0].vids[0]; -} - -Bool glxInitVisuals(int *nvisualp, VisualPtr *visualp, - VisualID *defaultVisp, - int ndepth, DepthPtr pdepth, - int rootDepth) -{ - int numRGBconfigs; - int numCIconfigs; - int numVisuals = *nvisualp; - int numNewVisuals; - int numNewConfigs; - VisualPtr pVisual = *visualp; - VisualPtr pVisualNew = NULL; - VisualID *orig_vid = NULL; - __GLXvisualConfig *glXVisualPtr = NULL; - __GLXvisualConfig *pNewVisualConfigs = NULL; - void **glXVisualPriv; - dmxGlxVisualPrivate **pNewVisualPriv; - int found_default; - int i, j, k; - int numGLXvis = 0; - GLint *isGLXvis; - - if (numConfigs > 0) - numNewConfigs = numConfigs; - else - return False; - - MAXSCREENSALLOC(__glXActiveScreens); - if (!__glXActiveScreens) - return False; - - /* Alloc space for the list of new GLX visuals */ - pNewVisualConfigs = (__GLXvisualConfig *) - __glXMalloc(numNewConfigs * sizeof(__GLXvisualConfig)); - if (!pNewVisualConfigs) { - return FALSE; - } - - /* Alloc space for the list of new GLX visual privates */ - pNewVisualPriv = (dmxGlxVisualPrivate **) __glXMalloc(numNewConfigs * sizeof(dmxGlxVisualPrivate *)); - if (!pNewVisualPriv) { - __glXFree(pNewVisualConfigs); - return FALSE; - } - - /* copy driver's visual config info */ - for (i = 0; i < numConfigs; i++) { - pNewVisualConfigs[i] = visualConfigs[i]; - pNewVisualPriv[i] = (dmxGlxVisualPrivate *)visualPrivates[i]; - } - -#if 1 - /* FIXME: This is a hack to workaround a hang in xtest caused by a - * mismatch between what the front end (i.e., DMX) server calculates - * for the visual configs and what the back-end servers have. - */ - { - int numTCRGBconfigs = 0; - int numDCRGBconfigs = 0; - - numRGBconfigs = 0; - numCIconfigs = 0; - - for (i = 0; i < numNewConfigs; i++) { - if (pNewVisualConfigs[i].rgba) { - if (pNewVisualConfigs[i].class == TrueColor) - numTCRGBconfigs++; - else - numDCRGBconfigs++; - numRGBconfigs++; - } else - numCIconfigs++; - } - - /* Count the total number of visuals to compute */ - numNewVisuals = 0; - for (i = 0; i < numVisuals; i++) { - numNewVisuals += - (pVisual[i].class == TrueColor) ? numTCRGBconfigs : - (pVisual[i].class == DirectColor) ? numDCRGBconfigs : - numCIconfigs; - } - } -#else - /* Count the number of RGB and CI visual configs */ - numRGBconfigs = 0; - numCIconfigs = 0; - for (i = 0; i < numNewConfigs; i++) { - if (pNewVisualConfigs[i].rgba) - numRGBconfigs++; - else - numCIconfigs++; - } - - /* Count the total number of visuals to compute */ - numNewVisuals = 0; - for (i = 0; i < numVisuals; i++) { - numNewVisuals += - (pVisual[i].class == TrueColor || pVisual[i].class == DirectColor) - ? numRGBconfigs : numCIconfigs; - } -#endif - - /* Reset variables for use with the next screen/driver's visual configs */ - visualConfigs = NULL; - numConfigs = 0; - - /* Alloc temp space for the list of orig VisualIDs for each new visual */ - orig_vid = (VisualID *)__glXMalloc(numNewVisuals * sizeof(VisualID)); - if (!orig_vid) { - __glXFree(pNewVisualPriv); - __glXFree(pNewVisualConfigs); - return FALSE; - } - - /* Alloc space for the list of glXVisuals */ - glXVisualPtr = (__GLXvisualConfig *)__glXMalloc(numNewVisuals * - sizeof(__GLXvisualConfig)); - if (!glXVisualPtr) { - __glXFree(orig_vid); - __glXFree(pNewVisualPriv); - __glXFree(pNewVisualConfigs); - return FALSE; - } - - /* Alloc space for the list of glXVisualPrivates */ - glXVisualPriv = (void **)__glXMalloc(numNewVisuals * sizeof(void *)); - if (!glXVisualPriv) { - __glXFree(glXVisualPtr); - __glXFree(orig_vid); - __glXFree(pNewVisualPriv); - __glXFree(pNewVisualConfigs); - return FALSE; - } - - /* Alloc space for the new list of the X server's visuals */ - pVisualNew = (VisualPtr)__glXMalloc(numNewVisuals * sizeof(VisualRec)); - if (!pVisualNew) { - __glXFree(glXVisualPriv); - __glXFree(glXVisualPtr); - __glXFree(orig_vid); - __glXFree(pNewVisualPriv); - __glXFree(pNewVisualConfigs); - return FALSE; - } - - isGLXvis = (GLint *) __glXMalloc(numNewVisuals * sizeof(GLint)); - if (!isGLXvis) { - __glXFree(glXVisualPriv); - __glXFree(glXVisualPtr); - __glXFree(orig_vid); - __glXFree(pNewVisualPriv); - __glXFree(pNewVisualConfigs); - __glXFree(pVisualNew); - return FALSE; - } - - /* Initialize the new visuals */ - found_default = FALSE; - for (i = j = 0; i < numVisuals; i++) { - - for (k = 0; k < numNewConfigs; k++) { - - int new_depth; - int depth; - int d,v; - - /* find the depth of the new visual config */ - new_depth = pNewVisualPriv[k]->x_visual_depth; - - /* find the depth of the original visual */ - depth = 0; - d = 0; - while( (depth==0) && (d < ndepth) ) { - v = 0; - while( (depth==0) && (v < pdepth[d].numVids) ) { - if (pdepth[d].vids[v] == pVisual[i].vid) { - depth = pdepth[d].depth; - } - v++; - } - d++; - } - - /* check that the visual has the same class and depth - * as the new config - */ - if ( pVisual[i].class != pNewVisualPriv[k]->x_visual_class || - (depth != new_depth) ) - continue; - - /* Initialize the new visual */ - pVisualNew[j] = pVisual[i]; - pVisualNew[j].vid = FakeClientID(0); - - /* Check for the default visual */ - if (!found_default && pVisual[i].vid == *defaultVisp) { - *defaultVisp = pVisualNew[j].vid; - found_default = TRUE; - } - - /* Save the old VisualID */ - orig_vid[j] = pVisual[i].vid; - - /* Initialize the glXVisual */ - glXVisualPtr[j] = pNewVisualConfigs[k]; - glXVisualPtr[j].vid = pVisualNew[j].vid; - - /* - * If the class is -1, then assume the X visual information - * is identical to what GLX needs, and take them from the X - * visual. NOTE: if class != -1, then all other fields MUST - * be initialized. - */ - if (glXVisualPtr[j].class == -1) { - glXVisualPtr[j].class = pVisual[i].class; - glXVisualPtr[j].redSize = count_bits(pVisual[i].redMask); - glXVisualPtr[j].greenSize = count_bits(pVisual[i].greenMask); - glXVisualPtr[j].blueSize = count_bits(pVisual[i].blueMask); - glXVisualPtr[j].alphaSize = glXVisualPtr[j].alphaSize; - glXVisualPtr[j].redMask = pVisual[i].redMask; - glXVisualPtr[j].greenMask = pVisual[i].greenMask; - glXVisualPtr[j].blueMask = pVisual[i].blueMask; - glXVisualPtr[j].alphaMask = glXVisualPtr[j].alphaMask; - glXVisualPtr[j].bufferSize = rootDepth; - } - - /* Save the device-dependent private for this visual */ - glXVisualPriv[j] = pNewVisualPriv[k]; - - isGLXvis[j] = glxMatchGLXVisualInConfigList( &glXVisualPtr[j], - dmxScreens[screenInfo.numScreens-1].glxVisuals, - dmxScreens[screenInfo.numScreens-1].numGlxVisuals ); - if (isGLXvis[j]) numGLXvis++; - - j++; - } - } - - assert(j <= numNewVisuals); - numNewVisuals = j; /* correct number of new visuals */ - - /* Save the GLX visuals in the screen structure */ - __glXActiveScreens[screenInfo.numScreens-1].numVisuals = numNewVisuals; - __glXActiveScreens[screenInfo.numScreens-1].numGLXVisuals = numGLXvis; - __glXActiveScreens[screenInfo.numScreens-1].isGLXvis = isGLXvis; - __glXActiveScreens[screenInfo.numScreens-1].pGlxVisual = glXVisualPtr; - - - /* Set up depth's VisualIDs */ - for (i = 0; i < ndepth; i++) { - int numVids = 0; - VisualID *pVids = NULL; - int k, n = 0; - - /* Count the new number of VisualIDs at this depth */ - for (j = 0; j < pdepth[i].numVids; j++) - for (k = 0; k < numNewVisuals; k++) - if (pdepth[i].vids[j] == orig_vid[k]) - numVids++; - - /* Allocate a new list of VisualIDs for this depth */ - pVids = (VisualID *)__glXMalloc(numVids * sizeof(VisualID)); - - /* Initialize the new list of VisualIDs for this depth */ - for (j = 0; j < pdepth[i].numVids; j++) - for (k = 0; k < numNewVisuals; k++) - if (pdepth[i].vids[j] == orig_vid[k]) - pVids[n++] = pVisualNew[k].vid; - - /* Update this depth's list of VisualIDs */ - __glXFree(pdepth[i].vids); - pdepth[i].vids = pVids; - pdepth[i].numVids = numVids; - } - - /* - * if the default visual was rejected - need to choose new - * default visual ! - */ - if ( !found_default ) { - - for (i=0; i Date: Tue, 25 May 2010 13:28:32 -0700 Subject: [PATCH 049/125] dmx: __glXMalloc -> malloc, etc. Kristian made equivalent edits to the reference GLX implementation in 2006, with commit 2d2d38d17cc2558f8a41166a4a1578bc4c663c37. Signed-off-by: Jamey Sharp Reviewed-by: Alex Deucher --- hw/dmx/glxProxy/glxcmds.c | 50 +++++++++++------------ hw/dmx/glxProxy/glxcmdsswap.c | 4 +- hw/dmx/glxProxy/glxext.c | 36 ++++++++--------- hw/dmx/glxProxy/glxutil.c | 75 ----------------------------------- hw/dmx/glxProxy/glxutil.h | 6 --- 5 files changed, 45 insertions(+), 126 deletions(-) diff --git a/hw/dmx/glxProxy/glxcmds.c b/hw/dmx/glxProxy/glxcmds.c index 88cf901f7..b0652df09 100644 --- a/hw/dmx/glxProxy/glxcmds.c +++ b/hw/dmx/glxProxy/glxcmds.c @@ -144,7 +144,7 @@ static int CreateContext(__GLXclientState *cl, /* ** Allocate memory for the new context */ - glxc = __glXCalloc(1, sizeof(__GLXcontext)); + glxc = calloc(1, sizeof(__GLXcontext)); if (!glxc) { return BadAlloc; } @@ -156,7 +156,7 @@ static int CreateContext(__GLXclientState *cl, glxc->pFBConfig = glxLookupFBConfig( fbconfigId ); if (!glxc->pFBConfig) { client->errorValue = fbconfigId; - __glXFree( glxc ); + free( glxc ); return BadValue; } visual = glxc->pFBConfig->associatedVisualId; @@ -177,7 +177,7 @@ static int CreateContext(__GLXclientState *cl, } if (i == pScreen->numVisuals) { client->errorValue = visual; - __glXFree( glxc ); + free( glxc ); return BadValue; } @@ -192,7 +192,7 @@ static int CreateContext(__GLXclientState *cl, ** Visual not support on this screen by this OpenGL implementation. */ client->errorValue = visual; - __glXFree( glxc ); + free( glxc ); return BadValue; } @@ -203,7 +203,7 @@ static int CreateContext(__GLXclientState *cl, /* * visual does not have an FBConfig ??? client->errorValue = visual; - __glXFree( glxc ); + free( glxc ); return BadValue; */ } @@ -223,11 +223,11 @@ static int CreateContext(__GLXclientState *cl, * allocate memory for back-end servers info */ num_be_screens = to_screen - from_screen + 1; - glxc->real_ids = (XID *)__glXMalloc(sizeof(XID) * num_be_screens); + glxc->real_ids = (XID *)malloc(sizeof(XID) * num_be_screens); if (!glxc->real_ids) { return BadAlloc; } - glxc->real_vids = (XID *)__glXMalloc(sizeof(XID) * num_be_screens); + glxc->real_vids = (XID *)malloc(sizeof(XID) * num_be_screens); if (!glxc->real_vids) { return BadAlloc; } @@ -252,9 +252,9 @@ static int CreateContext(__GLXclientState *cl, if (!be_vid) { /* visual is not supported on the back-end server */ - __glXFree( glxc->real_ids ); - __glXFree( glxc->real_vids ); - __glXFree( glxc ); + free( glxc->real_ids ); + free( glxc->real_vids ); + free( glxc ); return BadValue; } } @@ -346,9 +346,9 @@ static int CreateContext(__GLXclientState *cl, ** Register this context as a resource. */ if (!AddResource(gcId, __glXContextRes, (pointer)glxc)) { - __glXFree( glxc->real_ids ); - __glXFree( glxc->real_vids ); - __glXFree( glxc ); + free( glxc->real_ids ); + free( glxc->real_vids ); + free( glxc ); client->errorValue = gcId; return BadAlloc; } @@ -585,16 +585,16 @@ static int AddCurrentContext(__GLXclientState *cl, __GLXcontext *glxc, DrawableP ** Didn't find a free slot, so we'll have to grow the table. */ if (!num) { - table = (__GLXcontext **) __glXMalloc(sizeof(__GLXcontext *)); - cl->currentDrawables = (DrawablePtr *) __glXMalloc(sizeof(DrawablePtr)); - cl->be_currentCTag = (GLXContextTag *) __glXMalloc(screenInfo.numScreens *sizeof(GLXContextTag)); + table = (__GLXcontext **) malloc(sizeof(__GLXcontext *)); + cl->currentDrawables = (DrawablePtr *) malloc(sizeof(DrawablePtr)); + cl->be_currentCTag = (GLXContextTag *) malloc(screenInfo.numScreens *sizeof(GLXContextTag)); } else { - table = (__GLXcontext **) __glXRealloc(table, + table = (__GLXcontext **) realloc(table, (num+1)*sizeof(__GLXcontext *)); - cl->currentDrawables = (DrawablePtr *) __glXRealloc( + cl->currentDrawables = (DrawablePtr *) realloc( cl->currentDrawables , (num+1)*sizeof(DrawablePtr)); - cl->be_currentCTag = (GLXContextTag *) __glXRealloc(cl->be_currentCTag, + cl->be_currentCTag = (GLXContextTag *) realloc(cl->be_currentCTag, (num+1)*screenInfo.numScreens*sizeof(GLXContextTag)); } table[num] = glxc; @@ -1721,13 +1721,13 @@ static int CreateGLXPixmap(__GLXclientState *cl, pGlxVisual = NULL; } - pGlxPixmap = (__GLXpixmap *) __glXMalloc(sizeof(__GLXpixmap)); + pGlxPixmap = (__GLXpixmap *) malloc(sizeof(__GLXpixmap)); if (!pGlxPixmap) { return BadAlloc; } - pGlxPixmap->be_xids = (XID *) __glXMalloc(sizeof(XID) * screenInfo.numScreens); + pGlxPixmap->be_xids = (XID *) malloc(sizeof(XID) * screenInfo.numScreens); if (!pGlxPixmap->be_xids) { - __glXFree( pGlxPixmap ); + free( pGlxPixmap ); return BadAlloc; } @@ -1832,7 +1832,7 @@ static int CreateGLXPixmap(__GLXclientState *cl, } else { client->errorValue = ( visual ? visual : fbconfigId ); - __glXFree( pGlxPixmap ); + free( pGlxPixmap ); return BadValue; } @@ -1840,7 +1840,7 @@ static int CreateGLXPixmap(__GLXclientState *cl, } if (!(AddResource(glxpixmapId, __glXPixmapRes, pGlxPixmap))) { - __glXFree( pGlxPixmap ); + free( pGlxPixmap ); return BadAlloc; } @@ -2570,7 +2570,7 @@ int __glXClientInfo(__GLXclientState *cl, GLbyte *pc) cl->GLClientmajorVersion = req->major; cl->GLClientminorVersion = req->minor; - if (cl->GLClientextensions) __glXFree(cl->GLClientextensions); + if (cl->GLClientextensions) free(cl->GLClientextensions); buf = (const char *)(req+1); cl->GLClientextensions = strdup(buf); diff --git a/hw/dmx/glxProxy/glxcmdsswap.c b/hw/dmx/glxProxy/glxcmdsswap.c index 960c60d81..44f1c1592 100644 --- a/hw/dmx/glxProxy/glxcmdsswap.c +++ b/hw/dmx/glxProxy/glxcmdsswap.c @@ -702,9 +702,9 @@ int __glXSwapRenderLarge(__GLXclientState *cl, GLbyte *pc) */ if (cl->largeCmdBufSize < hdr->length) { if (!cl->largeCmdBuf) { - cl->largeCmdBuf = (GLbyte *) __glXMalloc(hdr->length); + cl->largeCmdBuf = (GLbyte *) malloc(hdr->length); } else { - cl->largeCmdBuf = (GLbyte *) __glXRealloc(cl->largeCmdBuf, hdr->length); + cl->largeCmdBuf = (GLbyte *) realloc(cl->largeCmdBuf, hdr->length); } if (!cl->largeCmdBuf) { cl->largeCmdRequestsTotal = 0; diff --git a/hw/dmx/glxProxy/glxext.c b/hw/dmx/glxProxy/glxext.c index 36a79ef93..a8fc0a88d 100644 --- a/hw/dmx/glxProxy/glxext.c +++ b/hw/dmx/glxProxy/glxext.c @@ -77,10 +77,10 @@ static void ResetClientState(int clientIndex) Display **keep_be_displays; int i; - if (cl->returnBuf) __glXFree(cl->returnBuf); - if (cl->currentContexts) __glXFree(cl->currentContexts); - if (cl->currentDrawables) __glXFree(cl->currentDrawables); - if (cl->largeCmdBuf) __glXFree(cl->largeCmdBuf); + if (cl->returnBuf) free(cl->returnBuf); + if (cl->currentContexts) free(cl->currentContexts); + if (cl->currentDrawables) free(cl->currentDrawables); + if (cl->largeCmdBuf) free(cl->largeCmdBuf); for (i=0; i< screenInfo.numScreens; i++) { if (cl->be_displays[i]) @@ -97,7 +97,7 @@ static void ResetClientState(int clientIndex) */ cl->GLClientmajorVersion = 1; cl->GLClientminorVersion = 0; - if (cl->GLClientextensions) __glXFree(cl->GLClientextensions); + if (cl->GLClientextensions) free(cl->GLClientextensions); memset(cl->be_displays, 0, screenInfo.numScreens * sizeof(Display *)); } @@ -167,8 +167,8 @@ void __glXFreeGLXPixmap( __GLXpixmap *pGlxPixmap ) ** only if it's zero. */ (*pGlxPixmap->pScreen->DestroyPixmap)(pPixmap); - __glXFree(pGlxPixmap->be_xids); - __glXFree(pGlxPixmap); + free(pGlxPixmap->be_xids); + free(pGlxPixmap); } } @@ -222,10 +222,10 @@ GLboolean __glXFreeContext(__GLXcontext *cx) { if (cx->idExists || cx->isCurrent) return GL_FALSE; - if (cx->feedbackBuf) __glXFree(cx->feedbackBuf); - if (cx->selectBuf) __glXFree(cx->selectBuf); - if (cx->real_ids) __glXFree(cx->real_ids); - if (cx->real_vids) __glXFree(cx->real_vids); + if (cx->feedbackBuf) free(cx->feedbackBuf); + if (cx->selectBuf) free(cx->selectBuf); + if (cx->real_ids) free(cx->real_ids); + if (cx->real_vids) free(cx->real_vids); if (cx->pGlxPixmap) { /* @@ -263,7 +263,7 @@ GLboolean __glXFreeContext(__GLXcontext *cx) cx->pGlxReadWindow = 0; } - __glXFree(cx); + free(cx); if (cx == __glXLastContext) { __glXFlushContextCache(); @@ -387,15 +387,15 @@ static int __glXDispatch(ClientPtr client) opcode = stuff->glxCode; cl = __glXClients[client->index]; if (!cl) { - cl = __glXCalloc(1, sizeof(__GLXclientState)); + cl = calloc(1, sizeof(__GLXclientState)); __glXClients[client->index] = cl; if (!cl) { return BadAlloc; } - cl->be_displays = __glXCalloc(screenInfo.numScreens, sizeof(Display *)); + cl->be_displays = calloc(screenInfo.numScreens, sizeof(Display *)); if (!cl->be_displays) { - __glXFree( cl ); + free( cl ); return BadAlloc; } } @@ -439,15 +439,15 @@ static int __glXSwapDispatch(ClientPtr client) opcode = stuff->glxCode; cl = __glXClients[client->index]; if (!cl) { - cl = __glXCalloc(1, sizeof(__GLXclientState)); + cl = calloc(1, sizeof(__GLXclientState)); __glXClients[client->index] = cl; if (!cl) { return BadAlloc; } - cl->be_displays = __glXCalloc(screenInfo.numScreens, sizeof(Display *)); + cl->be_displays = calloc(screenInfo.numScreens, sizeof(Display *)); if (!cl->be_displays) { - __glXFree( cl ); + free( cl ); return BadAlloc; } } diff --git a/hw/dmx/glxProxy/glxutil.c b/hw/dmx/glxProxy/glxutil.c index 18fd43ac4..c519d14a2 100644 --- a/hw/dmx/glxProxy/glxutil.c +++ b/hw/dmx/glxProxy/glxutil.c @@ -29,81 +29,6 @@ */ #include "glxserver.h" -#include -#include -#include #include "glxutil.h" -#include - -/************************************************************************/ void __glXNop(void) {} - -/************************************************************************/ - -/* Memory Allocation for GLX */ - -void * -__glXMalloc(size_t size) -{ - void *addr; - - if (size == 0) { - return NULL; - } - addr = malloc(size); - if (addr == NULL) { - /* XXX: handle out of memory error */ - return NULL; - } - return addr; -} - -void * -__glXCalloc(size_t numElements, size_t elementSize) -{ - void *addr; - size_t size; - - if ((numElements == 0) || (elementSize == 0)) { - return NULL; - } - addr = calloc(numElements, elementSize); - if (addr == NULL) { - /* XXX: handle out of memory error */ - return NULL; - } - return addr; -} - -void * -__glXRealloc(void *addr, size_t newSize) -{ - void *newAddr; - - if (addr) { - if (newSize == 0) { - free(addr); - return NULL; - } else { - newAddr = realloc(addr, newSize); - } - } else { - if (newSize == 0) { - return NULL; - } else { - newAddr = malloc(newSize); - } - } - if (newAddr == NULL) { - return NULL; /* XXX: out of memory */ - } - - return newAddr; -} - -void -__glXFree(void *addr) -{ - free(addr); -} diff --git a/hw/dmx/glxProxy/glxutil.h b/hw/dmx/glxProxy/glxutil.h index 6487ca716..54582122b 100644 --- a/hw/dmx/glxProxy/glxutil.h +++ b/hw/dmx/glxProxy/glxutil.h @@ -33,12 +33,6 @@ extern void __glXNop(void); -/* memory management */ -extern void *__glXMalloc(size_t size); -extern void *__glXCalloc(size_t numElements, size_t elementSize); -extern void *__glXRealloc(void *addr, size_t newSize); -extern void __glXFree(void *ptr); - /* context helper routines */ extern __GLXcontext *__glXLookupContextByTag(__GLXclientState*, GLXContextTag); extern DrawablePtr __glXLookupDrawableByTag(__GLXclientState *cl, GLXContextTag tag); From e99bbfa0a24ec038b88e81881133a676bf63580e Mon Sep 17 00:00:00 2001 From: Jamey Sharp Date: Tue, 25 May 2010 13:50:11 -0700 Subject: [PATCH 050/125] dmx: Delete '#undef Xmalloc' and friends. Nothing in dmx uses these names any more, and it builds cleanly without trying to undef them. Signed-off-by: Jamey Sharp Reviewed-by: Alex Deucher --- hw/dmx/glxProxy/glxcmds.c | 5 ----- hw/dmx/glxProxy/glxscreens.c | 5 ----- hw/dmx/glxProxy/glxsingle.c | 5 ----- hw/dmx/glxProxy/glxvendor.c | 5 ----- 4 files changed, 20 deletions(-) diff --git a/hw/dmx/glxProxy/glxcmds.c b/hw/dmx/glxProxy/glxcmds.c index b0652df09..a9744e186 100644 --- a/hw/dmx/glxProxy/glxcmds.c +++ b/hw/dmx/glxProxy/glxcmds.c @@ -38,11 +38,6 @@ #include "dmxfont.h" #include "dmxsync.h" -#undef Xmalloc -#undef Xcalloc -#undef Xrealloc -#undef Xfree - #include "glxserver.h" #include #include "g_disptab.h" diff --git a/hw/dmx/glxProxy/glxscreens.c b/hw/dmx/glxProxy/glxscreens.c index a0e8bea28..4cbac6634 100644 --- a/hw/dmx/glxProxy/glxscreens.c +++ b/hw/dmx/glxProxy/glxscreens.c @@ -35,11 +35,6 @@ #include "dmx.h" #include "dmxlog.h" -#undef Xmalloc -#undef Xcalloc -#undef Xrealloc -#undef Xfree - #include "glxserver.h" #include diff --git a/hw/dmx/glxProxy/glxsingle.c b/hw/dmx/glxProxy/glxsingle.c index a7ed57427..4c473ff13 100644 --- a/hw/dmx/glxProxy/glxsingle.c +++ b/hw/dmx/glxProxy/glxsingle.c @@ -39,11 +39,6 @@ #include "dmxfont.h" #include "dmxcb.h" -#undef Xmalloc -#undef Xcalloc -#undef Xrealloc -#undef Xfree - #include "glxserver.h" #include "glxext.h" #include "g_disptab.h" diff --git a/hw/dmx/glxProxy/glxvendor.c b/hw/dmx/glxProxy/glxvendor.c index 5e0fb8899..7ba727dc2 100644 --- a/hw/dmx/glxProxy/glxvendor.c +++ b/hw/dmx/glxProxy/glxvendor.c @@ -38,11 +38,6 @@ #include "dmxpixmap.h" #include "dmxfont.h" -#undef Xmalloc -#undef Xcalloc -#undef Xrealloc -#undef Xfree - #include "glxserver.h" #include "glxext.h" #include "g_disptab.h" From 5ff9e58bef668c1279c5e253795711a1e118aaa1 Mon Sep 17 00:00:00 2001 From: Jamey Sharp Date: Sat, 12 Jun 2010 08:51:04 -0700 Subject: [PATCH 051/125] fb: Delete unused oneRect private field. Signed-off-by: Jamey Sharp Reviewed-by: Mikhail Gusarov --- fb/fb.h | 1 - fb/fbgc.c | 1 - 2 files changed, 2 deletions(-) diff --git a/fb/fb.h b/fb/fb.h index a06f98be2..c290ebff8 100644 --- a/fb/fb.h +++ b/fb/fb.h @@ -666,7 +666,6 @@ typedef struct { FbBits bgand, bgxor; /* for stipples */ FbBits fg, bg, pm; /* expanded and filled */ unsigned int dashLength; /* total of all dash elements */ - unsigned char oneRect; /* clip list is single rectangle */ unsigned char evenStipple; /* stipple is even */ unsigned char bpp; /* current drawable bpp */ } FbGCPrivRec, *FbGCPrivPtr; diff --git a/fb/fbgc.c b/fb/fbgc.c index e3e923675..2568698f7 100644 --- a/fb/fbgc.c +++ b/fb/fbgc.c @@ -213,7 +213,6 @@ fbValidateGC(GCPtr pGC, unsigned long changes, DrawablePtr pDrawable) ) { miComputeCompositeClip (pGC, pDrawable); - pPriv->oneRect = RegionNumRects(fbGetCompositeClip(pGC)) == 1; } #ifdef FB_24_32BIT From 139aa6e74227f0fe52cd8dccf1d563664103aaba Mon Sep 17 00:00:00 2001 From: Jamey Sharp Date: Sun, 13 Jun 2010 18:57:08 -0700 Subject: [PATCH 052/125] damage: Delete NOTUSED block--it was never not NOTUSED. Signed-off-by: Jamey Sharp Reviewed-by: Tiago Vignatti --- miext/damage/damage.c | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/miext/damage/damage.c b/miext/damage/damage.c index e0e96f276..b809cca55 100644 --- a/miext/damage/damage.c +++ b/miext/damage/damage.c @@ -458,28 +458,6 @@ damageCreateGC(GCPtr pGC) return ret; } -#ifdef NOTUSED -static void -damageWrapGC (GCPtr pGC) -{ - damageGCPriv(pGC); - - pGCPriv->ops = NULL; - pGCPriv->funcs = pGC->funcs; - pGC->funcs = &damageGCFuncs; -} - -static void -damageUnwrapGC (GCPtr pGC) -{ - damageGCPriv(pGC); - - pGC->funcs = pGCPriv->funcs; - if (pGCPriv->ops) - pGC->ops = pGCPriv->ops; -} -#endif - #define DAMAGE_GC_OP_PROLOGUE(pGC, pDrawable) \ damageGCPriv(pGC); \ GCFuncs *oldFuncs = pGC->funcs; \ From b2184024361717358e35a56b084c4a71cbc29234 Mon Sep 17 00:00:00 2001 From: Jamey Sharp Date: Sat, 12 Jun 2010 16:20:00 -0700 Subject: [PATCH 053/125] Delete unused devPrivate field from GCFuncs and GCOps. Signed-off-by: Jamey Sharp Reviewed-by: Tiago Vignatti --- hw/xfree86/common/xf86VGAarbiter.c | 1 - hw/xfree86/shadowfb/shadow.c | 1 - hw/xfree86/xaa/xaaFallback.c | 1 - hw/xfree86/xaa/xaaGC.c | 1 - include/gcstruct.h | 3 --- miext/damage/damage.c | 1 - 6 files changed, 8 deletions(-) diff --git a/hw/xfree86/common/xf86VGAarbiter.c b/hw/xfree86/common/xf86VGAarbiter.c index 4f46059c3..becf4a9c7 100644 --- a/hw/xfree86/common/xf86VGAarbiter.c +++ b/hw/xfree86/common/xf86VGAarbiter.c @@ -53,7 +53,6 @@ static GCOps VGAarbiterGCOps = { VGAarbiterPolyFillArc, VGAarbiterPolyText8, VGAarbiterPolyText16, VGAarbiterImageText8, VGAarbiterImageText16, VGAarbiterImageGlyphBlt, VGAarbiterPolyGlyphBlt, VGAarbiterPushPixels, - {NULL} /* devPrivate */ }; static miPointerSpriteFuncRec VGAarbiterSpriteFuncs = { diff --git a/hw/xfree86/shadowfb/shadow.c b/hw/xfree86/shadowfb/shadow.c index 344f1abf7..0af53d1b7 100644 --- a/hw/xfree86/shadowfb/shadow.c +++ b/hw/xfree86/shadowfb/shadow.c @@ -1730,6 +1730,5 @@ GCOps ShadowGCOps = { ShadowPolyText16, ShadowImageText8, ShadowImageText16, ShadowImageGlyphBlt, ShadowPolyGlyphBlt, ShadowPushPixels, - {NULL} /* devPrivate */ }; diff --git a/hw/xfree86/xaa/xaaFallback.c b/hw/xfree86/xaa/xaaFallback.c index 7ab4031f8..deeadbfb5 100644 --- a/hw/xfree86/xaa/xaaFallback.c +++ b/hw/xfree86/xaa/xaaFallback.c @@ -343,7 +343,6 @@ GCOps XAAFallbackOps = { XAAPolyText16Fallback, XAAImageText8Fallback, XAAImageText16Fallback, XAAImageGlyphBltFallback, XAAPolyGlyphBltFallback, XAAPushPixelsFallback, - {NULL} /* devPrivate */ }; GCOps *XAAGetFallbackOps(void) diff --git a/hw/xfree86/xaa/xaaGC.c b/hw/xfree86/xaa/xaaGC.c index fbef88d77..fb243874e 100644 --- a/hw/xfree86/xaa/xaaGC.c +++ b/hw/xfree86/xaa/xaaGC.c @@ -651,5 +651,4 @@ GCOps XAAPixmapOps = { XAAPolyText16Pixmap, XAAImageText8Pixmap, XAAImageText16Pixmap, XAAImageGlyphBltPixmap, XAAPolyGlyphBltPixmap, XAAPushPixelsPixmap, - {NULL} /* devPrivate */ }; diff --git a/include/gcstruct.h b/include/gcstruct.h index 3f70eada4..b6d71a9a3 100644 --- a/include/gcstruct.h +++ b/include/gcstruct.h @@ -95,7 +95,6 @@ typedef struct _GCFuncs { void (* CopyClip)( GCPtr /*pgcDst*/, GCPtr /*pgcSrc*/); - DevUnion devPrivate; } GCFuncs; /* @@ -264,8 +263,6 @@ typedef struct _GCOps { int /*h*/, int /*x*/, int /*y*/); - - DevUnion devPrivate; } GCOps; /* there is padding in the bit fields because the Sun compiler doesn't diff --git a/miext/damage/damage.c b/miext/damage/damage.c index b809cca55..2b7e5f229 100644 --- a/miext/damage/damage.c +++ b/miext/damage/damage.c @@ -1757,7 +1757,6 @@ static GCOps damageGCOps = { damagePolyText16, damageImageText8, damageImageText16, damageImageGlyphBlt, damagePolyGlyphBlt, damagePushPixels, - {NULL} /* devPrivate */ }; static void From f856dcdc3a7b635dd94d3dac387ddec952e4880b Mon Sep 17 00:00:00 2001 From: Jamey Sharp Date: Sat, 12 Jun 2010 08:42:31 -0700 Subject: [PATCH 054/125] Delete unused lastWinOrg field from GCs. Signed-off-by: Jamey Sharp Reviewed-by: Mikhail Gusarov --- dix/gc.c | 4 ---- fb/fbgc.c | 3 --- hw/xnest/GC.c | 2 -- include/gcstruct.h | 1 - 4 files changed, 10 deletions(-) diff --git a/dix/gc.c b/dix/gc.c index 6da243e01..83bb52474 100644 --- a/dix/gc.c +++ b/dix/gc.c @@ -527,8 +527,6 @@ CreateGC(DrawablePtr pDrawable, BITS32 mask, XID *pval, int *pStatus, pGC->numInDashList = 2; pGC->dash = DefaultDash; pGC->dashOffset = 0; - pGC->lastWinOrg.x = 0; - pGC->lastWinOrg.y = 0; /* use the default font and stipple */ pGC->font = defaultFont; @@ -841,8 +839,6 @@ CreateScratchGC(ScreenPtr pScreen, unsigned depth) pGC->dashOffset = 0; pGC->numInDashList = 2; pGC->dash = DefaultDash; - pGC->lastWinOrg.x = 0; - pGC->lastWinOrg.y = 0; /* scratch GCs in the GCperDepth pool start off unused */ pGC->scratch_inuse = FALSE; diff --git a/fb/fbgc.c b/fb/fbgc.c index 2568698f7..45e981b61 100644 --- a/fb/fbgc.c +++ b/fb/fbgc.c @@ -199,9 +199,6 @@ fbValidateGC(GCPtr pGC, unsigned long changes, DrawablePtr pDrawable) FbGCPrivPtr pPriv = fbGetGCPrivate(pGC); FbBits mask; - pGC->lastWinOrg.x = pDrawable->x; - pGC->lastWinOrg.y = pDrawable->y; - /* * if the client clip is different or moved OR the subwindowMode has * changed OR the window's clip has changed since the last validation diff --git a/hw/xnest/GC.c b/hw/xnest/GC.c index 2761583ec..407cc77f3 100644 --- a/hw/xnest/GC.c +++ b/hw/xnest/GC.c @@ -92,8 +92,6 @@ xnestCreateGC(GCPtr pGC) void xnestValidateGC(GCPtr pGC, unsigned long changes, DrawablePtr pDrawable) { - pGC->lastWinOrg.x = pDrawable->x; - pGC->lastWinOrg.y = pDrawable->y; } void diff --git a/include/gcstruct.h b/include/gcstruct.h index b6d71a9a3..4fea02cb4 100644 --- a/include/gcstruct.h +++ b/include/gcstruct.h @@ -303,7 +303,6 @@ typedef struct _GC { DDXPointRec patOrg; /* origin for (tile, stipple) */ struct _Font *font; DDXPointRec clipOrg; - DDXPointRec lastWinOrg; /* position of window last validated */ pointer clientClip; unsigned long stateChanges; /* masked with GC_ */ unsigned long serialNumber; From 3288232f3d2a0239944bd856101c2d16c713ef40 Mon Sep 17 00:00:00 2001 From: Jamey Sharp Date: Sun, 13 Jun 2010 18:10:38 -0700 Subject: [PATCH 055/125] Delete xaaWrapper. This was part of "An experimental pseudocolor emulation layer. Not fully completed, currently only works for 16bpp." Only neomagic tried to use it, and that was neutered by the removal of the fbpseudocolor portion of that emulation layer; the rest is easily removed. Signed-off-by: Jamey Sharp Reviewed-by: Alex Deucher --- hw/xfree86/loader/sdksyms.sh | 1 - hw/xfree86/xaa/Makefile.am | 4 +- hw/xfree86/xaa/xaaWrapper.c | 477 ----------------------------------- hw/xfree86/xaa/xaaWrapper.h | 10 - 4 files changed, 2 insertions(+), 490 deletions(-) delete mode 100644 hw/xfree86/xaa/xaaWrapper.c delete mode 100644 hw/xfree86/xaa/xaaWrapper.h diff --git a/hw/xfree86/loader/sdksyms.sh b/hw/xfree86/loader/sdksyms.sh index 700879cb2..6ca368ed5 100755 --- a/hw/xfree86/loader/sdksyms.sh +++ b/hw/xfree86/loader/sdksyms.sh @@ -178,7 +178,6 @@ cat > sdksyms.c << EOF #include "xaa.h" #include "xaalocal.h" #include "xaarop.h" -#include "xaaWrapper.h" */ diff --git a/hw/xfree86/xaa/Makefile.am b/hw/xfree86/xaa/Makefile.am index e9f5e687c..4ba1f7812 100644 --- a/hw/xfree86/xaa/Makefile.am +++ b/hw/xfree86/xaa/Makefile.am @@ -17,7 +17,7 @@ module_LTLIBRARIES = libxaa.la libxaa_la_SOURCES = xaaInit.c xaaGC.c xaaInitAccel.c xaaFallback.c \ xaaBitBlt.c xaaCpyArea.c xaaGCmisc.c xaaCpyWin.c \ xaaCpyPlane.c xaaFillRect.c xaaTEText.c xaaNonTEText.c \ - xaaPCache.c xaaSpans.c xaaROP.c xaaImage.c xaaWrapper.c \ + xaaPCache.c xaaSpans.c xaaROP.c xaaImage.c \ xaaRect.c xaaLineMisc.c xaaBitOrder.c \ xaaFillPoly.c xaaWideLine.c xaaTables.c xaaFillArc.c \ xaaLine.c xaaDashLine.c xaaOverlay.c xaaOffscreen.c \ @@ -64,7 +64,7 @@ DISTCLEANFILES = $(POLYSEG) \ $(LSB_FIRST) $(LSB_FIXED) $(MSB_FIRST) $(MSB_FIXED) \ $(LSB_3_FIRST) $(LSB_3_FIXED) $(MSB_3_FIRST) $(MSB_3_FIXED) -sdk_HEADERS = xaa.h xaalocal.h xaarop.h xaaWrapper.h +sdk_HEADERS = xaa.h xaalocal.h xaarop.h EXTRA_DIST = xaacexp.h xaawrap.h xaaLine.c xaaDashLine.c \ xaaStipple.c xaaTEGlyph.c xaaNonTEGlyph.c xaaBitmap.c \ XAA.HOWTO diff --git a/hw/xfree86/xaa/xaaWrapper.c b/hw/xfree86/xaa/xaaWrapper.c deleted file mode 100644 index e91bac062..000000000 --- a/hw/xfree86/xaa/xaaWrapper.c +++ /dev/null @@ -1,477 +0,0 @@ -#ifdef HAVE_XORG_CONFIG_H -#include -#endif - -#include -#include -#include "scrnintstr.h" -#include "gcstruct.h" -#include "glyphstr.h" -#include "window.h" -#include "windowstr.h" -#include "picture.h" -#include "picturestr.h" -#include "colormapst.h" -#include "xaa.h" -#include "xaalocal.h" -#include "xaaWrapper.h" - -void XAASync(ScreenPtr pScreen); - -/* #include "render.h" */ - -#if 1 -#define COND(pDraw) \ - ((pDraw)->depth \ - != (xaaWrapperGetScrPriv(((DrawablePtr)(pDraw))->pScreen))->depth) -#else -#define COND(pDraw) 1 -#endif - -static Bool xaaWrapperCreateGC(GCPtr pGC); -static void xaaWrapperValidateGC(GCPtr pGC, unsigned long changes, DrawablePtr pDraw); -static void xaaWrapperDestroyGC(GCPtr pGC); -static void xaaWrapperChangeGC (GCPtr pGC, unsigned long mask); -static void xaaWrapperCopyGC (GCPtr pGCSrc, unsigned long mask, GCPtr pGCDst); -static void xaaWrapperChangeClip (GCPtr pGC, int type, pointer pvalue, int nrects); - -static void xaaWrapperCopyClip(GCPtr pgcDst, GCPtr pgcSrc); -static void xaaWrapperDestroyClip(GCPtr pGC); - - -static void -xaaWrapperComposite (CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst, - INT16 xSrc, INT16 ySrc, INT16 xMask, INT16 yMask, - INT16 xDst, INT16 yDst, CARD16 width, CARD16 height); -static void -xaaWrapperGlyphs (CARD8 op, PicturePtr pSrc, PicturePtr pDst, - PictFormatPtr maskFormat, INT16 xSrc, INT16 ySrc, int nlist, - GlyphListPtr list, GlyphPtr *glyphs); - - -typedef struct { - CloseScreenProcPtr CloseScreen; - CreateScreenResourcesProcPtr CreateScreenResources; - CreateWindowProcPtr CreateWindow; - CopyWindowProcPtr CopyWindow; - WindowExposuresProcPtr WindowExposures; - CreateGCProcPtr CreateGC; - CreateColormapProcPtr CreateColormap; - DestroyColormapProcPtr DestroyColormap; - InstallColormapProcPtr InstallColormap; - UninstallColormapProcPtr UninstallColormap; - ListInstalledColormapsProcPtr ListInstalledColormaps; - StoreColorsProcPtr StoreColors; - CompositeProcPtr Composite; - GlyphsProcPtr Glyphs; - - CloseScreenProcPtr wrapCloseScreen; - CreateScreenResourcesProcPtr wrapCreateScreenResources; - CreateWindowProcPtr wrapCreateWindow; - CopyWindowProcPtr wrapCopyWindow; - WindowExposuresProcPtr wrapWindowExposures; - CreateGCProcPtr wrapCreateGC; - CreateColormapProcPtr wrapCreateColormap; - DestroyColormapProcPtr wrapDestroyColormap; - InstallColormapProcPtr wrapInstallColormap; - UninstallColormapProcPtr wrapUninstallColormap; - ListInstalledColormapsProcPtr wrapListInstalledColormaps; - StoreColorsProcPtr wrapStoreColors; - CompositeProcPtr wrapComposite; - GlyphsProcPtr wrapGlyphs; - int depth; -} xaaWrapperScrPrivRec, *xaaWrapperScrPrivPtr; - -#define xaaWrapperGetScrPriv(s) ((xaaWrapperScrPrivPtr) \ - dixLookupPrivate(&(s)->devPrivates, xaaWrapperScrPrivateKey)) -#define xaaWrapperScrPriv(s) xaaWrapperScrPrivPtr pScrPriv = xaaWrapperGetScrPriv(s) - -#define wrap(priv,real,mem,func) {\ - priv->mem = real->mem; \ - real->mem = func; \ -} - -#define unwrap(priv,real,mem) {\ - real->mem = priv->mem; \ -} - -#define cond_wrap(priv,cond,real,mem,wrapmem,func) {\ - if (COND(cond)) \ - priv->wrapmem = real->mem; \ - else \ - priv->mem = real->mem; \ - real->mem = func; \ -} - -#define cond_unwrap(priv,cond,real,mem,wrapmem) {\ - if (COND(cond)) \ - real->mem = priv->wrapmem; \ - else \ - real->mem = priv->mem; \ -} - -#define get(priv,real,func,wrap) \ - priv->wrap = real->func; - -typedef struct _xaaWrapperGCPriv { - GCOps *ops; - Bool wrap; - GCFuncs *funcs; - GCOps *wrapops; -} xaaWrapperGCPrivRec, *xaaWrapperGCPrivPtr; - -#define xaaWrapperGetGCPriv(pGC) ((xaaWrapperGCPrivPtr) \ - dixLookupPrivate(&(pGC)->devPrivates, xaaWrapperGCPrivateKey)) -#define xaaWrapperGCPriv(pGC) xaaWrapperGCPrivPtr pGCPriv = xaaWrapperGetGCPriv(pGC) - - -static DevPrivateKeyRec xaaWrapperScrPrivateKeyRec; -#define xaaWrapperScrPrivateKey (&xaaWrapperScrPrivateKeyRec) -static DevPrivateKeyRec xaaWrapperGCPrivateKeyRec; -#define xaaWrapperGCPrivateKey (&xaaWrapperGCPrivateKeyRec) - -static Bool -xaaWrapperCreateScreenResources(ScreenPtr pScreen) -{ - xaaWrapperScrPriv(pScreen); - Bool ret; - - unwrap (pScrPriv,pScreen, CreateScreenResources); - ret = pScreen->CreateScreenResources(pScreen); - wrap(pScrPriv,pScreen,CreateScreenResources,xaaWrapperCreateScreenResources); - return ret; -} - -static Bool -xaaWrapperCloseScreen (int iScreen, ScreenPtr pScreen) -{ - xaaWrapperScrPriv(pScreen); - Bool ret; - - unwrap (pScrPriv,pScreen, CloseScreen); - ret = pScreen->CloseScreen(iScreen,pScreen); - return TRUE; -} - -static Bool -xaaWrapperCreateWindow(WindowPtr pWin) -{ - xaaWrapperScrPriv(pWin->drawable.pScreen); - Bool ret; - - cond_unwrap(pScrPriv, &pWin->drawable, pWin->drawable.pScreen, - CreateWindow, wrapCreateWindow); - ret = pWin->drawable.pScreen->CreateWindow(pWin); - cond_wrap(pScrPriv, &pWin->drawable, pWin->drawable.pScreen, CreateWindow, - wrapCreateWindow, xaaWrapperCreateWindow); - - return ret; -} - -static void -xaaWrapperCopyWindow(WindowPtr pWin, - DDXPointRec ptOldOrg, - RegionPtr prgnSrc) -{ - ScreenPtr pScreen = pWin->drawable.pScreen; - xaaWrapperScrPriv(pScreen); - - unwrap (pScrPriv, pScreen, CopyWindow); -#if 0 - if (COND(&pWin->drawable)) - pWin->drawable.pScreen->CopyWindow = pScrPriv->wrapCopyWindow; -#endif - pScreen->CopyWindow(pWin, ptOldOrg, prgnSrc); - wrap(pScrPriv, pScreen, CopyWindow, xaaWrapperCopyWindow); -} - -static void -xaaWrapperWindowExposures (WindowPtr pWin, - RegionPtr prgn, - RegionPtr other_exposed) -{ - xaaWrapperScrPriv(pWin->drawable.pScreen); - - cond_unwrap(pScrPriv, &pWin->drawable, pWin->drawable.pScreen, - WindowExposures, wrapWindowExposures); - pWin->drawable.pScreen->WindowExposures(pWin, prgn, other_exposed); - cond_wrap(pScrPriv, &pWin->drawable, pWin->drawable.pScreen, - WindowExposures, wrapWindowExposures, xaaWrapperWindowExposures); -} - -static Bool -xaaWrapperCreateColormap(ColormapPtr pmap) -{ - xaaWrapperScrPriv(pmap->pScreen); - Bool ret; - unwrap(pScrPriv,pmap->pScreen, CreateColormap); - ret = pmap->pScreen->CreateColormap(pmap); - wrap(pScrPriv,pmap->pScreen,CreateColormap,xaaWrapperCreateColormap); - - return ret; -} - -static void -xaaWrapperDestroyColormap(ColormapPtr pmap) -{ - xaaWrapperScrPriv(pmap->pScreen); - unwrap(pScrPriv,pmap->pScreen, DestroyColormap); - pmap->pScreen->DestroyColormap(pmap); - wrap(pScrPriv,pmap->pScreen,DestroyColormap,xaaWrapperDestroyColormap); -} - -static void -xaaWrapperStoreColors(ColormapPtr pmap, int nColors, xColorItem *pColors) -{ - xaaWrapperScrPriv(pmap->pScreen); - unwrap(pScrPriv,pmap->pScreen, StoreColors); - pmap->pScreen->StoreColors(pmap,nColors,pColors); - wrap(pScrPriv,pmap->pScreen,StoreColors,xaaWrapperStoreColors); -} - -static void -xaaWrapperInstallColormap(ColormapPtr pmap) -{ - xaaWrapperScrPriv(pmap->pScreen); - - unwrap(pScrPriv,pmap->pScreen, InstallColormap); - pmap->pScreen->InstallColormap(pmap); - wrap(pScrPriv,pmap->pScreen,InstallColormap,xaaWrapperInstallColormap); -} - -static void -xaaWrapperUninstallColormap(ColormapPtr pmap) -{ - xaaWrapperScrPriv(pmap->pScreen); - - unwrap(pScrPriv,pmap->pScreen, UninstallColormap); - pmap->pScreen->UninstallColormap(pmap); - wrap(pScrPriv,pmap->pScreen,UninstallColormap,xaaWrapperUninstallColormap); -} - -static int -xaaWrapperListInstalledColormaps(ScreenPtr pScreen, Colormap *pCmapIds) -{ - int n; - xaaWrapperScrPriv(pScreen); - - unwrap(pScrPriv,pScreen, ListInstalledColormaps); - n = pScreen->ListInstalledColormaps(pScreen, pCmapIds); - wrap (pScrPriv,pScreen,ListInstalledColormaps,xaaWrapperListInstalledColormaps); - return n; -} - -Bool -xaaSetupWrapper(ScreenPtr pScreen, XAAInfoRecPtr infoPtr, int depth, SyncFunc *func) -{ - Bool ret; - xaaWrapperScrPrivPtr pScrPriv; - PictureScreenPtr ps = GetPictureScreenIfSet(pScreen); - - if (!dixRegisterPrivateKey(&xaaWrapperGCPrivateKeyRec, PRIVATE_GC, sizeof(xaaWrapperGCPrivRec))) - return FALSE; - - if (!dixRegisterPrivateKey(&xaaWrapperScrPrivateKeyRec, PRIVATE_SCREEN, 0)) - return FALSE; - - pScrPriv = (xaaWrapperScrPrivPtr) malloc(sizeof (xaaWrapperScrPrivRec)); - if (!pScrPriv) - return FALSE; - - get (pScrPriv, pScreen, CloseScreen, wrapCloseScreen); - get (pScrPriv, pScreen, CreateScreenResources, wrapCreateScreenResources); - get (pScrPriv, pScreen, CreateWindow, wrapCreateWindow); - get (pScrPriv, pScreen, CopyWindow, wrapCopyWindow); - get (pScrPriv, pScreen, WindowExposures, wrapWindowExposures); - get (pScrPriv, pScreen, CreateGC, wrapCreateGC); - get (pScrPriv, pScreen, CreateColormap, wrapCreateColormap); - get (pScrPriv, pScreen, DestroyColormap, wrapDestroyColormap); - get (pScrPriv, pScreen, InstallColormap, wrapInstallColormap); - get (pScrPriv, pScreen, UninstallColormap, wrapUninstallColormap); - get (pScrPriv, pScreen, ListInstalledColormaps, wrapListInstalledColormaps); - get (pScrPriv, pScreen, StoreColors, wrapStoreColors); - if (ps) { - get (pScrPriv, ps, Glyphs, wrapGlyphs); - get (pScrPriv, ps, Composite, wrapComposite); - } - if (!(ret = XAAInit(pScreen,infoPtr))) - return FALSE; - - wrap (pScrPriv, pScreen, CloseScreen, xaaWrapperCloseScreen); - wrap (pScrPriv, pScreen, CreateScreenResources, - xaaWrapperCreateScreenResources); - wrap (pScrPriv, pScreen, CreateWindow, xaaWrapperCreateWindow); - wrap (pScrPriv, pScreen, CopyWindow, xaaWrapperCopyWindow); - wrap (pScrPriv, pScreen, WindowExposures, xaaWrapperWindowExposures); - wrap (pScrPriv, pScreen, CreateGC, xaaWrapperCreateGC); - wrap (pScrPriv, pScreen, CreateColormap, xaaWrapperCreateColormap); - wrap (pScrPriv, pScreen, DestroyColormap, xaaWrapperDestroyColormap); - wrap (pScrPriv, pScreen, InstallColormap, xaaWrapperInstallColormap); - wrap (pScrPriv, pScreen, UninstallColormap, xaaWrapperUninstallColormap); - wrap (pScrPriv, pScreen, ListInstalledColormaps, - xaaWrapperListInstalledColormaps); - wrap (pScrPriv, pScreen, StoreColors, xaaWrapperStoreColors); - - if (ps) { - wrap (pScrPriv, ps, Glyphs, xaaWrapperGlyphs); - wrap (pScrPriv, ps, Composite, xaaWrapperComposite); - } - pScrPriv->depth = depth; - dixSetPrivate(&pScreen->devPrivates, xaaWrapperScrPrivateKey, pScrPriv); - - *func = XAASync; - - return ret; -} - -GCFuncs xaaWrapperGCFuncs = { - xaaWrapperValidateGC, xaaWrapperChangeGC, xaaWrapperCopyGC, - xaaWrapperDestroyGC, xaaWrapperChangeClip, xaaWrapperDestroyClip, - xaaWrapperCopyClip -}; - -#define XAAWRAPPER_GC_FUNC_PROLOGUE(pGC) \ - xaaWrapperGCPriv(pGC); \ - unwrap(pGCPriv, pGC, funcs); \ - if (pGCPriv->wrap) unwrap(pGCPriv, pGC, ops) - -#define XAAWRAPPER_GC_FUNC_EPILOGUE(pGC) \ - wrap(pGCPriv, pGC, funcs, &xaaWrapperGCFuncs); \ - if (pGCPriv->wrap) wrap(pGCPriv, pGC, ops, pGCPriv->wrapops) - -static Bool -xaaWrapperCreateGC(GCPtr pGC) -{ - ScreenPtr pScreen = pGC->pScreen; - xaaWrapperScrPriv(pScreen); - xaaWrapperGCPriv(pGC); - Bool ret; - - unwrap (pScrPriv, pScreen, CreateGC); - if((ret = (*pScreen->CreateGC) (pGC))) { - pGCPriv->wrap = FALSE; - pGCPriv->funcs = pGC->funcs; - pGCPriv->wrapops = pGC->ops; - pGC->funcs = &xaaWrapperGCFuncs; - } - wrap (pScrPriv, pScreen, CreateGC, xaaWrapperCreateGC); - - return ret; -} - -static void -xaaWrapperValidateGC( - GCPtr pGC, - unsigned long changes, - DrawablePtr pDraw -){ - XAAWRAPPER_GC_FUNC_PROLOGUE (pGC); - (*pGC->funcs->ValidateGC)(pGC, changes, pDraw); - - if(COND(pDraw)) - pGCPriv->wrap = TRUE; - - XAAWRAPPER_GC_FUNC_EPILOGUE (pGC); -} - -static void -xaaWrapperDestroyGC(GCPtr pGC) -{ - XAAWRAPPER_GC_FUNC_PROLOGUE (pGC); - (*pGC->funcs->DestroyGC)(pGC); - XAAWRAPPER_GC_FUNC_EPILOGUE (pGC); -} - -static void -xaaWrapperChangeGC ( - GCPtr pGC, - unsigned long mask -){ - XAAWRAPPER_GC_FUNC_PROLOGUE (pGC); - (*pGC->funcs->ChangeGC) (pGC, mask); - XAAWRAPPER_GC_FUNC_EPILOGUE (pGC); -} - -static void -xaaWrapperCopyGC ( - GCPtr pGCSrc, - unsigned long mask, - GCPtr pGCDst -){ - XAAWRAPPER_GC_FUNC_PROLOGUE (pGCDst); - (*pGCDst->funcs->CopyGC) (pGCSrc, mask, pGCDst); - XAAWRAPPER_GC_FUNC_EPILOGUE (pGCDst); -} - -static void -xaaWrapperChangeClip ( - GCPtr pGC, - int type, - pointer pvalue, - int nrects -){ - XAAWRAPPER_GC_FUNC_PROLOGUE (pGC); - (*pGC->funcs->ChangeClip) (pGC, type, pvalue, nrects); - XAAWRAPPER_GC_FUNC_EPILOGUE (pGC); -} - -static void -xaaWrapperCopyClip(GCPtr pgcDst, GCPtr pgcSrc) -{ - XAAWRAPPER_GC_FUNC_PROLOGUE (pgcDst); - (* pgcDst->funcs->CopyClip)(pgcDst, pgcSrc); - XAAWRAPPER_GC_FUNC_EPILOGUE (pgcDst); -} - -static void -xaaWrapperDestroyClip(GCPtr pGC) -{ - XAAWRAPPER_GC_FUNC_PROLOGUE (pGC); - (* pGC->funcs->DestroyClip)(pGC); - XAAWRAPPER_GC_FUNC_EPILOGUE (pGC); -} - -static void -xaaWrapperComposite (CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst, - INT16 xSrc, INT16 ySrc, INT16 xMask, INT16 yMask, - INT16 xDst, INT16 yDst, CARD16 width, CARD16 height) -{ - ScreenPtr pScreen = pDst->pDrawable->pScreen; - PictureScreenPtr ps = GetPictureScreen(pScreen); - xaaWrapperScrPriv(pScreen); - - unwrap (pScrPriv, ps, Composite); - (*ps->Composite) (op, pSrc, pMask, pDst, xSrc, ySrc, xMask, yMask, - xDst, yDst, width, height); - wrap (pScrPriv, ps, Composite, xaaWrapperComposite); -} - - -static void -xaaWrapperGlyphs (CARD8 op, PicturePtr pSrc, PicturePtr pDst, - PictFormatPtr maskFormat, INT16 xSrc, INT16 ySrc, int nlist, - GlyphListPtr list, GlyphPtr *glyphs) -{ - ScreenPtr pScreen = pDst->pDrawable->pScreen; - PictureScreenPtr ps = GetPictureScreen(pScreen); - xaaWrapperScrPriv(pScreen); - - unwrap (pScrPriv, ps, Glyphs); - (*ps->Glyphs) (op, pSrc, pDst, maskFormat, xSrc, ySrc, - nlist, list, glyphs); - wrap (pScrPriv, ps, Glyphs, xaaWrapperGlyphs); - -} - -void -XAASync(ScreenPtr pScreen) -{ - XAAScreenPtr pScreenPriv = (XAAScreenPtr) - dixLookupPrivate(&pScreen->devPrivates, XAAGetScreenKey()); - XAAInfoRecPtr infoRec = pScreenPriv->AccelInfoRec; - - if(infoRec->NeedToSync) { - (*infoRec->Sync)(infoRec->pScrn); - infoRec->NeedToSync = FALSE; - } -} diff --git a/hw/xfree86/xaa/xaaWrapper.h b/hw/xfree86/xaa/xaaWrapper.h deleted file mode 100644 index f554741c6..000000000 --- a/hw/xfree86/xaa/xaaWrapper.h +++ /dev/null @@ -1,10 +0,0 @@ - -#ifndef _XAA_WRAPPER_H -# define _XAA_WRAPPER_H - -typedef void (*SyncFunc)(ScreenPtr); - -extern _X_EXPORT Bool xaaSetupWrapper(ScreenPtr pScreen, - XAAInfoRecPtr infoPtr, int depth, SyncFunc *func); - -#endif From bbbf795e6b1ac048ea17164ba1089055cfe4306d Mon Sep 17 00:00:00 2001 From: Jamey Sharp Date: Sun, 23 May 2010 17:15:43 -0700 Subject: [PATCH 056/125] Delete redundant GC initializations. When a GC is allocated, it is zeroed, including all storage requested with dixRegisterPrivateKey. So CreateGC hooks don't need to initialize anything to zero. Signed-off-by: Jamey Sharp Reviewed-by: Alex Deucher --- fb/fbgc.c | 8 +------- hw/xfree86/xaa/xaaGC.c | 5 ----- hw/xnest/GC.c | 3 --- hw/xwin/wingc.c | 5 ----- miext/cw/cw.c | 1 - miext/damage/damage.c | 1 - 6 files changed, 1 insertion(+), 22 deletions(-) diff --git a/fb/fbgc.c b/fb/fbgc.c index 45e981b61..b27a030c5 100644 --- a/fb/fbgc.c +++ b/fb/fbgc.c @@ -64,19 +64,13 @@ const GCOps fbGCOps = { Bool fbCreateGC(GCPtr pGC) { - pGC->clientClip = NULL; - pGC->clientClipType = CT_NONE; - pGC->ops = (GCOps *) &fbGCOps; pGC->funcs = (GCFuncs *) &fbGCFuncs; /* fb wants to translate before scan conversion */ pGC->miTranslate = 1; + pGC->fExpose = 1; - fbGetRotatedPixmap(pGC) = 0; - fbGetExpose(pGC) = 1; - fbGetFreeCompClip(pGC) = 0; - fbGetCompositeClip(pGC) = 0; fbGetGCPrivate(pGC)->bpp = BitsPerPixel (pGC->depth); return TRUE; } diff --git a/hw/xfree86/xaa/xaaGC.c b/hw/xfree86/xaa/xaaGC.c index fb243874e..44d50e6b6 100644 --- a/hw/xfree86/xaa/xaaGC.c +++ b/hw/xfree86/xaa/xaaGC.c @@ -48,11 +48,6 @@ XAACreateGC(GCPtr pGC) pGCPriv->wrapOps = NULL; pGCPriv->wrapFuncs = pGC->funcs; pGCPriv->XAAOps = &XAAFallbackOps; - pGCPriv->flags = 0; - pGCPriv->DashLength = 0; - pGCPriv->DashPattern = NULL; - pGCPriv->changes = 0; - /* initialize any other private fields here */ pGC->funcs = &XAAGCFuncs; } diff --git a/hw/xnest/GC.c b/hw/xnest/GC.c index 407cc77f3..7968b4f6f 100644 --- a/hw/xnest/GC.c +++ b/hw/xnest/GC.c @@ -73,9 +73,6 @@ static GCOps xnestOps = { Bool xnestCreateGC(GCPtr pGC) { - pGC->clientClipType = CT_NONE; - pGC->clientClip = NULL; - pGC->funcs = &xnestFuncs; pGC->ops = &xnestOps; diff --git a/hw/xwin/wingc.c b/hw/xwin/wingc.c index 196b5b5dd..e351c502d 100644 --- a/hw/xwin/wingc.c +++ b/hw/xwin/wingc.c @@ -137,11 +137,6 @@ winCreateGCNativeGDI (GCPtr pGC) pGC->depth); #endif - pGC->clientClip = NULL; - pGC->clientClipType = CT_NONE; - pGC->freeCompClip = FALSE; - pGC->pCompositeClip = 0; - pGC->ops = (GCOps *) &winGCOps; pGC->funcs = (GCFuncs *) &winGCFuncs; diff --git a/miext/cw/cw.c b/miext/cw/cw.c index 58816c9a2..3da3bc3e1 100644 --- a/miext/cw/cw.c +++ b/miext/cw/cw.c @@ -325,7 +325,6 @@ cwCreateGC(GCPtr pGC) ScreenPtr pScreen = pGC->pScreen; Bool ret; - memset(pPriv, 0, sizeof(cwGCRec)); SCREEN_PROLOGUE(pScreen, CreateGC); if ( (ret = (*pScreen->CreateGC)(pGC)) ) diff --git a/miext/damage/damage.c b/miext/damage/damage.c index 2b7e5f229..21cbb78c9 100644 --- a/miext/damage/damage.c +++ b/miext/damage/damage.c @@ -446,7 +446,6 @@ damageCreateGC(GCPtr pGC) damageGCPriv(pGC); Bool ret; - pGC->pCompositeClip = 0; unwrap (pScrPriv, pScreen, CreateGC); if((ret = (*pScreen->CreateGC) (pGC))) { pGCPriv->ops = NULL; From 2051e0f371de892b2e598b30c18dae96b58d68de Mon Sep 17 00:00:00 2001 From: Jamey Sharp Date: Thu, 8 Jul 2010 02:38:13 -0700 Subject: [PATCH 057/125] dixfonts: Deobfuscate GC ops calls. Signed-off-by: Jamey Sharp Reviewed-by: Alex Deucher --- dix/dixfonts.c | 54 ++++++++++++++++++---------------------------- include/closestr.h | 24 --------------------- 2 files changed, 21 insertions(+), 57 deletions(-) diff --git a/dix/dixfonts.c b/dix/dixfonts.c index e22eabe3a..ccb462794 100644 --- a/dix/dixfonts.c +++ b/dix/dixfonts.c @@ -1170,6 +1170,7 @@ doPolyText(ClientPtr client, PTclosurePtr c) enum { NEVER_SLEPT, START_SLEEP, SLEEPING } client_state = NEVER_SLEPT; FontPathElementPtr fpe; GC *origGC = NULL; + int itemSize = c->reqType == X_PolyText8 ? 1 : 2; if (client->clientGone) { @@ -1255,10 +1256,6 @@ doPolyText(ClientPtr client, PTclosurePtr c) val.ptr = pFont; ChangeGC(NullClient, c->pGC, GCFont, &val); ValidateGC(c->pDraw, c->pGC); - if (c->reqType == X_PolyText8) - c->polyText = (PolyTextPtr) c->pGC->ops->PolyText8; - else - c->polyText = (PolyTextPtr) c->pGC->ops->PolyText16; } /* Undo the refcnt++ we performed when going to sleep */ @@ -1270,7 +1267,7 @@ doPolyText(ClientPtr client, PTclosurePtr c) else /* print a string */ { unsigned char *pNextElt; - pNextElt = c->pElt + TextEltHeader + (*c->pElt)*c->itemSize; + pNextElt = c->pElt + TextEltHeader + (*c->pElt) * itemSize; if ( pNextElt > c->endReq) { err = BadLength; @@ -1283,7 +1280,7 @@ doPolyText(ClientPtr client, PTclosurePtr c) } if (c->pDraw) { - lgerr = LoadGlyphs(client, c->pGC->font, *c->pElt, c->itemSize, + lgerr = LoadGlyphs(client, c->pGC->font, *c->pElt, itemSize, c->pElt + TextEltHeader); } else lgerr = Successful; @@ -1381,8 +1378,12 @@ doPolyText(ClientPtr client, PTclosurePtr c) if (c->pDraw) { c->xorg += *((INT8 *)(c->pElt + 1)); /* must be signed */ - c->xorg = (* c->polyText)(c->pDraw, c->pGC, c->xorg, c->yorg, - *c->pElt, c->pElt + TextEltHeader); + if (c->reqType == X_PolyText8) + c->xorg = (* c->pGC->ops->PolyText8)(c->pDraw, c->pGC, c->xorg, c->yorg, + *c->pElt, (char *) (c->pElt + TextEltHeader)); + else + c->xorg = (* c->pGC->ops->PolyText16)(c->pDraw, c->pGC, c->xorg, c->yorg, + *c->pElt, (unsigned short *) (c->pElt + TextEltHeader)); } c->pElt = pNextElt; } @@ -1442,16 +1443,7 @@ PolyText(ClientPtr client, DrawablePtr pDraw, GC *pGC, unsigned char *pElt, local_closure.pDraw = pDraw; local_closure.xorg = xorg; local_closure.yorg = yorg; - if ((local_closure.reqType = reqType) == X_PolyText8) - { - local_closure.polyText = (PolyTextPtr) pGC->ops->PolyText8; - local_closure.itemSize = 1; - } - else - { - local_closure.polyText = (PolyTextPtr) pGC->ops->PolyText16; - local_closure.itemSize = 2; - } + local_closure.reqType = reqType; local_closure.pGC = pGC; local_closure.did = did; local_closure.err = Success; @@ -1469,6 +1461,7 @@ doImageText(ClientPtr client, ITclosurePtr c) { int err = Success, lgerr; /* err is in X error, not font error, space */ FontPathElementPtr fpe; + int itemSize = c->reqType == X_ImageText8 ? 1 : 2; if (client->clientGone) { @@ -1493,7 +1486,7 @@ doImageText(ClientPtr client, ITclosurePtr c) } } - lgerr = LoadGlyphs(client, c->pGC->font, c->nChars, c->itemSize, c->data); + lgerr = LoadGlyphs(client, c->pGC->font, c->nChars, itemSize, c->data); if (lgerr == Suspended) { if (!ClientIsAsleep(client)) { @@ -1515,14 +1508,14 @@ doImageText(ClientPtr client, ITclosurePtr c) *new_closure = *c; c = new_closure; - data = malloc(c->nChars * c->itemSize); + data = malloc(c->nChars * itemSize); if (!data) { free(c); err = BadAlloc; goto bail; } - memmove(data, c->data, c->nChars * c->itemSize); + memmove(data, c->data, c->nChars * itemSize); c->data = data; pGC = GetScratchGC(c->pGC->depth, c->pGC->pScreen); @@ -1562,8 +1555,12 @@ doImageText(ClientPtr client, ITclosurePtr c) } if (c->pDraw) { - (* c->imageText)(c->pDraw, c->pGC, c->xorg, c->yorg, - c->nChars, c->data); + if (c->reqType == X_ImageText8) + (* c->pGC->ops->ImageText8)(c->pDraw, c->pGC, c->xorg, c->yorg, + c->nChars, (char *) c->data); + else + (* c->pGC->ops->ImageText16)(c->pDraw, c->pGC, c->xorg, c->yorg, + c->nChars, (unsigned short *) c->data); } bail: @@ -1601,16 +1598,7 @@ ImageText(ClientPtr client, DrawablePtr pDraw, GC *pGC, int nChars, local_closure.data = data; local_closure.xorg = xorg; local_closure.yorg = yorg; - if ((local_closure.reqType = reqType) == X_ImageText8) - { - local_closure.imageText = (ImageTextPtr) pGC->ops->ImageText8; - local_closure.itemSize = 1; - } - else - { - local_closure.imageText = (ImageTextPtr) pGC->ops->ImageText16; - local_closure.itemSize = 2; - } + local_closure.reqType = reqType; local_closure.did = did; (void) doImageText(client, &local_closure); diff --git a/include/closestr.h b/include/closestr.h index 7ca2613e7..ab18ef9e5 100644 --- a/include/closestr.h +++ b/include/closestr.h @@ -97,16 +97,6 @@ typedef struct _LFclosure { /* PolyText */ -typedef - int (* PolyTextPtr)( - DrawablePtr /* pDraw */, - GCPtr /* pGC */, - int /* x */, - int /* y */, - int /* count */, - void * /* chars or shorts */ - ); - typedef struct _PTclosure { ClientPtr client; DrawablePtr pDraw; @@ -117,24 +107,12 @@ typedef struct _PTclosure { int xorg; int yorg; CARD8 reqType; - PolyTextPtr polyText; - int itemSize; XID did; int err; } PTclosureRec; /* ImageText */ -typedef - void (* ImageTextPtr)( - DrawablePtr /* pDraw */, - GCPtr /* pGC */, - int /* x */, - int /* y */, - int /* count */, - void * /* chars or shorts */ - ); - typedef struct _ITclosure { ClientPtr client; DrawablePtr pDraw; @@ -144,8 +122,6 @@ typedef struct _ITclosure { int xorg; int yorg; CARD8 reqType; - ImageTextPtr imageText; - int itemSize; XID did; } ITclosureRec; #endif /* CLOSESTR_H */ From 34d6492436c0f4a81822769b24d8c7816d0226ad Mon Sep 17 00:00:00 2001 From: Jamey Sharp Date: Sat, 10 Jul 2010 06:55:58 -0700 Subject: [PATCH 058/125] xquartz: Delete compile-time-constant DRIGCRec.driOps field. The driOps field of this structure is never set to anything but &driGCOps, and this structure is not visible outside this source file. Just use the constant in the one place the field was used. Signed-off-by: Jamey Sharp Cc: Jeremy Huddleston Reviewed-by: Jeremy Huddleston --- hw/xquartz/xpr/driWrap.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/hw/xquartz/xpr/driWrap.c b/hw/xquartz/xpr/driWrap.c index 65843b83f..de5c4a2cf 100644 --- a/hw/xquartz/xpr/driWrap.c +++ b/hw/xquartz/xpr/driWrap.c @@ -41,7 +41,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. typedef struct { GCOps *originalOps; - GCOps *driOps; } DRIGCRec; typedef struct { @@ -86,9 +85,7 @@ DRIUnwrapGC(GCPtr pGC) { static void DRIWrapGC(GCPtr pGC) { - DRIGCRec *pGCPriv = DRIGetGCPriv(pGC); - - pGC->ops = pGCPriv->driOps; + pGC->ops = &driGCOps; } static void @@ -513,7 +510,6 @@ DRICreateGC(GCPtr pGC) { if(ret) { pGCPriv->originalOps = pGC->ops; pGC->ops = &driGCOps; - pGCPriv->driOps = &driGCOps; } wrap(pScreenPriv, pScreen, CreateGC, DRICreateGC); From 2e8069dd36c2f5caf868937405fc03328004a85d Mon Sep 17 00:00:00 2001 From: Jamey Sharp Date: Sun, 11 Jul 2010 20:35:43 -0700 Subject: [PATCH 059/125] xnest: Replace use of Colormap->devPriv with standard devPrivates. Signed-off-by: Jamey Sharp Reviewed-by: Tiago Vignatti --- hw/xnest/Color.c | 5 ++--- hw/xnest/Color.h | 3 ++- hw/xnest/Screen.c | 2 ++ 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/hw/xnest/Color.c b/hw/xnest/Color.c index 883b77cb2..0aae8e9c9 100644 --- a/hw/xnest/Color.c +++ b/hw/xnest/Color.c @@ -34,6 +34,8 @@ is" without express or implied warranty. #include "XNWindow.h" #include "Args.h" +DevPrivateKeyRec xnestColormapPrivateKeyRec; + static DevPrivateKeyRec cmapScrPrivateKeyRec; #define cmapScrPrivateKey (&cmapScrPrivateKeyRec) @@ -52,8 +54,6 @@ xnestCreateColormap(ColormapPtr pCmap) pVisual = pCmap->pVisual; ncolors = pVisual->ColormapEntries; - pCmap->devPriv = (pointer)malloc(sizeof(xnestPrivColormap)); - xnestColormapPriv(pCmap)->colormap = XCreateColormap(xnestDisplay, xnestDefaultWindows[pCmap->pScreen->myNum], @@ -130,7 +130,6 @@ void xnestDestroyColormap(ColormapPtr pCmap) { XFreeColormap(xnestDisplay, xnestColormap(pCmap)); - free(pCmap->devPriv); } #define SEARCH_PREDICATE \ diff --git a/hw/xnest/Color.h b/hw/xnest/Color.h index f00bde47f..d39c638f9 100644 --- a/hw/xnest/Color.h +++ b/hw/xnest/Color.h @@ -32,8 +32,9 @@ typedef struct { int index; } xnestInstalledColormapWindows; +extern DevPrivateKeyRec xnestColormapPrivateKeyRec; #define xnestColormapPriv(pCmap) \ - ((xnestPrivColormap *)((pCmap)->devPriv)) + ((xnestPrivColormap *) dixLookupPrivate(&(pCmap)->devPrivates, &xnestColormapPrivateKeyRec)) #define xnestColormap(pCmap) (xnestColormapPriv(pCmap)->colormap) diff --git a/hw/xnest/Screen.c b/hw/xnest/Screen.c index 957fe4cdb..0a6cab687 100644 --- a/hw/xnest/Screen.c +++ b/hw/xnest/Screen.c @@ -151,6 +151,8 @@ xnestOpenScreen(int index, ScreenPtr pScreen, int argc, char *argv[]) return FALSE; if (!dixRegisterPrivateKey(&xnestPixmapPrivateKeyRec, PRIVATE_PIXMAP, sizeof (xnestPrivPixmap))) return FALSE; + if (!dixRegisterPrivateKey(&xnestColormapPrivateKeyRec, PRIVATE_COLORMAP, sizeof (xnestPrivColormap))) + return FALSE; if (!dixRegisterPrivateKey(&xnestCursorScreenKeyRec, PRIVATE_SCREEN, 0)) return FALSE; From 7a63b2db636f01694cb54726bbb04287718e286a Mon Sep 17 00:00:00 2001 From: Jamey Sharp Date: Sun, 11 Jul 2010 20:36:34 -0700 Subject: [PATCH 060/125] Delete Colormap->devPriv. It isn't used any more. Signed-off-by: Jamey Sharp Reviewed-by: Tiago Vignatti --- include/colormapst.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/include/colormapst.h b/include/colormapst.h index f1fc8ebef..0ba5bd0b5 100644 --- a/include/colormapst.h +++ b/include/colormapst.h @@ -126,9 +126,7 @@ typedef struct _ColormapRec Entry *red; Entry *green; Entry *blue; - pointer devPriv; - PrivateRec *devPrivates; /* dynamic devPrivates added after devPriv - already existed - must keep devPriv */ + PrivateRec *devPrivates; } ColormapRec; #endif /* COLORMAP_H */ From af2a94e12fe4e426dfca461a0d14526193c01cef Mon Sep 17 00:00:00 2001 From: Jamey Sharp Date: Tue, 13 Jul 2010 13:33:59 -0700 Subject: [PATCH 061/125] VGA arbiter: No need for arbitration around CreateGC. None of XAA, EXA, or UXA do any hardware access during CreateGC, so they don't need VGA arbitration. I haven't found any open source drivers that hook CreateGC, so they're safe. I'd be surprised if any driver directly hooks CreateGC and does hardware access from it and needs VGA arbitration. Signed-off-by: Jamey Sharp Signed-off-by: Tiago Vignatti --- hw/xfree86/common/xf86VGAarbiter.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/hw/xfree86/common/xf86VGAarbiter.c b/hw/xfree86/common/xf86VGAarbiter.c index becf4a9c7..fa313f18d 100644 --- a/hw/xfree86/common/xf86VGAarbiter.c +++ b/hw/xfree86/common/xf86VGAarbiter.c @@ -573,9 +573,7 @@ VGAarbiterCreateGC(GCPtr pGC) Bool ret; SCREEN_PROLOG(CreateGC); - VGAGet(pScreen); ret = (*pScreen->CreateGC)(pGC); - VGAPut(); GC_WRAP(pGC); SCREEN_EPILOG(CreateGC,VGAarbiterCreateGC); From 0f48e362c5baee2bc281a4b88cfb68de24172d15 Mon Sep 17 00:00:00 2001 From: Jamey Sharp Date: Wed, 19 May 2010 14:03:19 -0700 Subject: [PATCH 062/125] glxdriswrast: Use CreateGC, not CreateScratchGC. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since this code was using CreateScratchGC and not GetScratchGC, FreeScratchGC would always call FreeGC, so just call it directly. As long as the drawable provided to CreateGC has the same screen and depth as were passed to CreateScratchGC, these functions are basically identical. There are two differences: - CreateGC gives you a non-null stipple. You probably don't care. - CreateGC passes the gcid and client to XACE. There are several internal GCs allocated in the server, and they all pass 0 and serverClient. I expect XACE will never reject that combination. The callers of createDrawable all verify that pDraw has the same screen that driScreen does. In short, this should have no behavioral change. Signed-off-by: Jamey Sharp Cc: Kristian Høgsberg Reviewed-by: Keith Packard --- glx/glxdriswrast.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/glx/glxdriswrast.c b/glx/glxdriswrast.c index 54f4440a3..dc12f5705 100644 --- a/glx/glxdriswrast.c +++ b/glx/glxdriswrast.c @@ -99,8 +99,8 @@ __glXDRIdrawableDestroy(__GLXdrawable *drawable) (*core->destroyDrawable)(private->driDrawable); - FreeScratchGC(private->gc); - FreeScratchGC(private->swapgc); + FreeGC(private->gc, (GContext)0); + FreeGC(private->swapgc, (GContext)0); __glXDrawableRelease(drawable); @@ -301,13 +301,12 @@ __glXDRIscreenCreateDrawable(ClientPtr client, XID glxDrawId, __GLXconfig *glxConfig) { - ChangeGCVal gcvals[2]; + XID gcvals[2]; + int status; __GLXDRIscreen *driScreen = (__GLXDRIscreen *) screen; __GLXDRIconfig *config = (__GLXDRIconfig *) glxConfig; __GLXDRIdrawable *private; - ScreenPtr pScreen = driScreen->base.pScreen; - private = calloc(1, sizeof *private); if (private == NULL) return NULL; @@ -323,13 +322,10 @@ __glXDRIscreenCreateDrawable(ClientPtr client, private->base.swapBuffers = __glXDRIdrawableSwapBuffers; private->base.copySubBuffer = __glXDRIdrawableCopySubBuffer; - private->gc = CreateScratchGC(pScreen, pDraw->depth); - private->swapgc = CreateScratchGC(pScreen, pDraw->depth); - - gcvals[0].val = GXcopy; - ChangeGC(NullClient, private->gc, GCFunction, gcvals); - gcvals[1].val = FALSE; - ChangeGC(NullClient, private->swapgc, GCFunction | GCGraphicsExposures, gcvals); + gcvals[0] = GXcopy; + private->gc = CreateGC(pDraw, GCFunction, gcvals, &status, (XID)0, serverClient); + gcvals[1] = FALSE; + private->swapgc = CreateGC(pDraw, GCFunction | GCGraphicsExposures, gcvals, &status, (XID)0, serverClient); private->driDrawable = (*driScreen->swrast->createNewDrawable)(driScreen->driScreen, From 3fd963de27f3c4452c320e617ad33b91b0967737 Mon Sep 17 00:00:00 2001 From: Jamey Sharp Date: Wed, 19 May 2010 14:16:20 -0700 Subject: [PATCH 063/125] Un-export CreateScratchGC now that nothing external uses it. The server and drivers sometimes use GetScratchGC, but never CreateScratchGC. Signed-off-by: Jamey Sharp Reviewed-by: Keith Packard --- dix/gc.c | 2 +- include/gc.h | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/dix/gc.c b/dix/gc.c index 83bb52474..fc251dd01 100644 --- a/dix/gc.c +++ b/dix/gc.c @@ -799,7 +799,7 @@ is what fills the default tile. (maybe this comment should go with CreateGC() or ChangeGC().) */ -GCPtr +static GCPtr CreateScratchGC(ScreenPtr pScreen, unsigned depth) { GCPtr pGC; diff --git a/include/gc.h b/include/gc.h index 63eecbd66..2079cfae0 100644 --- a/include/gc.h +++ b/include/gc.h @@ -122,10 +122,6 @@ extern _X_EXPORT int FreeGC( pointer /*pGC*/, XID /*gid*/); -extern _X_EXPORT GCPtr CreateScratchGC( - ScreenPtr /*pScreen*/, - unsigned /*depth*/); - extern _X_EXPORT void FreeGCperDepth( int /*screenNum*/); From ccdf15689050a0f988721c91fab75861ec4d339c Mon Sep 17 00:00:00 2001 From: Jamey Sharp Date: Mon, 31 May 2010 16:01:18 -0700 Subject: [PATCH 064/125] miPolyGlyphBlt: Delete redundant ValidateGC. The caller is required to have validated the GC for the drawable before calling any ops, including PolyGlyphBlt. Signed-off-by: Jamey Sharp Reviewed-by: Keith Packard --- mi/miglblt.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/mi/miglblt.c b/mi/miglblt.c index 13efb0ced..9edb500c4 100644 --- a/mi/miglblt.c +++ b/mi/miglblt.c @@ -182,8 +182,6 @@ miPolyGlyphBlt( 0, 0, gWidth, gHeight, 0, XYBitmap, (char *)pb); - if ((pGC->serialNumber) != (pDrawable->serialNumber)) - ValidateGC(pDrawable, pGC); (*pGC->ops->PushPixels)(pGC, pPixmap, pDrawable, gWidth, gHeight, x + pci->metrics.leftSideBearing, From 35ce892a705f9377a36f19414e5a25dcbe44a354 Mon Sep 17 00:00:00 2001 From: Jamey Sharp Date: Wed, 14 Jul 2010 11:19:41 -0700 Subject: [PATCH 065/125] rootless: ROOTLESS_TRACK_DAMAGE is never set, so unifdef it. Signed-off-by: Jamey Sharp Cc: Jeremy Huddleston Cc: Jon TURNEY Reviewed-by: Jeremy Huddleston --- hw/xwin/winscrinit.c | 2 -- miext/rootless/README.txt | 19 ++---------------- miext/rootless/rootless.h | 16 +++------------ miext/rootless/rootlessCommon.c | 35 --------------------------------- miext/rootless/rootlessConfig.h | 2 -- miext/rootless/rootlessWindow.c | 18 ----------------- 6 files changed, 5 insertions(+), 87 deletions(-) diff --git a/hw/xwin/winscrinit.c b/hw/xwin/winscrinit.c index 7add0e3f4..d7324100a 100644 --- a/hw/xwin/winscrinit.c +++ b/hw/xwin/winscrinit.c @@ -54,9 +54,7 @@ winMWExtWMProcs = { winMWExtWMStartDrawing, winMWExtWMStopDrawing, winMWExtWMUpdateRegion, -#ifndef ROOTLESS_TRACK_DAMAGE winMWExtWMDamageRects, -#endif winMWExtWMRootlessSwitchWindow, NULL,//winMWExtWMDoReorderWindow, NULL,//winMWExtWMHideWindow, diff --git a/miext/rootless/README.txt b/miext/rootless/README.txt index 2c3fbb05a..8a6df74e6 100644 --- a/miext/rootless/README.txt +++ b/miext/rootless/README.txt @@ -105,18 +105,6 @@ rootlessConfig.h: during resizing and rely on the frame contents being preserved accordingly. - o ROOTLESS_TRACK_DAMAGE: The generic rootless layer draws to the - frames' backing buffers and periodically flushes the modified - regions to the underlying window server. If this option is true, - the generic rootless layer will track these damaged regions. - Currently it uses the miRegion code and will not simplify damaged - regions even when updating a bounding region would be more - efficient. Some window systems provide a more efficient way to - track damaged regions. If this option is false, the rootless - implementation function DamageRects() is called whenever a - backing buffer is modified and the rootless implementation is - expected to track the damaged regions itself. - The following runtime options are defined in rootless.h: o rootlessGlobalOffsetX, rootlessGlobalOffsetY: These are only @@ -287,8 +275,7 @@ typedef void (*RootlessStartDrawingProc) * is started again. * * wid Frame id - * flush Flush drawing updates for this frame to the screen. This - * will always be FALSE if ROOTLESS_TRACK_DAMAGE is set. + * flush Flush drawing updates for this frame to the screen. */ typedef void (*RootlessStopDrawingProc) (RootlessFrameID wid, Bool flush); @@ -299,15 +286,13 @@ typedef void (*RootlessStopDrawingProc) * * wid Frame id * pDamage Region containing all the changed pixels in frame-local - * coordinates. This is clipped to the window's clip. This - * will be NULL if ROOTLESS_TRACK_DAMAGE is not set. + * coordinates. This is clipped to the window's clip. */ typedef void (*RootlessUpdateRegionProc) (RootlessFrameID wid, RegionPtr pDamage); /* * Mark damaged rectangles as requiring redisplay to screen. - * This will only be called if ROOTLESS_TRACK_DAMAGE is not set. * * wid Frame id * nrects Number of damaged rectangles diff --git a/miext/rootless/rootless.h b/miext/rootless/rootless.h index dc4213f1e..f400695f6 100644 --- a/miext/rootless/rootless.h +++ b/miext/rootless/rootless.h @@ -68,10 +68,6 @@ typedef struct _RootlessWindowRec { PixmapPtr pixmap; -#ifdef ROOTLESS_TRACK_DAMAGE - RegionRec damage; -#endif - unsigned int is_drawing :1; // Currently drawing? unsigned int is_reorder_pending :1; unsigned int is_offscreen :1; @@ -227,8 +223,7 @@ typedef void (*RootlessStartDrawingProc) * is started again. * * wid Frame id - * flush Flush drawing updates for this frame to the screen. This - * will always be FALSE if ROOTLESS_TRACK_DAMAGE is set. + * flush Flush drawing updates for this frame to the screen. */ typedef void (*RootlessStopDrawingProc) (RootlessFrameID wid, Bool flush); @@ -239,15 +234,13 @@ typedef void (*RootlessStopDrawingProc) * * wid Frame id * pDamage Region containing all the changed pixels in frame-lcoal - * coordinates. This is clipped to the window's clip. This - * will be NULL if ROOTLESS_TRACK_DAMAGE is not set. + * coordinates. This is clipped to the window's clip. */ typedef void (*RootlessUpdateRegionProc) (RootlessFrameID wid, RegionPtr pDamage); /* * Mark damaged rectangles as requiring redisplay to screen. - * This will only be called if ROOTLESS_TRACK_DAMAGE is not set. * * wid Frame id * nrects Number of damaged rectangles @@ -374,9 +367,7 @@ typedef struct _RootlessFrameProcs { RootlessStartDrawingProc StartDrawing; RootlessStopDrawingProc StopDrawing; RootlessUpdateRegionProc UpdateRegion; -#ifndef ROOTLESS_TRACK_DAMAGE RootlessDamageRectsProc DamageRects; -#endif /* Optional frame functions */ RootlessSwitchWindowProc SwitchWindow; @@ -426,8 +417,7 @@ void RootlessStartDrawing(WindowPtr pWindow); /* * Finish drawing to a window's backing buffer. * - * flush If true and ROOTLESS_TRACK_DAMAGE is set, damaged areas - * are flushed to the screen. + * flush If true, damaged areas are flushed to the screen. */ void RootlessStopDrawing(WindowPtr pWindow, Bool flush); diff --git a/miext/rootless/rootlessCommon.c b/miext/rootless/rootlessCommon.c index f91cfb432..b0476d711 100644 --- a/miext/rootless/rootlessCommon.c +++ b/miext/rootless/rootlessCommon.c @@ -305,16 +305,11 @@ RootlessDamageRegion(WindowPtr pWindow, RegionPtr pRegion) if (in == rgnIN) { /* clip totally contains pRegion */ -#ifdef ROOTLESS_TRACK_DAMAGE - RegionUnion(&winRec->damage, - &winRec->damage, (pRegion)); -#else SCREENREC(pWindow->drawable.pScreen)->imp-> DamageRects(winRec->wid, RegionNumRects(pRegion), RegionRects(pRegion), -winRec->x, -winRec->y); -#endif RootlessQueueRedisplay(pTop->drawable.pScreen); goto out; @@ -331,16 +326,11 @@ RootlessDamageRegion(WindowPtr pWindow, RegionPtr pRegion) RegionNull(&clipped); RegionIntersect(&clipped, &pWindow->borderClip, pRegion); -#ifdef ROOTLESS_TRACK_DAMAGE - RegionUnion(&winRec->damage, - &winRec->damage, (pRegion)); -#else SCREENREC(pWindow->drawable.pScreen)->imp-> DamageRects(winRec->wid, RegionNumRects(&clipped), RegionRects(&clipped), -winRec->x, -winRec->y); -#endif RegionUninit(&clipped); @@ -415,32 +405,7 @@ RootlessDamageRect(WindowPtr pWindow, int x, int y, int w, int h) void RootlessRedisplay(WindowPtr pWindow) { -#ifdef ROOTLESS_TRACK_DAMAGE - - RootlessWindowRec *winRec = WINREC(pWindow); - ScreenPtr pScreen = pWindow->drawable.pScreen; - - RootlessStopDrawing(pWindow, FALSE); - - if (RegionNotEmpty(&winRec->damage)) { - RL_DEBUG_MSG("Redisplay Win 0x%x, %i x %i @ (%i, %i)\n", - pWindow, winRec->width, winRec->height, - winRec->x, winRec->y); - - // move region to window local coords - RegionTranslate(&winRec->damage, - -winRec->x, -winRec->y); - - SCREENREC(pScreen)->imp->UpdateRegion(winRec->wid, &winRec->damage); - - RegionEmpty(&winRec->damage); - } - -#else /* !ROOTLESS_TRACK_DAMAGE */ - RootlessStopDrawing(pWindow, TRUE); - -#endif } diff --git a/miext/rootless/rootlessConfig.h b/miext/rootless/rootlessConfig.h index 50bac3f51..9082ac2b8 100644 --- a/miext/rootless/rootlessConfig.h +++ b/miext/rootless/rootlessConfig.h @@ -40,7 +40,6 @@ # define ROOTLESS_PROTECT_ALPHA TRUE # define ROOTLESS_REDISPLAY_DELAY 10 # define ROOTLESS_RESIZE_GRAVITY TRUE -# undef ROOTLESS_TRACK_DAMAGE /*# define ROOTLESSDEBUG*/ /* Bit mask for alpha channel with a particular number of bits per @@ -56,7 +55,6 @@ # define ROOTLESS_PROTECT_ALPHA NO # define ROOTLESS_REDISPLAY_DELAY 10 # undef ROOTLESS_RESIZE_GRAVITY -# undef ROOTLESS_TRACK_DAMAGE /*# define ROOTLESSDEBUG*/ # define RootlessAlphaMask(bpp) ((bpp) == 32 ? 0xFF000000 : 0) diff --git a/miext/rootless/rootlessWindow.c b/miext/rootless/rootlessWindow.c index c1c6bdbfd..410f7294d 100644 --- a/miext/rootless/rootlessWindow.c +++ b/miext/rootless/rootlessWindow.c @@ -180,11 +180,6 @@ static void RootlessDestroyFrame(WindowPtr pWin, RootlessWindowPtr winRec) { SCREENREC(pWin->drawable.pScreen)->imp->DestroyFrame(winRec->wid); - -#ifdef ROOTLESS_TRACK_DAMAGE - RegionUninit(&winRec->damage); -#endif - free(winRec); SETWINREC(pWin, NULL); } @@ -341,15 +336,6 @@ RootlessPositionWindow(WindowPtr pWin, int x, int y) winRec->pixmap->devPrivate.ptr = winRec->pixelData; SetPixmapBaseToScreen(winRec->pixmap, x - bw, y - bw); - -#ifdef ROOTLESS_TRACK_DAMAGE - // Move damaged region to correspond to new window position - if (RegionNotEmpty(&winRec->damage)) { - RegionTranslate(&winRec->damage, - x - bw - winRec->x, - y - bw - winRec->y); - } -#endif } } @@ -381,10 +367,6 @@ RootlessInitializeFrame(WindowPtr pWin, RootlessWindowRec *winRec) winRec->width = d->width + 2*bw; winRec->height = d->height + 2*bw; winRec->borderWidth = bw; - -#ifdef ROOTLESS_TRACK_DAMAGE - RegionNull(&winRec->damage); -#endif } /* From 58d1ec0fe84412c66f1ea1de15e3901c0b120164 Mon Sep 17 00:00:00 2001 From: Jamey Sharp Date: Wed, 14 Jul 2010 11:30:17 -0700 Subject: [PATCH 066/125] rootless: ROOTLESS_GLOBAL_COORDS is always set, so unifdef it. Signed-off-by: Jamey Sharp Cc: Jeremy Huddleston Cc: Jon TURNEY Reviewed-by: Jeremy Huddleston --- miext/rootless/README.txt | 15 ++------------- miext/rootless/rootless.h | 5 +---- miext/rootless/rootlessCommon.c | 2 -- miext/rootless/rootlessConfig.h | 2 -- miext/rootless/rootlessWindow.c | 5 ----- 5 files changed, 3 insertions(+), 26 deletions(-) diff --git a/miext/rootless/README.txt b/miext/rootless/README.txt index 8a6df74e6..7ec5c41b6 100644 --- a/miext/rootless/README.txt +++ b/miext/rootless/README.txt @@ -76,15 +76,6 @@ rootlessConfig.h to specify compile time options for its platform. The following compile-time options are defined in rootlessConfig.h: - o ROOTLESS_GLOBAL_COORDS: This option controls the way that frame - coordinates are passed to the rootless implementation. If false, - the coordinates are passed per screen relative to the origin of - the screen the frame is currently on. Some implementations may - prefer to work in a single global coordinate space that spans all - screens. If this option is true, the coordinates are passed after - adding the coordinates of the screen origin and an overall offset of - (rootlessGlobalOffsetX, rootlessGlobalOffsetY). - o ROOTLESS_PROTECT_ALPHA: By default for a color bit depth of 24 and 32 bits per pixel, fb will overwrite the "unused" 8 bits to optimize drawing speed. If this is true, the alpha channel of frames is @@ -107,8 +98,7 @@ rootlessConfig.h: The following runtime options are defined in rootless.h: - o rootlessGlobalOffsetX, rootlessGlobalOffsetY: These are only - used if ROOTLESS_GLOBAL_COORDS is true. They specify the global + o rootlessGlobalOffsetX, rootlessGlobalOffsetY: These specify the global offset that is applied to all screens when converting from screen-local to global coordinates. @@ -182,8 +172,7 @@ implementation to indicate the frame to operate on. * initialized before calling except for pFrame->wid, which * is set by this function. * pScreen Screen on which to place the new frame - * newX, newY Position of the frame. These will be identical to pFrame-x, - * pFrame->y unless ROOTLESS_GLOBAL_COORDS is set. + * newX, newY Position of the frame. * pNewShape Shape for the frame (in frame-local coordinates). NULL for * unshaped frames. */ diff --git a/miext/rootless/rootless.h b/miext/rootless/rootless.h index f400695f6..b2d8d0f07 100644 --- a/miext/rootless/rootless.h +++ b/miext/rootless/rootless.h @@ -76,10 +76,8 @@ typedef struct _RootlessWindowRec { /* Offset for screen-local to global coordinate transforms */ -#ifdef ROOTLESS_GLOBAL_COORDS extern int rootlessGlobalOffsetX; extern int rootlessGlobalOffsetY; -#endif /* The minimum number of bytes or pixels for which to use the implementation's accelerated functions. */ @@ -130,8 +128,7 @@ enum rl_gravity_enum { * initialized before calling except for pFrame->wid, which * is set by this function. * pScreen Screen on which to place the new frame - * newX, newY Position of the frame. These will be identical to pFrame-x, - * pFrame->y unless ROOTLESS_GLOBAL_COORDS is set. + * newX, newY Position of the frame. * pNewShape Shape for the frame (in frame-local coordinates). NULL for * unshaped frames. */ diff --git a/miext/rootless/rootlessCommon.c b/miext/rootless/rootlessCommon.c index b0476d711..a9cd72a41 100644 --- a/miext/rootless/rootlessCommon.c +++ b/miext/rootless/rootlessCommon.c @@ -43,10 +43,8 @@ unsigned int rootless_CopyBytes_threshold = 0; unsigned int rootless_FillBytes_threshold = 0; unsigned int rootless_CompositePixels_threshold = 0; unsigned int rootless_CopyWindow_threshold = 0; -#ifdef ROOTLESS_GLOBAL_COORDS int rootlessGlobalOffsetX = 0; int rootlessGlobalOffsetY = 0; -#endif RegionRec rootlessHugeRoot = {{-32767, -32767, 32767, 32767}, NULL}; diff --git a/miext/rootless/rootlessConfig.h b/miext/rootless/rootlessConfig.h index 9082ac2b8..a6c0d25ea 100644 --- a/miext/rootless/rootlessConfig.h +++ b/miext/rootless/rootlessConfig.h @@ -36,7 +36,6 @@ #ifdef __APPLE__ -# define ROOTLESS_GLOBAL_COORDS TRUE # define ROOTLESS_PROTECT_ALPHA TRUE # define ROOTLESS_REDISPLAY_DELAY 10 # define ROOTLESS_RESIZE_GRAVITY TRUE @@ -51,7 +50,6 @@ #if defined(__CYGWIN__) || defined(WIN32) -# define ROOTLESS_GLOBAL_COORDS TRUE # define ROOTLESS_PROTECT_ALPHA NO # define ROOTLESS_REDISPLAY_DELAY 10 # undef ROOTLESS_RESIZE_GRAVITY diff --git a/miext/rootless/rootlessWindow.c b/miext/rootless/rootlessWindow.c index 410f7294d..42ab8dab2 100644 --- a/miext/rootless/rootlessWindow.c +++ b/miext/rootless/rootlessWindow.c @@ -51,15 +51,10 @@ extern Bool no_configure_window; #include "rootlessCommon.h" #include "rootlessWindow.h" -#ifdef ROOTLESS_GLOBAL_COORDS #define SCREEN_TO_GLOBAL_X \ (pScreen->x + rootlessGlobalOffsetX) #define SCREEN_TO_GLOBAL_Y \ (pScreen->y + rootlessGlobalOffsetY) -#else -#define SCREEN_TO_GLOBAL_X 0 -#define SCREEN_TO_GLOBAL_Y 0 -#endif #define DEFINE_ATOM_HELPER(func,atom_name) \ static Atom func (void) { \ From 20798536326f94ac9c97b4ec7a51329f7c912991 Mon Sep 17 00:00:00 2001 From: Jamey Sharp Date: Wed, 14 Jul 2010 13:14:28 -0700 Subject: [PATCH 067/125] rootless: Delete dead remnants of rootless acceleration. Jeremy deleted rootlessAccelInit's implementation in 2008 in commit 587c010a1cd733fded4d49dc339df0634bda8be6. Delete its prototype and the remaining commented-out call to it. It still makes sense for the rootless GC ops to relax the planemask, but that's independent of the size of the operation, so quit checking the thresholds there. FillBytes and CompositePixels are not called anywhere, so delete everything related to both. Signed-off-by: Jamey Sharp Cc: Jeremy Huddleston Cc: Jon TURNEY Reviewed-by: Jeremy Huddleston --- hw/xquartz/xpr/xprFrame.c | 4 -- hw/xquartz/xpr/xprScreen.c | 6 --- hw/xwin/win.h | 10 ----- hw/xwin/winscrinit.c | 4 -- hw/xwin/winwin32rootless.c | 22 ----------- miext/rootless/README.txt | 41 +------------------- miext/rootless/rootless.h | 69 --------------------------------- miext/rootless/rootlessCommon.c | 2 - miext/rootless/rootlessGC.c | 57 +++++---------------------- 9 files changed, 11 insertions(+), 204 deletions(-) diff --git a/hw/xquartz/xpr/xprFrame.c b/hw/xquartz/xpr/xprFrame.c index 42f06efee..c78c5bd31 100644 --- a/hw/xquartz/xpr/xprFrame.c +++ b/hw/xquartz/xpr/xprFrame.c @@ -463,8 +463,6 @@ static RootlessFrameProcsRec xprRootlessProcs = { xprHideWindow, xprUpdateColormap, xp_copy_bytes, - xp_fill_bytes, - xp_composite_pixels, xprCopyWindow }; @@ -480,8 +478,6 @@ xprInit(ScreenPtr pScreen) TA_SERVER(); rootless_CopyBytes_threshold = xp_copy_bytes_threshold; - rootless_FillBytes_threshold = xp_fill_bytes_threshold; - rootless_CompositePixels_threshold = xp_composite_area_threshold; rootless_CopyWindow_threshold = xp_scroll_area_threshold; return TRUE; diff --git a/hw/xquartz/xpr/xprScreen.c b/hw/xquartz/xpr/xprScreen.c index 87e97d4e2..c03a82d03 100644 --- a/hw/xquartz/xpr/xprScreen.c +++ b/hw/xquartz/xpr/xprScreen.c @@ -367,12 +367,6 @@ xprAddScreen(int index, ScreenPtr pScreen) static Bool xprSetupScreen(int index, ScreenPtr pScreen) { - // Initialize accelerated rootless drawing - // Note that this must be done before DamageSetup(). - - // These are crashing ugly... better to be stable and not crash for now. - //RootlessAccelInit(pScreen); - #ifdef DAMAGE // The Damage extension needs to wrap underneath the // generic rootless layer, so do it now. diff --git a/hw/xwin/win.h b/hw/xwin/win.h index 8c4b67f17..1b1358cda 100644 --- a/hw/xwin/win.h +++ b/hw/xwin/win.h @@ -1376,16 +1376,6 @@ winMWExtWMCopyBytes (unsigned int width, unsigned int height, const void *src, unsigned int srcRowBytes, void *dst, unsigned int dstRowBytes); -void -winMWExtWMFillBytes (unsigned int width, unsigned int height, unsigned int value, - void *dst, unsigned int dstRowBytes); - -int -winMWExtWMCompositePixels (unsigned int width, unsigned int height, unsigned int function, - void *src[2], unsigned int srcRowBytes[2], - void *mask, unsigned int maskRowBytes, - void *dst[2], unsigned int dstRowBytes[2]); - void winMWExtWMCopyWindow (RootlessFrameID wid, int dstNrects, const BoxRec *dstRects, int dx, int dy); diff --git a/hw/xwin/winscrinit.c b/hw/xwin/winscrinit.c index d7324100a..cf65881fe 100644 --- a/hw/xwin/winscrinit.c +++ b/hw/xwin/winscrinit.c @@ -61,8 +61,6 @@ winMWExtWMProcs = { NULL,//winMWExtWMUpdateColorMap, NULL,//winMWExtWMCopyBytes, - NULL,//winMWExtWMFillBytes, - NULL,//winMWExtWMCompositePixels, winMWExtWMCopyWindow }; #endif @@ -463,8 +461,6 @@ winFinishScreenInitFB (int index, winDebug ("winScreenInit - MultiWindowExtWM - RootlessInit returned\n"); rootless_CopyBytes_threshold = 0; - rootless_FillBytes_threshold = 0; - rootless_CompositePixels_threshold = 0; /* FIXME: How many? Profiling needed? */ rootless_CopyWindow_threshold = 1; diff --git a/hw/xwin/winwin32rootless.c b/hw/xwin/winwin32rootless.c index 9749861fd..fbe419132 100755 --- a/hw/xwin/winwin32rootless.c +++ b/hw/xwin/winwin32rootless.c @@ -1006,28 +1006,6 @@ winMWExtWMCopyBytes (unsigned int width, unsigned int height, #endif } -void -winMWExtWMFillBytes (unsigned int width, unsigned int height, unsigned int value, - void *dst, unsigned int dstRowBytes) -{ -#if CYGMULTIWINDOW_DEBUG - winDebug ("winMWExtWMFillBytes - Not implemented\n"); -#endif -} - -int -winMWExtWMCompositePixels (unsigned int width, unsigned int height, unsigned int function, - void *src[2], unsigned int srcRowBytes[2], - void *mask, unsigned int maskRowBytes, - void *dst[2], unsigned int dstRowBytes[2]) -{ -#if CYGMULTIWINDOW_DEBUG - winDebug ("winMWExtWMCompositePixels - Not implemented\n"); -#endif - return 0; -} - - void winMWExtWMCopyWindow (RootlessFrameID wid, int nDstRects, const BoxRec *pDstRects, int nDx, int nDy) diff --git a/miext/rootless/README.txt b/miext/rootless/README.txt index 7ec5c41b6..754715d33 100644 --- a/miext/rootless/README.txt +++ b/miext/rootless/README.txt @@ -102,8 +102,7 @@ rootlessConfig.h: offset that is applied to all screens when converting from screen-local to global coordinates. - o rootless_CopyBytes_threshold, rootless_FillBytes_threshold, - rootless_CompositePixels_threshold, rootless_CopyWindow_threshold: + o rootless_CopyBytes_threshold, rootless_CopyWindow_threshold: The minimum number of bytes or pixels for which to use the rootless implementation's respective acceleration function. The rootless acceleration functions are all optional so these will only be used @@ -321,44 +320,6 @@ typedef void (*RootlessCopyBytesProc) const void *src, unsigned int srcRowBytes, void *dst, unsigned int dstRowBytes); -/* - * Fill memory with 32-bit pattern. (Optional) - * - * width Bytes to fill per row - * height Number of rows - * value 32-bit pattern to fill with - * dst Destination data - * dstRowBytes Width of destination in bytes - */ -typedef void (*RootlessFillBytesProc) - (unsigned int width, unsigned int height, unsigned int value, - void *dst, unsigned int dstRowBytes); - -/* - * Composite pixels from source and mask to destination. (Optional) - * - * width, height Size of area to composite to in pizels - * function Composite function built with RL_COMPOSITE_FUNCTION - * src Source data - * srcRowBytes Width of source in bytes (Passing NULL means source - * is a single pixel. - * mask Mask data - * maskRowBytes Width of mask in bytes - * dst Destination data - * dstRowBytes Width of destination in bytes - * - * For src and dst, the first element of the array is the color data. If - * the second element is non-null it implies there is alpha data (which - * may be meshed or planar). Data without alpha is assumed to be opaque. - * - * An X11 error code is returned. - */ -typedef int (*RootlessCompositePixelsProc) - (unsigned int width, unsigned int height, unsigned int function, - void *src[2], unsigned int srcRowBytes[2], - void *mask, unsigned int maskRowBytes, - void *dst[2], unsigned int dstRowBytes[2]); - /* * Copy area in frame to another part of frame. (Optional) * diff --git a/miext/rootless/rootless.h b/miext/rootless/rootless.h index b2d8d0f07..3d4a1b077 100644 --- a/miext/rootless/rootless.h +++ b/miext/rootless/rootless.h @@ -82,30 +82,8 @@ extern int rootlessGlobalOffsetY; /* The minimum number of bytes or pixels for which to use the implementation's accelerated functions. */ extern unsigned int rootless_CopyBytes_threshold; -extern unsigned int rootless_FillBytes_threshold; -extern unsigned int rootless_CompositePixels_threshold; extern unsigned int rootless_CopyWindow_threshold; -/* Operations used by CompositePixels */ -enum rl_composite_op_enum { - RL_COMPOSITE_SRC = 0, - RL_COMPOSITE_OVER, -}; - -/* Data formats for depth field and composite functions */ -enum rl_depth_enum { - RL_DEPTH_NIL = 0, /* null source when compositing */ - RL_DEPTH_ARGB8888, - RL_DEPTH_RGB555, - RL_DEPTH_A8, /* for masks when compositing */ - RL_DEPTH_INDEX8, -}; - -/* Macro to form the composite function for CompositePixels */ -#define RL_COMPOSITE_FUNCTION(op, src_depth, mask_depth, dest_depth) \ - (((op) << 24) | ((src_depth) << 16) \ - | ((mask_depth) << 8) | ((dest_depth) << 0)) - /* Gravity for window contents during resizing */ enum rl_gravity_enum { RL_GRAVITY_NONE = 0, /* no gravity, fill everything */ @@ -291,44 +269,6 @@ typedef void (*RootlessCopyBytesProc) const void *src, unsigned int srcRowBytes, void *dst, unsigned int dstRowBytes); -/* - * Fill memory with 32-bit pattern. (Optional) - * - * width Bytes to fill per row - * height Number of rows - * value 32-bit pattern to fill with - * dst Destination data - * dstRowBytes Width of destination in bytes - */ -typedef void (*RootlessFillBytesProc) - (unsigned int width, unsigned int height, unsigned int value, - void *dst, unsigned int dstRowBytes); - -/* - * Composite pixels from source and mask to destination. (Optional) - * - * width, height Size of area to composite to in pizels - * function Composite function built with RL_COMPOSITE_FUNCTION - * src Source data - * srcRowBytes Width of source in bytes (Passing NULL means source - * is a single pixel. - * mask Mask data - * maskRowBytes Width of mask in bytes - * dst Destination data - * dstRowBytes Width of destination in bytes - * - * For src and dst, the first element of the array is the color data. If - * the second element is non-null it implies there is alpha data (which - * may be meshed or planar). Data without alpha is assumed to be opaque. - * - * An X11 error code is returned. - */ -typedef int (*RootlessCompositePixelsProc) - (unsigned int width, unsigned int height, unsigned int function, - void *src[2], unsigned int srcRowBytes[2], - void *mask, unsigned int maskRowBytes, - void *dst[2], unsigned int dstRowBytes[2]); - /* * Copy area in frame to another part of frame. (Optional) * @@ -374,8 +314,6 @@ typedef struct _RootlessFrameProcs { /* Optional acceleration functions */ RootlessCopyBytesProc CopyBytes; - RootlessFillBytesProc FillBytes; - RootlessCompositePixelsProc CompositePixels; RootlessCopyWindowProc CopyWindow; } RootlessFrameProcsRec, *RootlessFrameProcsPtr; @@ -385,13 +323,6 @@ typedef struct _RootlessFrameProcs { */ Bool RootlessInit(ScreenPtr pScreen, RootlessFrameProcsPtr procs); -/* - * Initialize acceleration for rootless mode on a given screen. - * Note: RootlessAccelInit() must be called before DamageSetup() - * and RootlessInit() must be called afterwards. - */ -Bool RootlessAccelInit(ScreenPtr pScreen); - /* * Return the frame ID for the physical window displaying the given window. * diff --git a/miext/rootless/rootlessCommon.c b/miext/rootless/rootlessCommon.c index a9cd72a41..861e8e858 100644 --- a/miext/rootless/rootlessCommon.c +++ b/miext/rootless/rootlessCommon.c @@ -40,8 +40,6 @@ #include "colormapst.h" unsigned int rootless_CopyBytes_threshold = 0; -unsigned int rootless_FillBytes_threshold = 0; -unsigned int rootless_CompositePixels_threshold = 0; unsigned int rootless_CopyWindow_threshold = 0; int rootlessGlobalOffsetX = 0; int rootlessGlobalOffsetY = 0; diff --git a/miext/rootless/rootlessGC.c b/miext/rootless/rootlessGC.c index 6af8d857f..68a9dc764 100644 --- a/miext/rootless/rootlessGC.c +++ b/miext/rootless/rootlessGC.c @@ -148,9 +148,6 @@ static GCOps rootlessGCOps = { }; /* - There are two issues we must contend with when drawing. These are - controlled with ROOTLESS_PROTECT_ALPHA and RootlessAccelInit(). - If ROOTLESS_PROTECT_ALPHA is set, we have to make sure that the alpha channel of the on screen windows is always opaque. fb makes this harder than it would otherwise be by noticing that a planemask of 0x00ffffff @@ -171,21 +168,8 @@ static GCOps rootlessGCOps = { can do this when drawing op is GXcopy. We can also do this when copying from another window since its alpha channel must also be opaque. - The other issue to consider is that the rootless implementation may - provide accelerated drawing functions if RootlessAccelInit() is called.For - some drawing primitives we swap in rootless acceleration functions, which - use the accelerated drawing functions where possible. - - Where both alpha protection and acceleration is used, it is even a bigger - win to relax the planemask to all ones because most accelerated drawing - functions can only be used in this case. However, even if we can't set - the planemask to all ones, we can still use the accelerated - CompositePixels function for GXcopy if it is a forward copy. This is - mainly intended for copying from pixmaps to windows. The CompositePixels - operation used sets alpha to 0xFF during the copy. - - The three macros below are used to implement this, potentially accelerated - drawing ops look something like this: + The three macros below are used to implement this. Drawing ops that can + potentially have their planemask relaxed look like: OP { GC_SAVE(gc); @@ -285,16 +269,6 @@ canAccelFill(DrawablePtr pDraw, GCPtr pGC) return canAccelBlit(pDraw, pGC); } -static unsigned int -boxBytes(DrawablePtr pDraw, BoxRec *box) -{ - unsigned int pixels; - - pixels = (box->x2 - box->x1) * (box->y2 - box->y1); - - return pixels * (pDraw->bitsPerPixel >> 3); -} - /* * Screen function to create a graphics context @@ -477,8 +451,7 @@ RootlessFillSpans(DrawablePtr dst, GCPtr pGC, int nInit, RootlessStartDrawing((WindowPtr) dst); - if (canAccelFill(dst, pGC) && - boxBytes(dst, &box) >= rootless_FillBytes_threshold) + if (canAccelFill(dst, pGC)) { GC_UNSET_PM(pGC, dst); } @@ -584,15 +557,11 @@ RootlessCopyArea(DrawablePtr pSrc, DrawablePtr dst, GCPtr pGC, RL_DEBUG_MSG("copy area start (src 0x%x, dst 0x%x)", pSrc, dst); if (pSrc->type == DRAWABLE_WINDOW && IsFramedWindow((WindowPtr)pSrc)) { - unsigned int bytes; - /* If both source and dest are windows, and we're doing a simple copy operation, we can remove the alpha-protecting planemask (since source has opaque alpha as well) */ - bytes = w * h * (pSrc->depth >> 3); - - if (bytes >= rootless_CopyBytes_threshold && canAccelBlit(pSrc, pGC)) + if (canAccelBlit(pSrc, pGC)) { GC_UNSET_PM(pGC, dst); } @@ -1064,8 +1033,7 @@ static void RootlessFillPolygon(DrawablePtr dst, GCPtr pGC, RootlessStartDrawing((WindowPtr) dst); - if (canAccelFill(dst, pGC) && - boxBytes(dst, &box) >= rootless_FillBytes_threshold) + if (canAccelFill(dst, pGC)) { GC_UNSET_PM(pGC, dst); } @@ -1117,8 +1085,7 @@ static void RootlessPolyFillRect(DrawablePtr dst, GCPtr pGC, RootlessStartDrawing((WindowPtr) dst); - if (canAccelFill(dst, pGC) && - boxBytes(dst, &box) >= rootless_FillBytes_threshold) + if (canAccelFill(dst, pGC)) { GC_UNSET_PM(pGC, dst); } @@ -1170,8 +1137,7 @@ static void RootlessPolyFillArc(DrawablePtr dst, GCPtr pGC, RootlessStartDrawing((WindowPtr) dst); - if (canAccelFill(dst, pGC) && - boxBytes(dst, &box) >= rootless_FillBytes_threshold) + if (canAccelFill(dst, pGC)) { GC_UNSET_PM(pGC, dst); } @@ -1221,8 +1187,7 @@ static void RootlessImageText8(DrawablePtr dst, GCPtr pGC, RootlessStartDrawing((WindowPtr) dst); - if (canAccelFill(dst, pGC) && - boxBytes(dst, &box) >= rootless_FillBytes_threshold) + if (canAccelFill(dst, pGC)) { GC_UNSET_PM(pGC, dst); } @@ -1309,8 +1274,7 @@ static void RootlessImageText16(DrawablePtr dst, GCPtr pGC, RootlessStartDrawing((WindowPtr) dst); - if (canAccelFill(dst, pGC) && - boxBytes(dst, &box) >= rootless_FillBytes_threshold) + if (canAccelFill(dst, pGC)) { GC_UNSET_PM(pGC, dst); } @@ -1408,8 +1372,7 @@ static void RootlessImageGlyphBlt(DrawablePtr dst, GCPtr pGC, RootlessStartDrawing((WindowPtr) dst); - if (canAccelFill(dst, pGC) && - boxBytes(dst, &box) >= rootless_FillBytes_threshold) + if (canAccelFill(dst, pGC)) { GC_UNSET_PM(pGC, dst); } From a7efeda8a56a540542e056a426e89cfc053a4162 Mon Sep 17 00:00:00 2001 From: Tiago Vignatti Date: Sun, 30 May 2010 19:12:31 +0300 Subject: [PATCH 068/125] xfree86: use xf86PciIsolateDevice to get PCI config information Make xf86IsolateDevice private on PCI common file. Signed-off-by: Tiago Vignatti Reviewed-by: Mikhail Gusarov --- hw/xfree86/common/xf86Config.c | 13 +++---------- hw/xfree86/common/xf86Globals.c | 4 ---- hw/xfree86/common/xf86Priv.h | 3 --- hw/xfree86/common/xf86pciBus.c | 5 +++++ 4 files changed, 8 insertions(+), 17 deletions(-) diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c index 28786baa3..6743b1081 100644 --- a/hw/xfree86/common/xf86Config.c +++ b/hw/xfree86/common/xf86Config.c @@ -60,7 +60,7 @@ #include "configProcs.h" #include "globals.h" #include "extension.h" -#include "Pci.h" +#include "xf86pciBus.h" #include "xf86Xinput.h" extern DeviceAssocRec mouse_assoc; @@ -2535,18 +2535,11 @@ xf86HandleConfigFile(Bool autoconfig) scanptr = xf86ConfigLayout.screens->screen->device->busID; } if (scanptr) { - int bus, device, func; if (strncmp(scanptr, "PCI:", 4) != 0) { xf86Msg(X_WARNING, "Bus types other than PCI not yet isolable.\n" "\tIgnoring IsolateDevice option.\n"); - } else if (sscanf(scanptr, "PCI:%d:%d:%d", &bus, &device, &func) == 3) { - xf86IsolateDevice.domain = PCI_DOM_FROM_BUS(bus); - xf86IsolateDevice.bus = PCI_BUS_NO_DOMAIN(bus); - xf86IsolateDevice.dev = device; - xf86IsolateDevice.func = func; - xf86Msg(X_INFO, - "Isolating PCI bus \"%d:%d:%d\"\n", bus, device, func); - } + } else + xf86PciIsolateDevice(scanptr); } /* Now process everything else */ diff --git a/hw/xfree86/common/xf86Globals.c b/hw/xfree86/common/xf86Globals.c index 43665d1b6..781ee49ca 100644 --- a/hw/xfree86/common/xf86Globals.c +++ b/hw/xfree86/common/xf86Globals.c @@ -198,7 +198,3 @@ Bool xf86VidModeAllowNonLocal = FALSE; RootWinPropPtr *xf86RegisteredPropertiesTable = NULL; Bool xf86inSuspend = FALSE; Bool xorgHWAccess = FALSE; - -struct pci_slot_match xf86IsolateDevice = { - PCI_MATCH_ANY, PCI_MATCH_ANY, PCI_MATCH_ANY, PCI_MATCH_ANY, 0 -}; diff --git a/hw/xfree86/common/xf86Priv.h b/hw/xfree86/common/xf86Priv.h index b5e7a45e5..08c0fa93a 100644 --- a/hw/xfree86/common/xf86Priv.h +++ b/hw/xfree86/common/xf86Priv.h @@ -35,8 +35,6 @@ #ifndef _XF86PRIV_H #define _XF86PRIV_H -#include - #include "xf86Privstr.h" #include "propertyst.h" #include "input.h" @@ -72,7 +70,6 @@ extern _X_EXPORT rgb xf86Weight; extern _X_EXPORT Bool xf86FlipPixels; extern _X_EXPORT Gamma xf86Gamma; extern _X_EXPORT char *xf86ServerName; -extern _X_EXPORT struct pci_slot_match xf86IsolateDevice; /* Other parameters */ diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c index 74016af8a..46aa23a1d 100644 --- a/hw/xfree86/common/xf86pciBus.c +++ b/hw/xfree86/common/xf86pciBus.c @@ -76,6 +76,11 @@ Bool pciSlotClaimed = FALSE; (((c) & 0x00ffff00) \ == ((PCI_CLASS_DISPLAY << 16) | (PCI_SUBCLASS_DISPLAY_VGA << 8))) + +static struct pci_slot_match xf86IsolateDevice = { + PCI_MATCH_ANY, PCI_MATCH_ANY, PCI_MATCH_ANY, PCI_MATCH_ANY, 0 +}; + void xf86FormatPciBusNumber(int busnum, char *buffer) { From d9c682a5e250677883c4d375ca84cf184ee19d77 Mon Sep 17 00:00:00 2001 From: Tiago Vignatti Date: Sun, 30 May 2010 21:35:23 +0300 Subject: [PATCH 069/125] xfree86: bus: remove useless automake variable Leftover that was missed in f7abe05b. Signed-off-by: Tiago Vignatti Reviewed-by: Alan Coopersmith Reviewed-by: Mikhail Gusarov --- hw/xfree86/os-support/bus/Makefile.am | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/hw/xfree86/os-support/bus/Makefile.am b/hw/xfree86/os-support/bus/Makefile.am index 92a519bcc..106b237ff 100644 --- a/hw/xfree86/os-support/bus/Makefile.am +++ b/hw/xfree86/os-support/bus/Makefile.am @@ -16,8 +16,7 @@ PLATFORM_SOURCES = Sbus.c sdk_HEADERS += xf86Sbus.h endif -libbus_la_SOURCES = Pci.c Pci.h $(PCI_SOURCES) $(PLATFORM_PCI_SOURCES) \ - $(PLATFORM_SOURCES) +libbus_la_SOURCES = Pci.c Pci.h $(PCI_SOURCES) $(PLATFORM_SOURCES) INCLUDES = $(XORG_INCS) From 49b817501f97d55480063c0b62544b3af75b4b7c Mon Sep 17 00:00:00 2001 From: Tiago Vignatti Date: Tue, 1 Jun 2010 16:16:53 +0300 Subject: [PATCH 070/125] xfree86: bus: remove xfree86 and few other references from OS files Conceptually, os-support should have only a basic set of OS helpers which wouldn't mix with any DDX common structure (e.g. windowing structures, etc) This patch removes some xfree86-only and a few other unused references from os-support/bus. Signed-off-by: Tiago Vignatti Reviewed-by: Mikhail Gusarov --- hw/xfree86/os-support/bus/Pci.c | 11 ----------- hw/xfree86/os-support/bus/linuxPci.c | 4 ---- 2 files changed, 15 deletions(-) diff --git a/hw/xfree86/os-support/bus/Pci.c b/hw/xfree86/os-support/bus/Pci.c index a0a597d87..fe4850ecd 100644 --- a/hw/xfree86/os-support/bus/Pci.c +++ b/hw/xfree86/os-support/bus/Pci.c @@ -124,19 +124,8 @@ #include #endif -#include -#include -#include "compiler.h" -#include "xf86.h" -#include "xf86Priv.h" -#define XF86_OS_PRIVS -#include "xf86_OSproc.h" #include "Pci.h" -#include - -/* Global data */ - PCITAG pciTag(int busnum, int devnum, int funcnum) { diff --git a/hw/xfree86/os-support/bus/linuxPci.c b/hw/xfree86/os-support/bus/linuxPci.c index 289315ebc..fcfdbcb67 100644 --- a/hw/xfree86/os-support/bus/linuxPci.c +++ b/hw/xfree86/os-support/bus/linuxPci.c @@ -49,12 +49,8 @@ #endif #include -#include "compiler.h" -#include "xf86.h" -#include "xf86Priv.h" #include "xf86_OSlib.h" #include "Pci.h" -#include static const struct pci_id_match match_host_bridge = { PCI_MATCH_ANY, PCI_MATCH_ANY, PCI_MATCH_ANY, PCI_MATCH_ANY, From fc3ab84de7b5692f0db2b282ab0ed8e5a61d1fce Mon Sep 17 00:00:00 2001 From: Tiago Vignatti Date: Fri, 10 Sep 2010 19:16:30 +0300 Subject: [PATCH 071/125] xfree86: configure: move buses references to their own location This patch makes xf86Configure.c free of PCI and SBUS code, moving to a more meaningful location. Signed-off-by: Tiago Vignatti Reviewed-by: Mikhail Gusarov Reviewed-by: Mark Kettenis --- hw/xfree86/common/xf86Configure.c | 115 ++++++------------------------ hw/xfree86/common/xf86pciBus.c | 35 +++++++++ hw/xfree86/common/xf86pciBus.h | 3 + hw/xfree86/common/xf86sbusBus.c | 29 ++++++++ hw/xfree86/common/xf86sbusBus.h | 4 ++ 5 files changed, 93 insertions(+), 93 deletions(-) diff --git a/hw/xfree86/common/xf86Configure.c b/hw/xfree86/common/xf86Configure.c index da654f07b..7235c6175 100644 --- a/hw/xfree86/common/xf86Configure.c +++ b/hw/xfree86/common/xf86Configure.c @@ -34,6 +34,7 @@ #define IN_XSERVER #include "Configint.h" #include "xf86DDC.h" +#include "xf86pciBus.h" #if (defined(__sparc__) || defined(__sparc)) && !defined(__OpenBSD__) #include "xf86Bus.h" #include "xf86Sbus.h" @@ -71,85 +72,6 @@ static char *DFLT_MOUSE_DEV = "/dev/mouse"; static char *DFLT_MOUSE_PROTO = "auto"; #endif -static Bool -bus_pci_configure(void *busData) -{ - int i; - struct pci_device * pVideo = NULL; - - pVideo = (struct pci_device *) busData; - for (i = 0; i < nDevToConfig; i++) - if (DevToConfig[i].pVideo && - (DevToConfig[i].pVideo->domain == pVideo->domain) && - (DevToConfig[i].pVideo->bus == pVideo->bus) && - (DevToConfig[i].pVideo->dev == pVideo->dev) && - (DevToConfig[i].pVideo->func == pVideo->func)) - return 0; - - return 1; -} - -static Bool -bus_sbus_configure(void *busData) -{ -#if (defined(__sparc__) || defined(__sparc)) && !defined(__OpenBSD__) - int i; - - for (i = 0; i < nDevToConfig; i++) - if (DevToConfig[i].sVideo && - DevToConfig[i].sVideo->fbNum == ((sbusDevicePtr) busData)->fbNum) - return 0; - -#endif - return 1; -} - -static void -bus_pci_newdev_configure(void *busData, int i, int *chipset) -{ - char busnum[8]; - struct pci_device * pVideo = NULL; - - pVideo = (struct pci_device *) busData; - - DevToConfig[i].pVideo = pVideo; - - DevToConfig[i].GDev.busID = xnfalloc(16); - xf86FormatPciBusNumber(pVideo->bus, busnum); - sprintf(DevToConfig[i].GDev.busID, "PCI:%s:%d:%d", - busnum, pVideo->dev, pVideo->func); - - DevToConfig[i].GDev.chipID = pVideo->device_id; - DevToConfig[i].GDev.chipRev = pVideo->revision; - - if (*chipset < 0) { - *chipset = (pVideo->vendor_id << 16) | pVideo->device_id; - } -} - -static void -bus_sbus_newdev_configure(void *busData, int i) -{ -#if (defined(__sparc__) || defined(__sparc)) && !defined(__OpenBSD__) - char *promPath = NULL; - DevToConfig[i].sVideo = (sbusDevicePtr) busData; - DevToConfig[i].GDev.identifier = DevToConfig[i].sVideo->descr; - if (sparcPromInit() >= 0) { - promPath = sparcPromNode2Pathname(&DevToConfig[i].sVideo->node); - sparcPromClose(); - } - if (promPath) { - DevToConfig[i].GDev.busID = xnfalloc(strlen(promPath) + 6); - sprintf(DevToConfig[i].GDev.busID, "SBUS:%s", promPath); - free(promPath); - } else { - DevToConfig[i].GDev.busID = xnfalloc(12); - sprintf(DevToConfig[i].GDev.busID, "SBUS:fb%d", - DevToConfig[i].sVideo->fbNum); - } -#endif -} - /* * This is called by the driver, either through xf86Match???Instances() or * directly. We allocate a GDevRec and fill it in as much as we can, letting @@ -164,20 +86,23 @@ xf86AddBusDeviceToConfigure(const char *driver, BusType bus, void *busData, int return NULL; /* Check for duplicates */ - switch (bus) { - case BUS_PCI: - ret = bus_pci_configure(busData); - break; - case BUS_SBUS: - ret = bus_sbus_configure(busData); - break; - default: - return NULL; + for (i = 0; i < nDevToConfig; i++) { + switch (bus) { + case BUS_PCI: + ret = xf86PciConfigure(busData, DevToConfig[i].pVideo); + break; +#if (defined(__sparc__) || defined(__sparc)) && !defined(__OpenBSD__) + case BUS_SBUS: + ret = xf86SbusConfigure(busData, DevToConfig[i].sVideo); + break; +#endif + default: + return NULL; + } + if (ret == 0) + goto out; } - if (ret == 0) - goto out; - /* Allocate new structure occurrence */ i = nDevToConfig++; DevToConfig = @@ -195,11 +120,15 @@ xf86AddBusDeviceToConfigure(const char *driver, BusType bus, void *busData, int switch (bus) { case BUS_PCI: - bus_pci_newdev_configure(busData, i, &chipset); + xf86PciConfigureNewDev(busData, DevToConfig[i].pVideo, + &DevToConfig[i].GDev, &chipset); break; +#if (defined(__sparc__) || defined(__sparc)) && !defined(__OpenBSD__) case BUS_SBUS: - bus_sbus_newdev_configure(busData, i); + xf86SbusConfigureNewDev(busData, DevToConfig[i].sVideo, + &DevToConfig[i].GDev); break; +#endif default: break; } diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c index 46aa23a1d..7f8823a36 100644 --- a/hw/xfree86/common/xf86pciBus.c +++ b/hw/xfree86/common/xf86pciBus.c @@ -1327,3 +1327,38 @@ xf86PciMatchDriver(char* matches[], int nmatches) { return i; } + +Bool +xf86PciConfigure(void *busData, struct pci_device *pDev) +{ + struct pci_device * pVideo = NULL; + + pVideo = (struct pci_device *) busData; + if (pDev && + (pDev->domain == pVideo->domain) && + (pDev->bus == pVideo->bus) && + (pDev->dev == pVideo->dev) && + (pDev->func == pVideo->func)) + return 0; + + return 1; +} + +void +xf86PciConfigureNewDev(void *busData, struct pci_device *pVideo, + GDevRec *GDev, int *chipset) +{ + char busnum[8]; + + pVideo = (struct pci_device *) busData; + + GDev->busID = xnfalloc(16); + xf86FormatPciBusNumber(pVideo->bus, busnum); + sprintf(GDev->busID, "PCI:%s:%d:%d", busnum, pVideo->dev, pVideo->func); + + GDev->chipID = pVideo->device_id; + GDev->chipRev = pVideo->revision; + + if (*chipset < 0) + *chipset = (pVideo->vendor_id << 16) | pVideo->device_id; +} diff --git a/hw/xfree86/common/xf86pciBus.h b/hw/xfree86/common/xf86pciBus.h index 3f02b9330..e625e5179 100644 --- a/hw/xfree86/common/xf86pciBus.h +++ b/hw/xfree86/common/xf86pciBus.h @@ -38,5 +38,8 @@ Bool xf86PciAddMatchingDev(DriverPtr drvp); Bool xf86PciProbeDev(DriverPtr drvp); void xf86PciIsolateDevice(char *argument); int xf86PciMatchDriver(char* matches[], int nmatches); +Bool xf86PciConfigure(void *busData, struct pci_device *pDev); +void xf86PciConfigureNewDev(void *busData, struct pci_device *pVideo, + GDevRec *GDev, int *chipset); #endif /* _XF86_PCI_BUS_H */ diff --git a/hw/xfree86/common/xf86sbusBus.c b/hw/xfree86/common/xf86sbusBus.c index fe3f0a84a..d7c928b4c 100644 --- a/hw/xfree86/common/xf86sbusBus.c +++ b/hw/xfree86/common/xf86sbusBus.c @@ -685,3 +685,32 @@ xf86SbusHandleColormaps(ScreenPtr pScreen, sbusDevicePtr psdp) return xf86HandleColormaps(pScreen, 256, 8, xf86SbusCmapLoadPalette, NULL, 0); } + +Bool +xf86SbusConfigure(void *busData, sbusDevicePtr sBus) +{ + if (sBus && sBus->fbNum == ((sbusDevicePtr) busData)->fbNum) + return 0; + return 1; +} + +void +xf86SbusConfigureNewDev(void *busData, sbusDevicePtr sBus, GDevRec *GDev) +{ + char *promPath = NULL; + + sBus = (sbusDevicePtr) busData; + GDev->identifier = sBus->descr; + if (sparcPromInit() >= 0) { + promPath = sparcPromNode2Pathname(&sBus->node); + sparcPromClose(); + } + if (promPath) { + GDev->busID = xnfalloc(strlen(promPath) + 6); + sprintf(GDev->busID, "SBUS:%s", promPath); + free(promPath); + } else { + GDev->busID = xnfalloc(12); + sprintf(GDev->busID, "SBUS:fb%d", sBus->fbNum); + } +} diff --git a/hw/xfree86/common/xf86sbusBus.h b/hw/xfree86/common/xf86sbusBus.h index 5cdb0951a..66a96e3d5 100644 --- a/hw/xfree86/common/xf86sbusBus.h +++ b/hw/xfree86/common/xf86sbusBus.h @@ -97,4 +97,8 @@ extern _X_EXPORT char * sparcPromNode2Pathname(sbusPromNodePtr pnode); extern _X_EXPORT int sparcPromPathname2Node(const char *pathName); extern _X_EXPORT char *sparcDriverName(void); +extern Bool xf86SbusConfigure(void *busData, sbusDevicePtr sBus); +extern void xf86SbusConfigureNewDev(void *busData, sbusDevicePtr sBus, + GDevRec *GDev); + #endif /* _XF86_SBUSBUS_H */ From 17a23f9ba8fa95f3e15afba7de22a12fe60bacfb Mon Sep 17 00:00:00 2001 From: Tiago Vignatti Date: Fri, 10 Sep 2010 19:18:42 +0300 Subject: [PATCH 072/125] xfree86: dri: remove unused PCI macro Signed-off-by: Tiago Vignatti Reviewed-by: Mikhail Gusarov --- hw/xfree86/dri/dri.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/hw/xfree86/dri/dri.c b/hw/xfree86/dri/dri.c index 61bbe9aa0..fe99a2dcc 100644 --- a/hw/xfree86/dri/dri.c +++ b/hw/xfree86/dri/dri.c @@ -71,8 +71,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "inputstr.h" #include "xf86VGAarbiter.h" -#define PCI_BUS_NO_DOMAIN(bus) ((bus) & 0xffu) - static int DRIEntPrivIndex = -1; static DevPrivateKeyRec DRIScreenPrivKeyRec; #define DRIScreenPrivKey (&DRIScreenPrivKeyRec) From 18b2d2e8bd056266410226d779752e7933847b6b Mon Sep 17 00:00:00 2001 From: Tiago Vignatti Date: Mon, 31 May 2010 18:09:50 +0300 Subject: [PATCH 073/125] xfree86: bus: move macros from common PCI header to private file Only int10/helper_exec.c is using them. Signed-off-by: Tiago Vignatti Reviewed-by: Mikhail Gusarov --- hw/xfree86/int10/helper_exec.c | 5 +++++ hw/xfree86/os-support/bus/Pci.h | 5 ----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/hw/xfree86/int10/helper_exec.c b/hw/xfree86/int10/helper_exec.c index 8f47afe2b..55ab05866 100644 --- a/hw/xfree86/int10/helper_exec.c +++ b/hw/xfree86/int10/helper_exec.c @@ -462,6 +462,11 @@ Mem_wl(CARD32 addr, CARD32 val) static CARD32 PciCfg1Addr = 0; +#define PCI_DOM_FROM_TAG(tag) (((tag) >> 24) & (PCI_DOM_MASK)) +#define PCI_BUS_FROM_TAG(tag) (((tag) >> 16) & (PCI_DOMBUS_MASK)) +#define PCI_DEV_FROM_TAG(tag) (((tag) & 0x0000f800u) >> 11) +#define PCI_FUNC_FROM_TAG(tag) (((tag) & 0x00000700u) >> 8) + #define PCI_OFFSET(x) ((x) & 0x000000ff) #define PCI_TAG(x) ((x) & 0x7fffff00) diff --git a/hw/xfree86/os-support/bus/Pci.h b/hw/xfree86/os-support/bus/Pci.h index e001c304f..349301315 100644 --- a/hw/xfree86/os-support/bus/Pci.h +++ b/hw/xfree86/os-support/bus/Pci.h @@ -133,11 +133,6 @@ #define PCI_MAKE_BUS(d,b) ((((d) & (PCI_DOM_MASK)) << 8) | ((b) & 0xffu)) -#define PCI_DOM_FROM_TAG(tag) (((tag) >> 24) & (PCI_DOM_MASK)) -#define PCI_BUS_FROM_TAG(tag) (((tag) >> 16) & (PCI_DOMBUS_MASK)) -#define PCI_DEV_FROM_TAG(tag) (((tag) & 0x0000f800u) >> 11) -#define PCI_FUNC_FROM_TAG(tag) (((tag) & 0x00000700u) >> 8) - #define PCI_DOM_FROM_BUS(bus) (((bus) >> 8) & (PCI_DOM_MASK)) #define PCI_BUS_NO_DOMAIN(bus) ((bus) & 0xffu) #define PCI_TAG_NO_DOMAIN(tag) ((tag) & 0x00ffff00u) From 7360235ecca25af29bb2d99a8e46d5b259ad1b1e Mon Sep 17 00:00:00 2001 From: Tiago Vignatti Date: Mon, 31 May 2010 18:20:57 +0300 Subject: [PATCH 074/125] xfree86: bus: assign PCI_SOURCES with the actual source files Signed-off-by: Tiago Vignatti Reviewed-by: Mikhail Gusarov --- hw/xfree86/os-support/bus/Makefile.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/xfree86/os-support/bus/Makefile.am b/hw/xfree86/os-support/bus/Makefile.am index 106b237ff..643cb252f 100644 --- a/hw/xfree86/os-support/bus/Makefile.am +++ b/hw/xfree86/os-support/bus/Makefile.am @@ -1,7 +1,7 @@ noinst_LTLIBRARIES = libbus.la sdk_HEADERS = xf86Pci.h -PCI_SOURCES = +PCI_SOURCES = Pci.c Pci.h if XORG_BUS_LINUXPCI PCI_SOURCES += linuxPci.c @@ -16,7 +16,7 @@ PLATFORM_SOURCES = Sbus.c sdk_HEADERS += xf86Sbus.h endif -libbus_la_SOURCES = Pci.c Pci.h $(PCI_SOURCES) $(PLATFORM_SOURCES) +libbus_la_SOURCES = $(PCI_SOURCES) $(PLATFORM_SOURCES) INCLUDES = $(XORG_INCS) From 01ad3725a8d0a8958720b81d19598a08c072ccee Mon Sep 17 00:00:00 2001 From: Tiago Vignatti Date: Tue, 1 Jun 2010 20:37:54 +0300 Subject: [PATCH 075/125] xfree86: delete useless "Primary device is not PCI" message The primary device being PCI or not has no effect on the server working. This message is superfluous. Signed-off-by: Tiago Vignatti Reviewed-by: Mikhail Gusarov --- hw/xfree86/common/xf86pciBus.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c index 7f8823a36..3e9c4551f 100644 --- a/hw/xfree86/common/xf86pciBus.c +++ b/hw/xfree86/common/xf86pciBus.c @@ -1307,15 +1307,10 @@ xf86PciMatchDriver(char* matches[], int nmatches) { } pci_iterator_destroy(iter); - - if (!info) { - ErrorF("Primary device is not PCI\n"); - } #ifdef __linux__ - else { + if (info) matchDriverFromFiles(matches, info->vendor_id, info->device_id); - } -#endif /* __linux__ */ +#endif for (i = 0; (i < nmatches) && (matches[i]); i++) { /* find end of matches list */ From e4d4d6ddd52801cf0b0b253d9ba3bdabfa9a9d8d Mon Sep 17 00:00:00 2001 From: Jamey Sharp Date: Fri, 17 Sep 2010 02:18:10 +0200 Subject: [PATCH 076/125] Xserver need not be compatible with old versions of xserver. Delete time-traveling multiple personality disorder from the server. Gaetan notes: There were a couple of drivers containing an unknown version of the modes/parser code. This was done in server 1.2 time frame because it was released without mode code. It was barely or not maintained afterwards. There are currently no video drivers with a copy of the modes code. Most of these ifdefs were introduced in commit a8d760f567b19268329c4682495caa591f08a854, where Aaron wrote, This change uses XORG_VERSION_CURRENT < 7.0 to mean "server newer than 1.2" since XORG_VERSION current went backwards at some point. Alan explains that: In Xorg 1.3, when we first released an Xorg server release decoupled from the katamari release schedule. (1.0 through 1.2 were released as part of X11R7.0 through 7.2, while 1.3 came out between X11R7.2 & 7.3.) Commit by Jamey Sharp and Josh Triplett. Signed-off-by: Jamey Sharp Signed-off-by: Josh Triplett Reviewed-by: Aaron Plattner --- hw/xfree86/modes/xf86Cursors.c | 8 ------- hw/xfree86/modes/xf86EdidModes.c | 4 ---- hw/xfree86/modes/xf86Modes.c | 14 ------------- hw/xfree86/modes/xf86RandR12.c | 36 -------------------------------- 4 files changed, 62 deletions(-) diff --git a/hw/xfree86/modes/xf86Cursors.c b/hw/xfree86/modes/xf86Cursors.c index 6b2ae97d4..ab07b6045 100644 --- a/hw/xfree86/modes/xf86Cursors.c +++ b/hw/xfree86/modes/xf86Cursors.c @@ -227,11 +227,7 @@ xf86_set_cursor_colors (ScrnInfoPtr scrn, int bg, int fg) CursorPtr cursor = xf86_config->cursor; int c; CARD8 *bits = cursor ? -#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(7,0,0,0,0) dixLookupPrivate(&cursor->devPrivates, CursorScreenKey(screen)) -#else - cursor->devPriv[screen->myNum] -#endif : NULL; /* Save ARGB versions of these colors */ @@ -630,11 +626,7 @@ xf86_reload_cursors (ScreenPtr screen) if (cursor) { -#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(7,0,0,0,0) void *src = dixLookupPrivate(&cursor->devPrivates, CursorScreenKey(screen)); -#else - void *src = cursor->devPriv[screen->myNum]; -#endif #ifdef ARGB_CURSOR if (cursor->bits->argb && cursor_info->LoadCursorARGB) (*cursor_info->LoadCursorARGB) (scrn, cursor); diff --git a/hw/xfree86/modes/xf86EdidModes.c b/hw/xfree86/modes/xf86EdidModes.c index 8f4d04f93..c36774953 100644 --- a/hw/xfree86/modes/xf86EdidModes.c +++ b/hw/xfree86/modes/xf86EdidModes.c @@ -636,7 +636,6 @@ DDCModeFromDetailedTiming(int scrnIndex, struct detailed_timings *timing, return Mode; } -#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(7,0,0,0,0) static DisplayModePtr DDCModesFromCVT(int scrnIndex, struct cvt_timings *t) { @@ -665,7 +664,6 @@ DDCModesFromCVT(int scrnIndex, struct cvt_timings *t) return modes; } -#endif static const struct { short w; @@ -1021,12 +1019,10 @@ static void handle_detailed_modes(struct detailed_monitor_section *det_mon, p->quirks, p->timing_level,p->rb); p->Modes = xf86ModesAdd(p->Modes, Mode); break; -#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(7,0,0,0,0) case DS_CVT: Mode = DDCModesFromCVT(p->DDC->scrnIndex, det_mon->section.cvt); p->Modes = xf86ModesAdd(p->Modes, Mode); break; -#endif case DS_EST_III: Mode = DDCModesFromEstIII(det_mon->section.est_iii); p->Modes = xf86ModesAdd(p->Modes, Mode); diff --git a/hw/xfree86/modes/xf86Modes.c b/hw/xfree86/modes/xf86Modes.c index 05f4319c9..51eb4c952 100644 --- a/hw/xfree86/modes/xf86Modes.c +++ b/hw/xfree86/modes/xf86Modes.c @@ -38,14 +38,6 @@ extern XF86ConfigPtr xf86configptr; -/* - * This is the version number where we epoched. These files get copied - * into drivers that want to use this setup infrastructure on pre-1.3 - * servers, so when that happens they need to define these symbols - * themselves. However, _in_ the server, we basically always define them now. - */ -#if XORG_VERSION_CURRENT <= XORG_VERSION_NUMERIC(7,2,99,2,0) - /** * Calculates the horizontal sync rate of a mode. */ @@ -326,7 +318,6 @@ xf86PrintModeline(int scrnIndex,DisplayModePtr mode) mode->VTotal, flags, xf86ModeHSync(mode)); free(flags); } -#endif /* XORG_VERSION_CURRENT <= 7.2.99.2 */ /** * Marks as bad any modes with unsupported flags. @@ -503,12 +494,7 @@ xf86ValidateModesBandwidth(ScrnInfoPtr pScrn, DisplayModePtr modeList, for (mode = modeList; mode != NULL; mode = mode->next) { if (xf86ModeBandwidth(mode, depth) > bandwidth) -#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(7,0,0,0,0) mode->status = MODE_BANDWIDTH; -#else - /* MODE_BANDWIDTH didn't exist in xserver 1.2 */ - mode->status = MODE_BAD; -#endif } } diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c index 043ceee08..dd2bdaca0 100644 --- a/hw/xfree86/modes/xf86RandR12.c +++ b/hw/xfree86/modes/xf86RandR12.c @@ -69,21 +69,12 @@ static Bool xf86RandR12CreateScreenResources12 (ScreenPtr pScreen); #endif static int xf86RandR12Generation; -#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(7,0,0,0,0) static DevPrivateKeyRec xf86RandR12KeyRec; static DevPrivateKey xf86RandR12Key; #define XF86RANDRINFO(p) ((XF86RandRInfoPtr) \ dixLookupPrivate(&(p)->devPrivates, xf86RandR12Key)) -#else /* XORG_VERSION_CURRENT < 7.0 */ - -static int xf86RandR12Index; -#define XF86RANDRINFO(p) \ - ((XF86RandRInfoPtr)(p)->devPrivates[xf86RandR12Index].ptr) - -#endif /* XORG_VERSION_CURRENT < 7.0 */ - static int xf86RandR12ModeRefresh (DisplayModePtr mode) @@ -690,17 +681,13 @@ xf86RandR12ScreenSetSize (ScreenPtr pScreen, Bool ret = FALSE; int c; -#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(7,0,0,0,0) if (xf86RandR12Key) { -#endif if (randrp->virtualX == -1 || randrp->virtualY == -1) { randrp->virtualX = pScrn->virtualX; randrp->virtualY = pScrn->virtualY; } -#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(7,0,0,0,0) } -#endif if (pRoot && pScrn->vtSema) (*pScrn->EnableDisableFBAccess) (pScreen->myNum, FALSE); @@ -843,10 +830,8 @@ xf86RandR12CreateScreenResources (ScreenPtr pScreen) mmHeight); } -#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(7,0,0,0,0) if (xf86RandR12Key == NULL) return TRUE; -#endif if (randrp->virtualX == -1 || randrp->virtualY == -1) { @@ -882,13 +867,9 @@ xf86RandR12Init (ScreenPtr pScreen) if (xf86RandR12Generation != serverGeneration) xf86RandR12Generation = serverGeneration; -#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(7,0,0,0,0) xf86RandR12Key = &xf86RandR12KeyRec; if (!dixRegisterPrivateKey(&xf86RandR12KeyRec, PRIVATE_SCREEN, 0)) return FALSE; -#else - xf86RandR12Index = AllocateScreenPrivateIndex(); -#endif randrp = malloc(sizeof (XF86RandRInfoRec)); if (!randrp) @@ -914,11 +895,7 @@ xf86RandR12Init (ScreenPtr pScreen) randrp->maxX = randrp->maxY = 0; -#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(7,0,0,0,0) dixSetPrivate(&pScreen->devPrivates, xf86RandR12Key, randrp); -#else - pScreen->devPrivates[xf86RandR12Index].ptr = randrp; -#endif #if RANDR_12_INTERFACE if (!xf86RandR12Init12 (pScreen)) @@ -932,10 +909,8 @@ xf86RandR12CloseScreen (ScreenPtr pScreen) { XF86RandRInfoPtr randrp; -#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(7,0,0,0,0) if (xf86RandR12Key == NULL) return; -#endif randrp = XF86RANDRINFO(pScreen); #if RANDR_12_INTERFACE @@ -955,10 +930,8 @@ xf86RandR12SetRotations (ScreenPtr pScreen, Rotation rotations) xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn); #endif -#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(7,0,0,0,0) if (xf86RandR12Key == NULL) return; -#endif randrp = XF86RANDRINFO(pScreen); #if RANDR_12_INTERFACE @@ -981,10 +954,8 @@ xf86RandR12SetTransformSupport (ScreenPtr pScreen, Bool transforms) xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn); #endif -#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(7,0,0,0,0) if (xf86RandR12Key == NULL) return; -#endif randrp = XF86RANDRINFO(pScreen); #if RANDR_13_INTERFACE @@ -1599,10 +1570,8 @@ xf86RandR12CreateScreenResources12 (ScreenPtr pScreen) ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn); -#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(7,0,0,0,0) if (xf86RandR12Key == NULL) return TRUE; -#endif for (c = 0; c < config->num_crtc; c++) xf86RandR12CrtcNotify (config->crtc[c]->randr_crtc); @@ -1624,13 +1593,8 @@ xf86RandR12TellChanged (ScreenPtr pScreen) xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn); int c; -#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(7,0,0,0,0) if (xf86RandR12Key == NULL) return; -#else - if (!XF86RANDRINFO(pScreen)) - return; -#endif xf86RandR12SetInfo12 (pScreen); for (c = 0; c < config->num_crtc; c++) From 402942cdbc518395a2943fd226b9f3071f24d39f Mon Sep 17 00:00:00 2001 From: Jamey Sharp Date: Fri, 17 Sep 2010 02:11:44 +0200 Subject: [PATCH 077/125] Introduce per-object per-screen privates. This replaces dixCreatePrivateKey and the only uses, which were in midispcur. Commit by Jamey Sharp and Josh Triplett. Signed-off-by: Jamey Sharp Signed-off-by: Josh Triplett Reviewed-by: Keith Packard --- dix/privates.c | 33 ++++++++++++++++---------- doc/xml/Xserver-spec.xml | 12 +++++----- include/privates.h | 51 +++++++++++++++++++++++++++++++--------- mi/midispcur.c | 42 +++++++++++++++------------------ 4 files changed, 85 insertions(+), 53 deletions(-) diff --git a/dix/privates.c b/dix/privates.c index 17e1050d9..687fa7aa0 100644 --- a/dix/privates.c +++ b/dix/privates.c @@ -237,28 +237,35 @@ dixRegisterPrivateKey(DevPrivateKey key, DevPrivateType type, unsigned size) return TRUE; } -/* - * Allocate a new private key. - * - * This manages the storage of the key object itself, freeing it when the - * privates system is restarted at server reset time. All other keys - * are expected to be statically allocated as the privates must be - * reset after all objects have been freed - */ -DevPrivateKey -dixCreatePrivateKey(DevPrivateType type, unsigned size) +Bool +dixRegisterScreenPrivateKey(DevScreenPrivateKey screenKey, ScreenPtr pScreen, DevPrivateType type, unsigned size) { DevPrivateKey key; + if (!dixRegisterPrivateKey(&screenKey->screenKey, PRIVATE_SCREEN, 0)) + return FALSE; + key = dixGetPrivate(&pScreen->devPrivates, &screenKey->screenKey); + if (key != NULL) { + assert(key->size == size); + assert(key->type == type); + return TRUE; + } key = calloc(sizeof (DevPrivateKeyRec), 1); if (!key) - return NULL; + return FALSE; if (!dixRegisterPrivateKey(key, type, size)) { free(key); - return NULL; + return FALSE; } key->allocated = TRUE; - return key; + dixSetPrivate(&pScreen->devPrivates, &screenKey->screenKey, key); + return TRUE; +} + +DevPrivateKey +_dixGetScreenPrivateKey(const DevScreenPrivateKey key, ScreenPtr pScreen) +{ + return dixGetPrivate(&pScreen->devPrivates, &key->screenKey); } /* diff --git a/doc/xml/Xserver-spec.xml b/doc/xml/Xserver-spec.xml index 563705fb9..4811a30a4 100644 --- a/doc/xml/Xserver-spec.xml +++ b/doc/xml/Xserver-spec.xml @@ -4854,16 +4854,16 @@ If the function is called more than once on the same key, all calls must use the same value for size or the server will abort. -To request private space and have the server manage the key, use +To request per-screen private space in an object, use
- DevPrivateKey dixCreatePrivateKey(DevPrivateType type, unsigned size); + Bool dixRegisterScreenPrivateKey(DevScreenPrivateKey key, ScreenPtr pScreen, DevPrivateType type, unsigned size);
The type and size arguments are the same as those to dixRegisterPrivateKey but this -function allocates a DevPrivateKeyRec and returns a pointer to it -instead of requiring the caller to pass a pointer to an existing structure. -The server will free it automatically when the privates system is restarted -at server reset time.
+function ensures the given key exists on objects of +the specified type with distinct storage for the given +pScreen. The key is usable on ScreenPrivate variants +that are otherwise equivalent to the following Private functions. To attach a piece of private data to an object, use: diff --git a/include/privates.h b/include/privates.h index d3c0e1325..9fb6ae84e 100644 --- a/include/privates.h +++ b/include/privates.h @@ -65,6 +65,10 @@ typedef struct _DevPrivateKeyRec { struct _DevPrivateKeyRec *next; } DevPrivateKeyRec, *DevPrivateKey; +typedef struct _DevScreenPrivateKeyRec { + DevPrivateKeyRec screenKey; +} DevScreenPrivateKeyRec, *DevScreenPrivateKey; + /* * Let drivers know how to initialize private keys */ @@ -99,17 +103,6 @@ dixPrivateKeyRegistered(DevPrivateKey key) return key->initialized; } -/* - * Allocate a new private key. - * - * This manages the storage of the key object itself, freeing it when the - * privates system is restarted at server reset time. All other keys - * are expected to be statically allocated as the privates must be - * reset after all objects have been freed - */ -extern _X_EXPORT DevPrivateKey -dixCreatePrivateKey(DevPrivateType type, unsigned size); - /* * Get the address of the private storage. * @@ -180,6 +173,42 @@ dixLookupPrivateAddr(PrivatePtr *privates, const DevPrivateKey key) return (pointer *)dixGetPrivateAddr(privates, key); } +extern _X_EXPORT Bool +dixRegisterScreenPrivateKey(DevScreenPrivateKey key, ScreenPtr pScreen, DevPrivateType type, unsigned size); + +extern _X_EXPORT DevPrivateKey +_dixGetScreenPrivateKey(const DevScreenPrivateKey key, ScreenPtr pScreen); + +static inline void * +dixGetScreenPrivateAddr(PrivatePtr *privates, const DevScreenPrivateKey key, ScreenPtr pScreen) +{ + return dixGetPrivateAddr(privates, _dixGetScreenPrivateKey(key, pScreen)); +} + +static inline void * +dixGetScreenPrivate(PrivatePtr *privates, const DevScreenPrivateKey key, ScreenPtr pScreen) +{ + return dixGetPrivate(privates, _dixGetScreenPrivateKey(key, pScreen)); +} + +static inline void +dixSetScreenPrivate(PrivatePtr *privates, const DevScreenPrivateKey key, ScreenPtr pScreen, pointer val) +{ + return dixSetPrivate(privates, _dixGetScreenPrivateKey(key, pScreen), val); +} + +static inline pointer +dixLookupScreenPrivate(PrivatePtr *privates, const DevScreenPrivateKey key, ScreenPtr pScreen) +{ + return dixLookupPrivate(privates, _dixGetScreenPrivateKey(key, pScreen)); +} + +static inline pointer * +dixLookupScreenPrivateAddr(PrivatePtr *privates, const DevScreenPrivateKey key, ScreenPtr pScreen) +{ + return dixLookupPrivateAddr(privates, _dixGetScreenPrivateKey(key, pScreen)); +} + /* * Allocates private data separately from main object. * diff --git a/mi/midispcur.c b/mi/midispcur.c index 323ee028b..48feb8823 100644 --- a/mi/midispcur.c +++ b/mi/midispcur.c @@ -56,6 +56,10 @@ in this Software without prior written authorization from The Open Group. /* per-screen private data */ static DevPrivateKeyRec miDCScreenKeyRec; #define miDCScreenKey (&miDCScreenKeyRec) +static DevScreenPrivateKeyRec miDCCursorBitsKeyRec; +#define miDCCursorBitsKey (&miDCCursorBitsKeyRec) +static DevScreenPrivateKeyRec miDCDeviceKeyRec; +#define miDCDeviceKey (&miDCDeviceKeyRec) static Bool miDCCloseScreen(int index, ScreenPtr pScreen); @@ -71,8 +75,8 @@ typedef struct { #define miGetDCDevice(dev, screen) \ ((DevHasCursor(dev)) ? \ - (miDCBufferPtr)dixLookupPrivate(&dev->devPrivates, miDCDeviceKey(screen)) : \ - (miDCBufferPtr)dixLookupPrivate(&dev->u.master->devPrivates, miDCDeviceKey(screen))) + (miDCBufferPtr)dixLookupScreenPrivate(&dev->devPrivates, miDCDeviceKey, screen) : \ + (miDCBufferPtr)dixLookupScreenPrivate(&dev->u.master->devPrivates, miDCDeviceKey, screen)) /* * The core pointer buffer will point to the index of the virtual core pointer @@ -80,13 +84,9 @@ typedef struct { */ typedef struct { CloseScreenProcPtr CloseScreen; - DevPrivateKey device_key; - DevPrivateKey cursor_bits_key; } miDCScreenRec, *miDCScreenPtr; #define miGetDCScreen(s) ((miDCScreenPtr)(dixLookupPrivate(&(s)->devPrivates, miDCScreenKey))) -#define miDCDeviceKey(s) (miGetDCScreen(s)->device_key) -#define miDCCursorBitsKey(s) (miGetDCScreen(s)->cursor_bits_key) /* per-cursor per-screen private data */ typedef struct { @@ -102,19 +102,15 @@ miDCInitialize (ScreenPtr pScreen, miPointerScreenFuncPtr screenFuncs) { miDCScreenPtr pScreenPriv; - if (!dixRegisterPrivateKey(&miDCScreenKeyRec, PRIVATE_SCREEN, 0)) + if (!dixRegisterPrivateKey(&miDCScreenKeyRec, PRIVATE_SCREEN, 0) || + !dixRegisterScreenPrivateKey(&miDCCursorBitsKeyRec, pScreen, PRIVATE_CURSOR_BITS, 0) || + !dixRegisterScreenPrivateKey(&miDCDeviceKeyRec, pScreen, PRIVATE_DEVICE, 0)) return FALSE; pScreenPriv = malloc(sizeof (miDCScreenRec)); if (!pScreenPriv) return FALSE; - pScreenPriv->cursor_bits_key = dixCreatePrivateKey(PRIVATE_CURSOR_BITS, 0); - pScreenPriv->device_key = dixCreatePrivateKey(PRIVATE_DEVICE, 0); - if (!pScreenPriv->cursor_bits_key || !pScreenPriv->device_key) { - free(pScreenPriv); - return FALSE; - } pScreenPriv->CloseScreen = pScreen->CloseScreen; pScreen->CloseScreen = miDCCloseScreen; @@ -144,7 +140,7 @@ Bool miDCRealizeCursor (ScreenPtr pScreen, CursorPtr pCursor) { if (pCursor->bits->refcnt <= 1) - dixSetPrivate(&pCursor->bits->devPrivates, miDCCursorBitsKey(pScreen), NULL); + dixSetScreenPrivate(&pCursor->bits->devPrivates, miDCCursorBitsKey, pScreen, NULL); return TRUE; } @@ -243,7 +239,7 @@ miDCRealize (ScreenPtr pScreen, CursorPtr pCursor) free((pointer) pPriv); return NULL; } - dixSetPrivate(&pCursor->bits->devPrivates, miDCCursorBitsKey(pScreen), pPriv); + dixSetScreenPrivate(&pCursor->bits->devPrivates, miDCCursorBitsKey, pScreen, pPriv); return pPriv; } pPriv->pPicture = 0; @@ -261,7 +257,7 @@ miDCRealize (ScreenPtr pScreen, CursorPtr pCursor) free((pointer) pPriv); return NULL; } - dixSetPrivate(&pCursor->bits->devPrivates, miDCCursorBitsKey(pScreen), pPriv); + dixSetScreenPrivate(&pCursor->bits->devPrivates, miDCCursorBitsKey, pScreen, pPriv); /* create the two sets of bits, clipping as appropriate */ @@ -305,8 +301,8 @@ miDCUnrealizeCursor (ScreenPtr pScreen, CursorPtr pCursor) { miDCCursorPtr pPriv; - pPriv = (miDCCursorPtr)dixLookupPrivate(&pCursor->bits->devPrivates, - miDCCursorBitsKey(pScreen)); + pPriv = (miDCCursorPtr)dixLookupScreenPrivate(&pCursor->bits->devPrivates, + miDCCursorBitsKey, pScreen); if (pPriv && (pCursor->bits->refcnt <= 1)) { if (pPriv->sourceBits) @@ -318,7 +314,7 @@ miDCUnrealizeCursor (ScreenPtr pScreen, CursorPtr pCursor) FreePicture (pPriv->pPicture, 0); #endif free((pointer) pPriv); - dixSetPrivate(&pCursor->bits->devPrivates, miDCCursorBitsKey(pScreen), NULL); + dixSetScreenPrivate(&pCursor->bits->devPrivates, miDCCursorBitsKey, pScreen, NULL); } return TRUE; } @@ -406,8 +402,8 @@ miDCPutUpCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor, miDCBufferPtr pBuffer; WindowPtr pWin; - pPriv = (miDCCursorPtr)dixLookupPrivate(&pCursor->bits->devPrivates, - miDCCursorBitsKey(pScreen)); + pPriv = (miDCCursorPtr)dixLookupScreenPrivate(&pCursor->bits->devPrivates, + miDCCursorBitsKey, pScreen); if (!pPriv) { pPriv = miDCRealize(pScreen, pCursor); @@ -523,7 +519,7 @@ miDCDeviceInitialize(DeviceIntPtr pDev, ScreenPtr pScreen) if (!pBuffer) goto failure; - dixSetPrivate(&pDev->devPrivates, miDCDeviceKey(pScreen), pBuffer); + dixSetScreenPrivate(&pDev->devPrivates, miDCDeviceKey, pScreen, pBuffer); pWin = pScreen->root; pBuffer->pSourceGC = miDCMakeGC(pWin); @@ -589,7 +585,7 @@ miDCDeviceCleanup(DeviceIntPtr pDev, ScreenPtr pScreen) if (pBuffer->pSave) (*pScreen->DestroyPixmap)(pBuffer->pSave); free(pBuffer); - dixSetPrivate(&pDev->devPrivates, miDCDeviceKey(pScreen), NULL); + dixSetScreenPrivate(&pDev->devPrivates, miDCDeviceKey, pScreen, NULL); } } } From 2a24a013bf3f554bb03c0f5af155d23dbb27b599 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Fri, 17 Sep 2010 07:32:17 -0400 Subject: [PATCH 078/125] loader: Merge dlloader directly into the loader This lets us drop some double-tracking of loaded modules too. If your OS is too lame to have libdl, fix that first. Reviewed-by: Alan Coopersmith Reviewed-by: Julien Cristau Signed-off-by: Adam Jackson --- hw/xfree86/loader/Makefile.am | 2 - hw/xfree86/loader/dlloader.c | 178 ---------------------------------- hw/xfree86/loader/dlloader.h | 33 ------- hw/xfree86/loader/loader.c | 76 ++++++++++++++- hw/xfree86/loader/loader.h | 3 - 5 files changed, 72 insertions(+), 220 deletions(-) delete mode 100644 hw/xfree86/loader/dlloader.c delete mode 100644 hw/xfree86/loader/dlloader.h diff --git a/hw/xfree86/loader/Makefile.am b/hw/xfree86/loader/Makefile.am index d3c17d173..2bac89ac9 100644 --- a/hw/xfree86/loader/Makefile.am +++ b/hw/xfree86/loader/Makefile.am @@ -8,7 +8,6 @@ INCLUDES = $(XORG_INCS) -I$(srcdir)/../parser -I$(top_srcdir)/miext/cw \ AM_CFLAGS = $(DIX_CFLAGS) $(XORG_CFLAGS) EXTRA_DIST = \ - dlloader.h \ loader.h \ loaderProcs.h \ sdksyms.sh @@ -18,7 +17,6 @@ libloader_la_SOURCES = \ loaderProcs.h \ loadext.c \ loadmod.c \ - dlloader.c \ os.c \ sdksyms.c libloader_la_LIBADD = $(DLOPEN_LIBS) diff --git a/hw/xfree86/loader/dlloader.c b/hw/xfree86/loader/dlloader.c deleted file mode 100644 index 18dcb76c6..000000000 --- a/hw/xfree86/loader/dlloader.c +++ /dev/null @@ -1,178 +0,0 @@ -/* - * Copyright (c) 1997 The XFree86 Project, Inc. - * - * Permission to use, copy, modify, distribute, and sell this software - * and its documentation for any purpose is hereby granted without - * fee, provided that the above copyright notice appear in all copies - * and that both that copyright notice and this permission notice - * appear in supporting documentation, and that the name of the - * XFree86 Project, Inc. not be used in advertising or publicity - * pertaining to distribution of the software without specific, - * written prior permission. The Xfree86 Project, Inc. makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied - * warranty. - * - * THE XFREE86 PROJECT, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO - * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS, IN NO EVENT SHALL THE XFREE86 PROJECT, INC. BE LIABLE - * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN - * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING - * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS - * SOFTWARE. - */ - -/* - * Once upon a time, X had multiple loader backends, three of which were - * essentially libdl reimplementations. This was nonsense so we chucked - * it, but we still retain the factorization between loader API and - * platform implementation. This file is the libdl implementation, and - * currently the only backend. If you find yourself porting to a platform - * without working libdl - hpux, win32, some forsaken a.out host, etc. - - * make a new backend rather than hacking up this file. - */ - -#ifdef HAVE_XORG_CONFIG_H -#include -#endif - -#include -#include -#include - -#include -#include "os.h" - -#include "loader.h" -#include "dlloader.h" - -#if defined(DL_LAZY) -#define DLOPEN_LAZY DL_LAZY -#elif defined(RTLD_LAZY) -#define DLOPEN_LAZY RTLD_LAZY -#elif defined(__FreeBSD__) -#define DLOPEN_LAZY 1 -#else -#define DLOPEN_LAZY 0 -#endif - -#if defined(LD_GLOBAL) -#define DLOPEN_GLOBAL LD_GLOBAL -#elif defined(RTLD_GLOBAL) -#define DLOPEN_GLOBAL RTLD_GLOBAL -#else -#define DLOPEN_GLOBAL 0 -#endif - -#if defined(CSRG_BASED) && !defined(__ELF__) -#define DLSYM_PREFIX "_" -#else -#define DLSYM_PREFIX "" -#endif - -/* Hooray, yet another open coded linked list! FIXME */ -typedef struct DLModuleList { - void *module; - struct DLModuleList *next; -} DLModuleList; - -static DLModuleList *dlModuleList = NULL; - -static void * -DLFindSymbolLocal(pointer module, const char *name) -{ - void *p; - char *n; - - static const char symPrefix[] = DLSYM_PREFIX; - - if (sizeof(symPrefix) > 1) { - n = malloc(strlen(symPrefix) + strlen(name) + 1); - sprintf(n, "%s%s", symPrefix, name); - name = n; - } - - p = dlsym(module, name); - - if (sizeof(symPrefix) > 1) - free(n); - - return p; -} - -static void *global_scope = NULL; - -void * -DLFindSymbol(const char *name) -{ - DLModuleList *l; - void *p; - - p = dlsym(RTLD_DEFAULT, name); - if (p != NULL) - return p; - - for (l = dlModuleList; l != NULL; l = l->next) { - p = DLFindSymbolLocal(l->module, name); - if (p) - return p; - } - - if (!global_scope) - global_scope = dlopen(NULL, DLOPEN_LAZY | DLOPEN_GLOBAL); - - if (global_scope) - return DLFindSymbolLocal(global_scope, name); - - return NULL; -} - -void * -DLLoadModule(loaderPtr modrec, int flags) -{ - void * dlfile; - DLModuleList *l; - int dlopen_flags; - - if (flags & LD_FLAG_GLOBAL) - dlopen_flags = DLOPEN_LAZY | DLOPEN_GLOBAL; - else - dlopen_flags = DLOPEN_LAZY; - dlfile = dlopen(modrec->name, dlopen_flags); - if (dlfile == NULL) { - ErrorF("dlopen: %s\n", dlerror()); - return NULL; - } - - l = malloc(sizeof(DLModuleList)); - l->module = dlfile; - l->next = dlModuleList; - dlModuleList = l; - - return (void *)dlfile; -} - -void -DLUnloadModule(void *modptr) -{ - DLModuleList *l, *p; - - /* remove it from dlModuleList. */ - if (dlModuleList->module == modptr) { - l = dlModuleList; - dlModuleList = l->next; - free(l); - } else { - p = dlModuleList; - for (l = dlModuleList->next; l != NULL; l = l->next) { - if (l->module == modptr) { - p->next = l->next; - free(l); - break; - } - p = l; - } - } - dlclose(modptr); -} diff --git a/hw/xfree86/loader/dlloader.h b/hw/xfree86/loader/dlloader.h deleted file mode 100644 index 8ae610f02..000000000 --- a/hw/xfree86/loader/dlloader.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 1997 Metro Link, Inc. - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of Metro Link, Inc. not be used in - * advertising or publicity pertaining to distribution of the software without - * specific, written prior permission. Metro Link, Inc. makes no - * representations about the suitability of this software for any purpose. - * It is provided "as is" without express or implied warranty. - * - * METRO LINK, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO - * EVENT SHALL METRO LINK, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER - * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - */ - -#ifdef HAVE_XORG_CONFIG_H -#include -#endif - -#ifndef _DLLOADER_H -#define _DLLOADER_H - -extern void *DLLoadModule(loaderPtr, int flags); -extern void DLUnloadModule(void *); -extern void *DLFindSymbol(const char *name); - -#endif diff --git a/hw/xfree86/loader/loader.c b/hw/xfree86/loader/loader.c index e043bb233..d51ea928f 100644 --- a/hw/xfree86/loader/loader.c +++ b/hw/xfree86/loader/loader.c @@ -75,6 +75,33 @@ #include "xf86Priv.h" #include "compiler.h" +#ifdef HAVE_DLFCN_H + +#include +#include + +#if defined(DL_LAZY) +#define DLOPEN_LAZY DL_LAZY +#elif defined(RTLD_LAZY) +#define DLOPEN_LAZY RTLD_LAZY +#elif defined(__FreeBSD__) +#define DLOPEN_LAZY 1 +#else +#define DLOPEN_LAZY 0 +#endif + +#if defined(LD_GLOBAL) +#define DLOPEN_GLOBAL LD_GLOBAL +#elif defined(RTLD_GLOBAL) +#define DLOPEN_GLOBAL RTLD_GLOBAL +#else +#define DLOPEN_GLOBAL 0 +#endif + +#else +#error i have no dynamic linker and i must scream +#endif + extern void *xorg_symbols[]; #define MAX_HANDLE 256 @@ -154,6 +181,27 @@ LoaderInit(void) #endif } +static void * +do_dlopen(loaderPtr modrec, int flags) +{ + void *dlfile; + int dlopen_flags; + + if (flags & LD_FLAG_GLOBAL) + dlopen_flags = DLOPEN_LAZY | DLOPEN_GLOBAL; + else + dlopen_flags = DLOPEN_LAZY; + + dlfile = dlopen(modrec->name, dlopen_flags); + + if (dlfile == NULL) { + ErrorF("dlopen: %s\n", dlerror()); + return NULL; + } + + return dlfile; +} + /* Public Interface to the loader. */ int @@ -217,7 +265,7 @@ LoaderOpen(const char *module, const char *cname, int handle, tmp->handle = new_handle; tmp->module = moduleseq++; - if ((tmp->private = DLLoadModule(tmp, flags)) == NULL) { + if ((tmp->private = do_dlopen(tmp, flags)) == NULL) { xf86Msg(X_ERROR, "Failed to load %s\n", module); _LoaderListPop(new_handle); refCount[new_handle] = 0; @@ -245,9 +293,29 @@ LoaderHandleOpen(int handle) } void * -LoaderSymbol(const char *sym) +LoaderSymbol(const char *name) { - return (DLFindSymbol(sym)); + static void *global_scope = NULL; + loaderPtr l; + void *p; + + p = dlsym(RTLD_DEFAULT, name); + if (p != NULL) + return p; + + for (l = listHead; l != NULL; l = l->next) { + p = dlsym(l->private, name); + if (p) + return p; + } + + if (!global_scope) + global_scope = dlopen(NULL, DLOPEN_LAZY | DLOPEN_GLOBAL); + + if (global_scope) + return dlsym(global_scope, name); + + return NULL; } int @@ -270,7 +338,7 @@ LoaderUnload(int handle) while ((tmp = _LoaderListPop(handle)) != NULL) { xf86Msg(X_INFO, "Unloading %s\n", tmp->name); - DLUnloadModule(tmp->private); + dlclose(tmp->private); free(tmp->name); free(tmp->cname); free(tmp); diff --git a/hw/xfree86/loader/loader.h b/hw/xfree86/loader/loader.h index 6121e02c6..9695c6c59 100644 --- a/hw/xfree86/loader/loader.h +++ b/hw/xfree86/loader/loader.h @@ -91,7 +91,4 @@ extern unsigned long LoaderOptions; int LoaderOpen(const char *, const char *, int, int *, int *, int *, int); int LoaderHandleOpen(int); -/* Loader backends. */ -#include "dlloader.h" - #endif /* _LOADER_H */ From 3a26e7f459764d4aee71b2d7e25b113b729b94ac Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Fri, 17 Sep 2010 07:55:48 -0400 Subject: [PATCH 079/125] loader: Remove unused module serial number Reviewed-by: Alan Coopersmith Reviewed-by: Julien Cristau Signed-off-by: Adam Jackson --- hw/xfree86/loader/loader.c | 3 --- hw/xfree86/loader/loader.h | 1 - 2 files changed, 4 deletions(-) diff --git a/hw/xfree86/loader/loader.c b/hw/xfree86/loader/loader.c index d51ea928f..580d05914 100644 --- a/hw/xfree86/loader/loader.c +++ b/hw/xfree86/loader/loader.c @@ -107,8 +107,6 @@ extern void *xorg_symbols[]; #define MAX_HANDLE 256 static int refCount[MAX_HANDLE]; -static int moduleseq = 0; - /* Prototypes for static functions. */ static loaderPtr listHead = NULL; @@ -263,7 +261,6 @@ LoaderOpen(const char *module, const char *cname, int handle, tmp->name = strdup(module); tmp->cname = strdup(cname); tmp->handle = new_handle; - tmp->module = moduleseq++; if ((tmp->private = do_dlopen(tmp, flags)) == NULL) { xf86Msg(X_ERROR, "Failed to load %s\n", module); diff --git a/hw/xfree86/loader/loader.h b/hw/xfree86/loader/loader.h index 9695c6c59..42e1518e6 100644 --- a/hw/xfree86/loader/loader.h +++ b/hw/xfree86/loader/loader.h @@ -67,7 +67,6 @@ typedef struct _loader *loaderPtr; typedef struct _loader { int handle; /* Unique id used to remove symbols from * this module when it is unloaded */ - int module; /* Unique id to identify compilation units */ char *name; char *cname; void *private; /* format specific data */ From 09929da50503b559459f5b722c11647c47857fdb Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Fri, 17 Sep 2010 08:16:51 -0400 Subject: [PATCH 080/125] loader: Remove unused canonical name field Reviewed-by: Alan Coopersmith Reviewed-by: Julien Cristau Signed-off-by: Adam Jackson --- hw/xfree86/loader/loader.c | 6 ++---- hw/xfree86/loader/loader.h | 3 +-- hw/xfree86/loader/loadmod.c | 3 +-- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/hw/xfree86/loader/loader.c b/hw/xfree86/loader/loader.c index 580d05914..878cb398d 100644 --- a/hw/xfree86/loader/loader.c +++ b/hw/xfree86/loader/loader.c @@ -174,7 +174,7 @@ LoaderInit(void) path = uwcrtpath; /* fallback: try to get libcrt.a from the uccs */ else path = xcrtpath; /* get the libcrt.a we compiled with */ - LoaderOpen (path, "libcrt", 0, &errmaj, &errmin, &wasLoaded); + LoaderOpen (path, 0, &errmaj, &errmin, &wasLoaded); } #endif } @@ -203,7 +203,7 @@ do_dlopen(loaderPtr modrec, int flags) /* Public Interface to the loader. */ int -LoaderOpen(const char *module, const char *cname, int handle, +LoaderOpen(const char *module, int handle, int *errmaj, int *errmin, int *wasLoaded, int flags) { loaderPtr tmp; @@ -259,7 +259,6 @@ LoaderOpen(const char *module, const char *cname, int handle, tmp = _LoaderListPush(); tmp->name = strdup(module); - tmp->cname = strdup(cname); tmp->handle = new_handle; if ((tmp->private = do_dlopen(tmp, flags)) == NULL) { @@ -337,7 +336,6 @@ LoaderUnload(int handle) xf86Msg(X_INFO, "Unloading %s\n", tmp->name); dlclose(tmp->private); free(tmp->name); - free(tmp->cname); free(tmp); } diff --git a/hw/xfree86/loader/loader.h b/hw/xfree86/loader/loader.h index 42e1518e6..9dfc30758 100644 --- a/hw/xfree86/loader/loader.h +++ b/hw/xfree86/loader/loader.h @@ -68,7 +68,6 @@ typedef struct _loader { int handle; /* Unique id used to remove symbols from * this module when it is unloaded */ char *name; - char *cname; void *private; /* format specific data */ loaderPtr next; } loaderRec; @@ -87,7 +86,7 @@ extern const ModuleVersions LoaderVersionInfo; extern unsigned long LoaderOptions; /* Internal Functions */ -int LoaderOpen(const char *, const char *, int, int *, int *, int *, int); +int LoaderOpen(const char *, int, int *, int *, int *, int); int LoaderHandleOpen(int); #endif /* _LOADER_H */ diff --git a/hw/xfree86/loader/loadmod.c b/hw/xfree86/loader/loadmod.c index 615e8c691..a9d04b832 100644 --- a/hw/xfree86/loader/loadmod.c +++ b/hw/xfree86/loader/loadmod.c @@ -926,8 +926,7 @@ doLoadModule(const char *module, const char *path, const char **subdirlist, *errmin = 0; goto LoadModule_fail; } - ret->handle = LoaderOpen(found, name, 0, - errmaj, errmin, &wasLoaded, flags); + ret->handle = LoaderOpen(found, 0, errmaj, errmin, &wasLoaded, flags); if (ret->handle < 0) goto LoadModule_fail; From 2f003fe49697f8343c052dff2b3752eace814ea7 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Fri, 17 Sep 2010 09:02:13 -0400 Subject: [PATCH 081/125] loader: Remove the handle field from LoaderOpen This was always 0 from all the callers. Reviewed-by: Alan Coopersmith Reviewed-by: Julien Cristau Signed-off-by: Adam Jackson --- hw/xfree86/loader/loader.c | 32 +++++++++++++++----------------- hw/xfree86/loader/loader.h | 2 +- hw/xfree86/loader/loadmod.c | 2 +- 3 files changed, 17 insertions(+), 19 deletions(-) diff --git a/hw/xfree86/loader/loader.c b/hw/xfree86/loader/loader.c index 878cb398d..baadbc416 100644 --- a/hw/xfree86/loader/loader.c +++ b/hw/xfree86/loader/loader.c @@ -174,7 +174,7 @@ LoaderInit(void) path = uwcrtpath; /* fallback: try to get libcrt.a from the uccs */ else path = xcrtpath; /* get the libcrt.a we compiled with */ - LoaderOpen (path, 0, &errmaj, &errmin, &wasLoaded); + LoaderOpen (path, &errmaj, &errmin, &wasLoaded, 0); } #endif } @@ -203,8 +203,8 @@ do_dlopen(loaderPtr modrec, int flags) /* Public Interface to the loader. */ int -LoaderOpen(const char *module, int handle, - int *errmaj, int *errmin, int *wasLoaded, int flags) +LoaderOpen(const char *module, int *errmaj, int *errmin, int *wasLoaded, + int flags) { loaderPtr tmp; int new_handle; @@ -214,22 +214,20 @@ LoaderOpen(const char *module, int handle, #endif /* Is the module already loaded? */ - if (handle >= 0) { - tmp = listHead; - while (tmp) { + tmp = listHead; + while (tmp) { #ifdef DEBUGLIST - ErrorF("strcmp(%x(%s),{%x} %x(%s))\n", module, module, - &(tmp->name), tmp->name, tmp->name); + ErrorF("strcmp(%x(%s),{%x} %x(%s))\n", module, module, + &(tmp->name), tmp->name, tmp->name); #endif - if (!strcmp(module, tmp->name)) { - refCount[tmp->handle]++; - if (wasLoaded) - *wasLoaded = 1; - xf86MsgVerb(X_INFO, 2, "Reloading %s\n", module); - return tmp->handle; - } - tmp = tmp->next; - } + if (!strcmp(module, tmp->name)) { + refCount[tmp->handle]++; + if (wasLoaded) + *wasLoaded = 1; + xf86MsgVerb(X_INFO, 2, "Reloading %s\n", module); + return tmp->handle; + } + tmp = tmp->next; } /* diff --git a/hw/xfree86/loader/loader.h b/hw/xfree86/loader/loader.h index 9dfc30758..4bb571e69 100644 --- a/hw/xfree86/loader/loader.h +++ b/hw/xfree86/loader/loader.h @@ -86,7 +86,7 @@ extern const ModuleVersions LoaderVersionInfo; extern unsigned long LoaderOptions; /* Internal Functions */ -int LoaderOpen(const char *, int, int *, int *, int *, int); +int LoaderOpen(const char *, int *, int *, int *, int); int LoaderHandleOpen(int); #endif /* _LOADER_H */ diff --git a/hw/xfree86/loader/loadmod.c b/hw/xfree86/loader/loadmod.c index a9d04b832..e41e0c8d9 100644 --- a/hw/xfree86/loader/loadmod.c +++ b/hw/xfree86/loader/loadmod.c @@ -926,7 +926,7 @@ doLoadModule(const char *module, const char *path, const char **subdirlist, *errmin = 0; goto LoadModule_fail; } - ret->handle = LoaderOpen(found, 0, errmaj, errmin, &wasLoaded, flags); + ret->handle = LoaderOpen(found, errmaj, errmin, &wasLoaded, flags); if (ret->handle < 0) goto LoadModule_fail; From 0438002cd238011f33dbf176c555de5e380ba77e Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Fri, 17 Sep 2010 09:13:04 -0400 Subject: [PATCH 082/125] loader: include cleanup Reviewed-by: Alan Coopersmith Reviewed-by: Julien Cristau Signed-off-by: Adam Jackson --- hw/xfree86/loader/loader.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/hw/xfree86/loader/loader.c b/hw/xfree86/loader/loader.c index baadbc416..22d8273d3 100644 --- a/hw/xfree86/loader/loader.c +++ b/hw/xfree86/loader/loader.c @@ -54,18 +54,10 @@ #include #include #include -#if defined(UseMMAP) || (defined(linux) && defined(__ia64__)) -#include -#endif #include #include #include #include -#if defined(linux) && \ - (defined(__alpha__) || defined(__powerpc__) || defined(__ia64__) \ - || defined(__amd64__)) -#include -#endif #include #include "os.h" From ab7f057ce9df4e905b12cebc1e587b9a7f200418 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Fri, 17 Sep 2010 11:19:17 -0400 Subject: [PATCH 083/125] loader: Remove a silly layer of reference counting libdl will refcount objects for us just fine, thanks. Reviewed-by: Alan Coopersmith Reviewed-by: Julien Cristau Signed-off-by: Adam Jackson --- hw/xfree86/loader/loader.c | 167 +++----------------------------- hw/xfree86/loader/loader.h | 18 +--- hw/xfree86/loader/loaderProcs.h | 5 +- hw/xfree86/loader/loadmod.c | 78 +++++++-------- 4 files changed, 51 insertions(+), 217 deletions(-) diff --git a/hw/xfree86/loader/loader.c b/hw/xfree86/loader/loader.c index 22d8273d3..89218312a 100644 --- a/hw/xfree86/loader/loader.c +++ b/hw/xfree86/loader/loader.c @@ -96,41 +96,6 @@ extern void *xorg_symbols[]; -#define MAX_HANDLE 256 -static int refCount[MAX_HANDLE]; - -/* Prototypes for static functions. */ -static loaderPtr listHead = NULL; - -static loaderPtr -_LoaderListPush(void) -{ - loaderPtr item = calloc(1, sizeof(struct _loader)); - - item->next = listHead; - listHead = item; - - return item; -} - -static loaderPtr -_LoaderListPop(int handle) -{ - loaderPtr item = listHead; - loaderPtr *bptr = &listHead; /* pointer to previous node */ - - while (item) { - if (item->handle == handle) { - *bptr = item->next; /* remove this from the list */ - return item; - } - bptr = &(item->next); - item = item->next; - } - - return 0; -} - void LoaderInit(void) { @@ -171,130 +136,41 @@ LoaderInit(void) #endif } -static void * -do_dlopen(loaderPtr modrec, int flags) -{ - void *dlfile; - int dlopen_flags; - - if (flags & LD_FLAG_GLOBAL) - dlopen_flags = DLOPEN_LAZY | DLOPEN_GLOBAL; - else - dlopen_flags = DLOPEN_LAZY; - - dlfile = dlopen(modrec->name, dlopen_flags); - - if (dlfile == NULL) { - ErrorF("dlopen: %s\n", dlerror()); - return NULL; - } - - return dlfile; -} - /* Public Interface to the loader. */ -int -LoaderOpen(const char *module, int *errmaj, int *errmin, int *wasLoaded, - int flags) +void * +LoaderOpen(const char *module, int *errmaj, int *errmin) { - loaderPtr tmp; - int new_handle; + void *ret; #if defined(DEBUG) ErrorF("LoaderOpen(%s)\n", module); #endif - /* Is the module already loaded? */ - tmp = listHead; - while (tmp) { -#ifdef DEBUGLIST - ErrorF("strcmp(%x(%s),{%x} %x(%s))\n", module, module, - &(tmp->name), tmp->name, tmp->name); -#endif - if (!strcmp(module, tmp->name)) { - refCount[tmp->handle]++; - if (wasLoaded) - *wasLoaded = 1; - xf86MsgVerb(X_INFO, 2, "Reloading %s\n", module); - return tmp->handle; - } - tmp = tmp->next; - } - - /* - * OK, it's a new one. Add it. - */ xf86Msg(X_INFO, "Loading %s\n", module); - if (wasLoaded) - *wasLoaded = 0; - /* - * Find a free handle. - */ - new_handle = 1; - while (new_handle < MAX_HANDLE && refCount[new_handle]) - new_handle++; - - if (new_handle == MAX_HANDLE) { - xf86Msg(X_ERROR, "Out of loader space\n"); /* XXX */ - if (errmaj) - *errmaj = LDR_NOSPACE; - if (errmin) - *errmin = LDR_NOSPACE; - return -1; - } - - refCount[new_handle] = 1; - - tmp = _LoaderListPush(); - tmp->name = strdup(module); - tmp->handle = new_handle; - - if ((tmp->private = do_dlopen(tmp, flags)) == NULL) { - xf86Msg(X_ERROR, "Failed to load %s\n", module); - _LoaderListPop(new_handle); - refCount[new_handle] = 0; + if (!(ret = dlopen(module, DLOPEN_LAZY | DLOPEN_GLOBAL))) { + xf86Msg(X_ERROR, "Failed to load %s: %s\n", module, dlerror()); if (errmaj) *errmaj = LDR_NOLOAD; if (errmin) *errmin = LDR_NOLOAD; - return -1; + return NULL; } - return new_handle; -} - -int -LoaderHandleOpen(int handle) -{ - if (handle < 0 || handle >= MAX_HANDLE) - return -1; - - if (!refCount[handle]) - return -1; - - refCount[handle]++; - return handle; + return ret; } void * LoaderSymbol(const char *name) { static void *global_scope = NULL; - loaderPtr l; void *p; p = dlsym(RTLD_DEFAULT, name); if (p != NULL) return p; - for (l = listHead; l != NULL; l = l->next) { - p = dlsym(l->private, name); - if (p) - return p; - } - if (!global_scope) global_scope = dlopen(NULL, DLOPEN_LAZY | DLOPEN_GLOBAL); @@ -304,32 +180,11 @@ LoaderSymbol(const char *name) return NULL; } -int -LoaderUnload(int handle) +void +LoaderUnload(const char *name, void *handle) { - loaderRec fakeHead; - loaderPtr tmp = &fakeHead; - - if (handle < 0 || handle >= MAX_HANDLE) - return -1; - - /* - * check the reference count, only free it if it goes to zero - */ - if (--refCount[handle]) - return 0; - /* - * find the loaderRecs associated with this handle. - */ - - while ((tmp = _LoaderListPop(handle)) != NULL) { - xf86Msg(X_INFO, "Unloading %s\n", tmp->name); - dlclose(tmp->private); - free(tmp->name); - free(tmp); - } - - return 0; + xf86Msg(X_INFO, "Unloading %s\n", name); + dlclose(handle); } unsigned long LoaderOptions = 0; diff --git a/hw/xfree86/loader/loader.h b/hw/xfree86/loader/loader.h index 4bb571e69..edea91133 100644 --- a/hw/xfree86/loader/loader.h +++ b/hw/xfree86/loader/loader.h @@ -57,21 +57,6 @@ #include #include -/* LoadModule proc flags; LD_FLAG_GLOBAL adds symbols to global - * namespace, default is to keep symbols local to module. */ -#define LD_FLAG_GLOBAL 1 - -typedef struct _loader *loaderPtr; - -/* Each module loaded has a loaderRec */ -typedef struct _loader { - int handle; /* Unique id used to remove symbols from - * this module when it is unloaded */ - char *name; - void *private; /* format specific data */ - loaderPtr next; -} loaderRec; - /* Compiled-in version information */ typedef struct { int xf86Version; @@ -86,7 +71,6 @@ extern const ModuleVersions LoaderVersionInfo; extern unsigned long LoaderOptions; /* Internal Functions */ -int LoaderOpen(const char *, int *, int *, int *, int); -int LoaderHandleOpen(int); +void * LoaderOpen(const char *, int *, int *); #endif /* _LOADER_H */ diff --git a/hw/xfree86/loader/loaderProcs.h b/hw/xfree86/loader/loaderProcs.h index a7925ecee..0b67c5f7a 100644 --- a/hw/xfree86/loader/loaderProcs.h +++ b/hw/xfree86/loader/loaderProcs.h @@ -60,7 +60,8 @@ typedef struct module_desc { struct module_desc *sib; struct module_desc *parent; char *name; - int handle; + char *path; + void *handle; ModuleSetupProc SetupProc; ModuleTearDownProc TearDownProc; void *TearDownData; /* returned from SetupProc */ @@ -81,7 +82,7 @@ void UnloadDriver(ModuleDescPtr); void LoaderSetPath(const char *path); void LoaderSortExtensions(void); -int LoaderUnload(int); +void LoaderUnload(const char *, void *); unsigned long LoaderGetModuleVersion(ModuleDescPtr mod); void LoaderResetOptions(void); diff --git a/hw/xfree86/loader/loadmod.c b/hw/xfree86/loader/loadmod.c index e41e0c8d9..6e6522774 100644 --- a/hw/xfree86/loader/loadmod.c +++ b/hw/xfree86/loader/loadmod.c @@ -83,8 +83,7 @@ static char *LoaderGetCanonicalName(const char *, PatternPtr); static void RemoveChild(ModuleDescPtr); static ModuleDescPtr doLoadModule(const char *, const char *, const char **, const char **, pointer, - const XF86ModReqInfo *, int *, int *, - int flags); + const XF86ModReqInfo *, int *, int *); const ModuleVersions LoaderVersionInfo = { XORG_VERSION_CURRENT, @@ -765,7 +764,7 @@ LoadSubModule(pointer _parent, const char *module, } submod = doLoadModule(module, NULL, subdirlist, patternlist, options, - modreq, errmaj, errmin, LD_FLAG_GLOBAL); + modreq, errmaj, errmin); if (submod && submod != (ModuleDescPtr) 1) { parent->child = AddSibling(parent->child, submod); submod->parent = parent; @@ -776,18 +775,10 @@ LoadSubModule(pointer _parent, const char *module, static ModuleDescPtr NewModuleDesc(const char *name) { - ModuleDescPtr mdp = malloc(sizeof(ModuleDesc)); + ModuleDescPtr mdp = calloc(1, sizeof(ModuleDesc)); - if (mdp) { - mdp->child = NULL; - mdp->sib = NULL; - mdp->parent = NULL; + if (mdp) mdp->name = xstrdup(name); - mdp->handle = -1; - mdp->SetupProc = NULL; - mdp->TearDownProc = NULL; - mdp->TearDownData = NULL; - } return mdp; } @@ -796,6 +787,7 @@ ModuleDescPtr DuplicateModule(ModuleDescPtr mod, ModuleDescPtr parent) { ModuleDescPtr ret; + int errmaj, errmin; if (!mod) return NULL; @@ -804,10 +796,11 @@ DuplicateModule(ModuleDescPtr mod, ModuleDescPtr parent) if (ret == NULL) return NULL; - if (LoaderHandleOpen(mod->handle) == -1) - return NULL; + if (!(ret->handle = LoaderOpen(mod->path, &errmaj, &errmin))) { + free(ret); + return NULL; + } - ret->handle = mod->handle; ret->SetupProc = mod->SetupProc; ret->TearDownProc = mod->TearDownProc; ret->TearDownData = NULL; @@ -815,6 +808,7 @@ DuplicateModule(ModuleDescPtr mod, ModuleDescPtr parent) ret->sib = DuplicateModule(mod->sib, parent); ret->parent = parent; ret->VersionInfo = mod->VersionInfo; + ret->path = strdup(mod->path); return ret; } @@ -830,7 +824,7 @@ static ModuleDescPtr doLoadModule(const char *module, const char *path, const char **subdirlist, const char **patternlist, pointer options, const XF86ModReqInfo * modreq, - int *errmaj, int *errmin, int flags) + int *errmaj, int *errmin) { XF86ModuleData *initdata = NULL; char **pathlist = NULL; @@ -839,7 +833,6 @@ doLoadModule(const char *module, const char *path, const char **subdirlist, char **path_elem = NULL; char *p = NULL; ModuleDescPtr ret = NULL; - int wasLoaded = 0; PatternPtr patterns = NULL; int noncanonical = 0; char *m = NULL; @@ -926,9 +919,10 @@ doLoadModule(const char *module, const char *path, const char **subdirlist, *errmin = 0; goto LoadModule_fail; } - ret->handle = LoaderOpen(found, errmaj, errmin, &wasLoaded, flags); + ret->handle = LoaderOpen(found, errmaj, errmin); if (ret->handle < 0) goto LoadModule_fail; + ret->path = strdup(found); /* drop any explicit suffix from the module name */ p = strchr(name, '.'); @@ -959,26 +953,24 @@ doLoadModule(const char *module, const char *path, const char **subdirlist, setup = initdata->setup; teardown = initdata->teardown; - if (!wasLoaded) { - if (vers) { - if (!CheckVersion(module, vers, modreq)) { - if (errmaj) - *errmaj = LDR_MISMATCH; - if (errmin) - *errmin = 0; - goto LoadModule_fail; - } - } else { - xf86Msg(X_ERROR, - "LoadModule: Module %s does not supply" - " version information\n", module); - if (errmaj) - *errmaj = LDR_INVALID; - if (errmin) - *errmin = 0; - goto LoadModule_fail; - } - } + if (vers) { + if (!CheckVersion(module, vers, modreq)) { + if (errmaj) + *errmaj = LDR_MISMATCH; + if (errmin) + *errmin = 0; + goto LoadModule_fail; + } + } else { + xf86Msg(X_ERROR, + "LoadModule: Module %s does not supply" + " version information\n", module); + if (errmaj) + *errmaj = LDR_INVALID; + if (errmin) + *errmin = 0; + goto LoadModule_fail; + } if (setup) ret->SetupProc = setup; if (teardown) @@ -1066,7 +1058,7 @@ LoadModule(const char *module, const char *path, const char **subdirlist, const XF86ModReqInfo * modreq, int *errmaj, int *errmin) { return doLoadModule(module, path, subdirlist, patternlist, options, - modreq, errmaj, errmin, LD_FLAG_GLOBAL); + modreq, errmaj, errmin); } void @@ -1088,12 +1080,13 @@ UnloadModuleOrDriver(ModuleDescPtr mod) if ((mod->TearDownProc) && (mod->TearDownData)) mod->TearDownProc(mod->TearDownData); - LoaderUnload(mod->handle); + LoaderUnload(mod->name, mod->handle); if (mod->child) UnloadModuleOrDriver(mod->child); if (mod->sib) UnloadModuleOrDriver(mod->sib); + free(mod->path); free(mod->name); free(mod); } @@ -1110,13 +1103,14 @@ UnloadSubModule(pointer _mod) if ((mod->TearDownProc) && (mod->TearDownData)) mod->TearDownProc(mod->TearDownData); - LoaderUnload(mod->handle); + LoaderUnload(mod->name, mod->handle); RemoveChild(mod); if (mod->child) UnloadModuleOrDriver(mod->child); + free(mod->path); free(mod->name); free(mod); } From 6130170e7e9b64c611ee942ec3455dd1a185193d Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Sat, 18 Sep 2010 06:41:35 -0400 Subject: [PATCH 084/125] xfree86: Remove unused refcounting from input drivers Reviewed-by: Alan Coopersmith Reviewed-by: Julien Cristau Signed-off-by: Adam Jackson --- hw/xfree86/common/xf86Helper.c | 5 ----- hw/xfree86/common/xf86Xinput.h | 1 - 2 files changed, 6 deletions(-) diff --git a/hw/xfree86/common/xf86Helper.c b/hw/xfree86/common/xf86Helper.c index 90e0c6702..0172acec2 100644 --- a/hw/xfree86/common/xf86Helper.c +++ b/hw/xfree86/common/xf86Helper.c @@ -125,7 +125,6 @@ xf86AddInputDriver(InputDriverPtr driver, pointer module, int flags) xnfalloc(sizeof(InputDriverRec)); *xf86InputDriverList[xf86NumInputDrivers - 1] = *driver; xf86InputDriverList[xf86NumInputDrivers - 1]->module = module; - xf86InputDriverList[xf86NumInputDrivers - 1]->refCount = 0; } void @@ -284,7 +283,6 @@ xf86AllocateInput(InputDriverPtr drv, int flags) return NULL; new->drv = drv; - drv->refCount++; new->module = DuplicateModule(drv->module, NULL); for (prev = &xf86InputDevs; *prev; prev = &(*prev)->next) @@ -320,9 +318,6 @@ xf86DeleteInput(InputInfoPtr pInp, int flags) if (pInp->module) UnloadModule(pInp->module); - if (pInp->drv) - pInp->drv->refCount--; - /* This should *really* be handled in drv->UnInit(dev) call instead, but * if the driver forgets about it make sure we free it or at least crash * with flying colors */ diff --git a/hw/xfree86/common/xf86Xinput.h b/hw/xfree86/common/xf86Xinput.h index 20a3f1bab..7b60cdfea 100644 --- a/hw/xfree86/common/xf86Xinput.h +++ b/hw/xfree86/common/xf86Xinput.h @@ -103,7 +103,6 @@ typedef struct _InputDriverRec { struct _LocalDeviceRec *pInfo, int flags); pointer module; - int refCount; } InputDriverRec, *InputDriverPtr; /* This is to input devices what the ScrnInfoRec is to screens. */ From 682a3ee60867da027fe1bcda0c8587dd3db9d58e Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Sat, 18 Sep 2010 07:27:13 -0400 Subject: [PATCH 085/125] xfree86: Remove useless module setup functions where appropriate Reviewed-by: Alan Coopersmith Reviewed-by: Julien Cristau Signed-off-by: Adam Jackson --- hw/xfree86/fbdevhw/fbdevhw.c | 10 +--------- hw/xfree86/i2c/bt829_module.c | 9 +-------- hw/xfree86/i2c/fi1236_module.c | 9 +-------- hw/xfree86/i2c/msp3430_module.c | 9 +-------- hw/xfree86/i2c/tda8425_module.c | 9 +-------- hw/xfree86/i2c/tda9850_module.c | 9 +-------- hw/xfree86/i2c/tda9885_module.c | 9 +-------- hw/xfree86/i2c/uda1380_module.c | 9 +-------- hw/xfree86/int10/xf86int10module.c | 23 +---------------------- hw/xfree86/vbe/vbe_module.c | 10 +--------- 10 files changed, 10 insertions(+), 96 deletions(-) diff --git a/hw/xfree86/fbdevhw/fbdevhw.c b/hw/xfree86/fbdevhw/fbdevhw.c index f50d562ca..a5b59e762 100644 --- a/hw/xfree86/fbdevhw/fbdevhw.c +++ b/hw/xfree86/fbdevhw/fbdevhw.c @@ -21,8 +21,6 @@ #define PAGE_MASK (~(getpagesize() - 1)) -static MODULESETUPPROTO(fbdevhwSetup); - static XF86ModuleVersionInfo fbdevHWVersRec = { "fbdevhw", @@ -39,16 +37,10 @@ static XF86ModuleVersionInfo fbdevHWVersRec = _X_EXPORT XF86ModuleData fbdevhwModuleData = { &fbdevHWVersRec, - fbdevhwSetup, + NULL, NULL }; -static pointer -fbdevhwSetup(pointer module, pointer opts, int *errmaj, int *errmin) -{ - return (pointer)1; -} - #include #include #include diff --git a/hw/xfree86/i2c/bt829_module.c b/hw/xfree86/i2c/bt829_module.c index c885b8e10..d87dfa7a0 100644 --- a/hw/xfree86/i2c/bt829_module.c +++ b/hw/xfree86/i2c/bt829_module.c @@ -4,8 +4,6 @@ #include "xf86Module.h" -static MODULESETUPPROTO(bt829Setup); - static XF86ModuleVersionInfo bt829VersRec = { "bt829", @@ -20,9 +18,4 @@ static XF86ModuleVersionInfo bt829VersRec = {0,0,0,0} }; -_X_EXPORT XF86ModuleData bt829ModuleData = { &bt829VersRec, bt829Setup, NULL }; - -static pointer -bt829Setup(pointer module, pointer opts, int *errmaj, int *errmin) { - return (pointer)1; -} +_X_EXPORT XF86ModuleData bt829ModuleData = { &bt829VersRec, NULL, NULL }; diff --git a/hw/xfree86/i2c/fi1236_module.c b/hw/xfree86/i2c/fi1236_module.c index 4016ad0d4..a63f92253 100644 --- a/hw/xfree86/i2c/fi1236_module.c +++ b/hw/xfree86/i2c/fi1236_module.c @@ -4,8 +4,6 @@ #include "xf86Module.h" -static MODULESETUPPROTO(fi1236Setup); - static XF86ModuleVersionInfo fi1236VersRec = { "fi1236", @@ -22,11 +20,6 @@ static XF86ModuleVersionInfo fi1236VersRec = _X_EXPORT XF86ModuleData fi1236ModuleData = { &fi1236VersRec, - fi1236Setup, + NULL, NULL }; - -static pointer -fi1236Setup(pointer module, pointer opts, int *errmaj, int *errmin) { - return (pointer)1; -} diff --git a/hw/xfree86/i2c/msp3430_module.c b/hw/xfree86/i2c/msp3430_module.c index 66b14a277..2ebf1f7b6 100644 --- a/hw/xfree86/i2c/msp3430_module.c +++ b/hw/xfree86/i2c/msp3430_module.c @@ -4,8 +4,6 @@ #include "xf86Module.h" -static MODULESETUPPROTO(msp3430Setup); - static XF86ModuleVersionInfo msp3430VersRec = { "msp3430", @@ -22,11 +20,6 @@ static XF86ModuleVersionInfo msp3430VersRec = _X_EXPORT XF86ModuleData msp3430ModuleData = { &msp3430VersRec, - msp3430Setup, + NULL, NULL }; - -static pointer -msp3430Setup(pointer module, pointer opts, int *errmaj, int *errmin) { - return (pointer)1; -} diff --git a/hw/xfree86/i2c/tda8425_module.c b/hw/xfree86/i2c/tda8425_module.c index 7906e5ea5..ef301b70b 100644 --- a/hw/xfree86/i2c/tda8425_module.c +++ b/hw/xfree86/i2c/tda8425_module.c @@ -4,8 +4,6 @@ #include "xf86Module.h" -static MODULESETUPPROTO(tda8425Setup); - static XF86ModuleVersionInfo tda8425VersRec = { "tda8425", @@ -22,11 +20,6 @@ static XF86ModuleVersionInfo tda8425VersRec = _X_EXPORT XF86ModuleData tda8425ModuleData = { &tda8425VersRec, - tda8425Setup, + NULL, NULL }; - -static pointer -tda8425Setup(pointer module, pointer opts, int *errmaj, int *errmin) { - return (pointer)1; -} diff --git a/hw/xfree86/i2c/tda9850_module.c b/hw/xfree86/i2c/tda9850_module.c index 84f7e861e..8256e7862 100644 --- a/hw/xfree86/i2c/tda9850_module.c +++ b/hw/xfree86/i2c/tda9850_module.c @@ -4,8 +4,6 @@ #include "xf86Module.h" -static MODULESETUPPROTO(tda9850Setup); - static XF86ModuleVersionInfo tda9850VersRec = { "tda9850", @@ -22,11 +20,6 @@ static XF86ModuleVersionInfo tda9850VersRec = _X_EXPORT XF86ModuleData tda9850ModuleData = { &tda9850VersRec, - tda9850Setup, + NULL, NULL }; - -static pointer -tda9850Setup(pointer module, pointer opts, int *errmaj, int *errmin) { - return (pointer)1; -} diff --git a/hw/xfree86/i2c/tda9885_module.c b/hw/xfree86/i2c/tda9885_module.c index 0ce85bba3..3394c184f 100644 --- a/hw/xfree86/i2c/tda9885_module.c +++ b/hw/xfree86/i2c/tda9885_module.c @@ -4,8 +4,6 @@ #include "xf86Module.h" -static MODULESETUPPROTO(tda9885Setup); - static XF86ModuleVersionInfo tda9885VersRec = { "tda9885", @@ -22,11 +20,6 @@ static XF86ModuleVersionInfo tda9885VersRec = _X_EXPORT XF86ModuleData tda9885ModuleData = { &tda9885VersRec, - tda9885Setup, + NULL, NULL }; - -static pointer -tda9885Setup(pointer module, pointer opts, int *errmaj, int *errmin) { - return (pointer)1; -} diff --git a/hw/xfree86/i2c/uda1380_module.c b/hw/xfree86/i2c/uda1380_module.c index 895f8c6f2..67b623ea0 100644 --- a/hw/xfree86/i2c/uda1380_module.c +++ b/hw/xfree86/i2c/uda1380_module.c @@ -4,8 +4,6 @@ #include "xf86Module.h" -static MODULESETUPPROTO(uda1380Setup); - static XF86ModuleVersionInfo uda1380VersRec = { "uda1380", @@ -22,11 +20,6 @@ static XF86ModuleVersionInfo uda1380VersRec = _X_EXPORT XF86ModuleData uda1380ModuleData = { &uda1380VersRec, - uda1380Setup, + NULL, NULL }; - -static pointer -uda1380Setup(pointer module, pointer opts, int *errmaj, int *errmin) { - return (pointer)1; -} diff --git a/hw/xfree86/int10/xf86int10module.c b/hw/xfree86/int10/xf86int10module.c index b4e5865da..41e349e7a 100644 --- a/hw/xfree86/int10/xf86int10module.c +++ b/hw/xfree86/int10/xf86int10module.c @@ -22,8 +22,6 @@ #define combine(a,b) concat(a,b) #define NAME(x) combine(MOD_NAME,x) -static MODULESETUPPROTO(NAME(Setup)); - static XF86ModuleVersionInfo NAME(VersRec) = { STRING(NAME( )), @@ -40,25 +38,6 @@ static XF86ModuleVersionInfo NAME(VersRec) = _X_EXPORT XF86ModuleData NAME(ModuleData) = { &NAME(VersRec), - NAME(Setup), + NULL, NULL }; - -static pointer -NAME(Setup)(pointer module, pointer opts, int *errmaj, int *errmin) -{ - static Bool setupDone = FALSE; - - if (!setupDone) { - setupDone = TRUE; - /* - * Tell the loader about symbols from other modules that this module - * might refer to. - */ - } - /* - * The return value must be non-NULL on success even though there - * is no TearDownProc. - */ - return (pointer)1; -} diff --git a/hw/xfree86/vbe/vbe_module.c b/hw/xfree86/vbe/vbe_module.c index cf37ef951..e8f2e7490 100644 --- a/hw/xfree86/vbe/vbe_module.c +++ b/hw/xfree86/vbe/vbe_module.c @@ -6,8 +6,6 @@ #include "xf86str.h" #include "vbe.h" -static MODULESETUPPROTO(vbeSetup); - static XF86ModuleVersionInfo vbeVersRec = { "vbe", @@ -22,10 +20,4 @@ static XF86ModuleVersionInfo vbeVersRec = {0,0,0,0} }; -_X_EXPORT XF86ModuleData vbeModuleData = { &vbeVersRec, vbeSetup, NULL }; - -static pointer -vbeSetup(pointer module, pointer opts, int *errmaj, int *errmin) -{ - return (pointer)1; -} +_X_EXPORT XF86ModuleData vbeModuleData = { &vbeVersRec, NULL, NULL }; From d52799f67f590b0f91b521cd2bdf5a5a8a229c96 Mon Sep 17 00:00:00 2001 From: Macpaul Lin Date: Tue, 21 Sep 2010 15:13:30 +0800 Subject: [PATCH 086/125] xfree86: nds32: add nds32 related definitions into include headers. Add MSB/LSB related definitions into include/servermd.h Signed-off-by: Macpaul Lin Acked-by: Tiago Vignatti Signed-off-by: Keith Packard --- include/servermd.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/include/servermd.h b/include/servermd.h index e1d644e00..271d936f4 100644 --- a/include/servermd.h +++ b/include/servermd.h @@ -84,6 +84,27 @@ SOFTWARE. #endif /* __arm32__ */ +#if defined(__nds32__) + +#define IMAGE_BYTE_ORDER LSBFirst + +#if defined(XF86MONOVGA) || defined(XF86VGA16) || defined(XF86MONO) +# define BITMAP_BIT_ORDER MSBFirst +#else +# define BITMAP_BIT_ORDER LSBFirst +#endif + +#if defined(XF86MONOVGA) || defined(XF86VGA16) +# define BITMAP_SCANLINE_UNIT 8 +#endif + +#define GLYPHPADBYTES 4 +#define GETLEFTBITS_ALIGNMENT 1 +#define LARGE_INSTRUCTION_CACHE +#define AVOID_MEMORY_READ + +#endif /* __nds32__ */ + #if defined __hppa__ #define IMAGE_BYTE_ORDER MSBFirst From 22376aa7aa44464636b12ee1d61b94e52ca02b0f Mon Sep 17 00:00:00 2001 From: Macpaul Lin Date: Tue, 21 Sep 2010 15:13:31 +0800 Subject: [PATCH 087/125] xfree86: nds32: add nds32 definition for support linux video related io. Add __nds32__ definitions for supporing correct io method for lnx_video.c Signed-off-by: Macpaul Lin Acked-by: Tiago Vignatti Signed-off-by: Keith Packard --- hw/xfree86/os-support/linux/lnx_video.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hw/xfree86/os-support/linux/lnx_video.c b/hw/xfree86/os-support/linux/lnx_video.c index bdd2639ba..b97757c9b 100644 --- a/hw/xfree86/os-support/linux/lnx_video.c +++ b/hw/xfree86/os-support/linux/lnx_video.c @@ -61,6 +61,7 @@ static Bool ExtendedEnabled = FALSE; !defined(__mc68000__) && \ !defined(__sparc__) && \ !defined(__mips__) && \ + !defined(__nds32__) && \ !defined(__arm__) /* @@ -519,7 +520,7 @@ xf86EnableIO(void) #endif } close(fd); -#elif !defined(__mc68000__) && !defined(__sparc__) && !defined(__mips__) && !defined(__sh__) && !defined(__hppa__) && !defined(__s390__) && !defined(__arm__) && !defined(__m32r__) +#elif !defined(__mc68000__) && !defined(__sparc__) && !defined(__mips__) && !defined(__sh__) && !defined(__hppa__) && !defined(__s390__) && !defined(__arm__) && !defined(__m32r__) && !defined(__nds32__) if (ioperm(0, 1024, 1) || iopl(3)) { if (errno == ENODEV) ErrorF("xf86EnableIOPorts: no I/O ports found\n"); @@ -546,7 +547,7 @@ xf86DisableIO(void) #if defined(__powerpc__) munmap(ioBase, 0x20000); ioBase = NULL; -#elif !defined(__mc68000__) && !defined(__sparc__) && !defined(__mips__) && !defined(__sh__) && !defined(__hppa__) && !defined(__arm__) && !defined(__s390__) && !defined(__m32r__) +#elif !defined(__mc68000__) && !defined(__sparc__) && !defined(__mips__) && !defined(__sh__) && !defined(__hppa__) && !defined(__arm__) && !defined(__s390__) && !defined(__m32r__) && !defined(__nds32__) iopl(0); ioperm(0, 1024, 0); #endif From 2b24b2bd859a4b4b8ccaf3b7d1b529dcda2d3b94 Mon Sep 17 00:00:00 2001 From: Macpaul Lin Date: Tue, 21 Sep 2010 15:13:32 +0800 Subject: [PATCH 088/125] xfree86: nds32: add nds32 definition for vgaHW support. Add __nds32__ definitions for vgaHW support. Signed-off-by: Macpaul Lin Acked-by: Tiago Vignatti Signed-off-by: Keith Packard --- hw/xfree86/vgahw/vgaHW.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/xfree86/vgahw/vgaHW.h b/hw/xfree86/vgahw/vgaHW.h index 7e63492d8..b31c00739 100644 --- a/hw/xfree86/vgahw/vgaHW.h +++ b/hw/xfree86/vgahw/vgaHW.h @@ -174,7 +174,7 @@ typedef struct _vgaHWRec { #define BITS_PER_GUN 6 #define COLORMAP_SIZE 256 -#if defined(__powerpc__) || defined(__arm__) || defined(__s390__) +#if defined(__powerpc__) || defined(__arm__) || defined(__s390__) || defined(__nds32__) #define DACDelay(hw) /* No legacy VGA support */ #else #define DACDelay(hw) \ From 28e6de66b42062a885ba38416387f2dbc15707fd Mon Sep 17 00:00:00 2001 From: Macpaul Lin Date: Tue, 21 Sep 2010 15:13:33 +0800 Subject: [PATCH 089/125] xfree86: nds32: add nds32 support for compiler specific codes Add nds32 definitions and related assembly codes to compiler header files. Signed-off-by: Macpaul Lin Acked-by: Tiago Vignatti Signed-off-by: Keith Packard --- hw/xfree86/common/compiler.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/xfree86/common/compiler.h b/hw/xfree86/common/compiler.h index ded71ee22..d037c8450 100644 --- a/hw/xfree86/common/compiler.h +++ b/hw/xfree86/common/compiler.h @@ -103,7 +103,7 @@ # if defined(NO_INLINE) || defined(DO_PROTOTYPES) # if !defined(__arm__) -# if !defined(__sparc__) && !defined(__sparc) && !defined(__arm32__) \ +# if !defined(__sparc__) && !defined(__sparc) && !defined(__arm32__) && !defined(__nds32__) \ && !(defined(__alpha__) && defined(linux)) \ && !(defined(__ia64__) && defined(linux)) \ @@ -114,7 +114,7 @@ extern _X_EXPORT unsigned int inb(unsigned short); extern _X_EXPORT unsigned int inw(unsigned short); extern _X_EXPORT unsigned int inl(unsigned short); -# else /* __sparc__, __arm32__, __alpha__*/ +# else /* __sparc__, __arm32__, __alpha__, __nds32__ */ extern _X_EXPORT void outb(unsigned long, unsigned char); extern _X_EXPORT void outw(unsigned long, unsigned short); @@ -123,7 +123,7 @@ extern _X_EXPORT unsigned int inb(unsigned long); extern _X_EXPORT unsigned int inw(unsigned long); extern _X_EXPORT unsigned int inl(unsigned long); -# endif /* __sparc__, __arm32__, __alpha__ */ +# endif /* __sparc__, __arm32__, __alpha__, __nds32__ */ # endif /* __arm__ */ # if defined(__powerpc__) && !defined(__OpenBSD__) From 58bd317e29f4abf7f950891339d2a6a78ddf7903 Mon Sep 17 00:00:00 2001 From: Macpaul Lin Date: Tue, 21 Sep 2010 15:13:34 +0800 Subject: [PATCH 090/125] xfree86: nds32: add nds32 support for compiler related mmio codes Add nds32 support for compiler related mmio codes. It includes byte-swap or non-swap operations. Signed-off-by: Macpaul Lin Acked-by: Tiago Vignatti Signed-off-by: Keith Packard --- hw/xfree86/common/compiler.h | 410 +++++++++++++++++++++++++++++++++++ 1 file changed, 410 insertions(+) diff --git a/hw/xfree86/common/compiler.h b/hw/xfree86/common/compiler.h index d037c8450..958f8d027 100644 --- a/hw/xfree86/common/compiler.h +++ b/hw/xfree86/common/compiler.h @@ -1018,6 +1018,355 @@ xf_outl(unsigned short port, unsigned int val) #define outw xf_outw #define outl xf_outl +# elif defined(__nds32__) + +/* + * Assume all port access are aligned. We need to revise this implementation + * if there is unaligned port access. For ldq_u, ldl_u, ldw_u, stq_u, stl_u and + * stw_u, they are assumed unaligned. + */ + +#define barrier() /* no barrier */ + +#define PORT_SIZE long + +static __inline__ unsigned char +xf86ReadMmio8(__volatile__ void *base, const unsigned long offset) +{ + return *(volatile unsigned char *)((unsigned char *)base + offset) ; +} + +static __inline__ void +xf86WriteMmio8(__volatile__ void *base, const unsigned long offset, + const unsigned int val) +{ + *(volatile unsigned char *)((unsigned char *)base + offset) = val ; + barrier(); +} + +static __inline__ void +xf86WriteMmio8NB(__volatile__ void *base, const unsigned long offset, + const unsigned int val) +{ + *(volatile unsigned char *)((unsigned char *)base + offset) = val ; +} + +static __inline__ unsigned short +xf86ReadMmio16Swap(__volatile__ void *base, const unsigned long offset) +{ + unsigned long addr = ((unsigned long)base) + offset; + unsigned short ret; + + __asm__ __volatile__( + "lhi %0, [%1];\n\t" + "wsbh %0, %0;\n\t" + : "=r" (ret) + : "r" (addr)); + return ret; +} + +static __inline__ unsigned short +xf86ReadMmio16(__volatile__ void *base, const unsigned long offset) +{ + return *(volatile unsigned short *)((char *)base + offset) ; +} + +static __inline__ void +xf86WriteMmio16Swap(__volatile__ void *base, const unsigned long offset, + const unsigned int val) +{ + unsigned long addr = ((unsigned long)base) + offset; + + __asm__ __volatile__( + "wsbh %0, %0;\n\t" + "shi %0, [%1];\n\t" + : /* No outputs */ + : "r" (val), "r" (addr)); + barrier(); +} + +static __inline__ void +xf86WriteMmio16(__volatile__ void *base, const unsigned long offset, + const unsigned int val) +{ + *(volatile unsigned short *)((unsigned char *)base + offset) = val ; + barrier(); +} + +static __inline__ void +xf86WriteMmio16SwapNB(__volatile__ void *base, const unsigned long offset, + const unsigned int val) +{ + unsigned long addr = ((unsigned long)base) + offset; + + __asm__ __volatile__( + "wsbh %0, %0;\n\t" + "shi %0, [%1];\n\t" + : /* No outputs */ + : "r" (val), "r" (addr)); +} + +static __inline__ void +xf86WriteMmio16NB(__volatile__ void *base, const unsigned long offset, + const unsigned int val) +{ + *(volatile unsigned short *)((unsigned char *)base + offset) = val ; +} + +static __inline__ unsigned int +xf86ReadMmio32Swap(__volatile__ void *base, const unsigned long offset) +{ + unsigned long addr = ((unsigned long)base) + offset; + unsigned int ret; + + __asm__ __volatile__( + "lwi %0, [%1];\n\t" + "wsbh %0, %0;\n\t" + "rotri %0, %0, 16;\n\t" + : "=r" (ret) + : "r" (addr)); + return ret; +} + +static __inline__ unsigned int +xf86ReadMmio32(__volatile__ void *base, const unsigned long offset) +{ + return *(volatile unsigned int *)((unsigned char *)base + offset) ; +} + +static __inline__ void +xf86WriteMmio32Swap(__volatile__ void *base, const unsigned long offset, + const unsigned int val) +{ + unsigned long addr = ((unsigned long)base) + offset; + + __asm__ __volatile__( + "wsbh %0, %0;\n\t" + "rotri %0, %0, 16;\n\t" + "swi %0, [%1];\n\t" + : /* No outputs */ + : "r" (val), "r" (addr)); + barrier(); +} + +static __inline__ void +xf86WriteMmio32(__volatile__ void *base, const unsigned long offset, + const unsigned int val) +{ + *(volatile unsigned int *)((unsigned char *)base + offset) = val ; + barrier(); +} + +static __inline__ void +xf86WriteMmio32SwapNB(__volatile__ void *base, const unsigned long offset, + const unsigned int val) +{ + unsigned long addr = ((unsigned long)base) + offset; + + __asm__ __volatile__( + "wsbh %0, %0;\n\t" + "rotri %0, %0, 16;\n\t" + "swi %0, [%1];\n\t" + : /* No outputs */ + : "r" (val), "r" (addr)); +} + +static __inline__ void +xf86WriteMmio32NB(__volatile__ void *base, const unsigned long offset, + const unsigned int val) +{ + *(volatile unsigned int *)((unsigned char *)base + offset) = val ; +} + +# if defined(NDS32_MMIO_SWAP) +static __inline__ void +outb(unsigned PORT_SIZE port, unsigned char val) +{ + xf86WriteMmio8(IOPortBase, port, val); +} + +static __inline__ void +outw(unsigned PORT_SIZE port, unsigned short val) +{ + xf86WriteMmio16Swap(IOPortBase, port, val); +} + +static __inline__ void +outl(unsigned PORT_SIZE port, unsigned int val) +{ + xf86WriteMmio32Swap(IOPortBase, port, val); +} + +static __inline__ unsigned int +inb(unsigned PORT_SIZE port) +{ + return xf86ReadMmio8(IOPortBase, port); +} + +static __inline__ unsigned int +inw(unsigned PORT_SIZE port) +{ + return xf86ReadMmio16Swap(IOPortBase, port); +} + +static __inline__ unsigned int +inl(unsigned PORT_SIZE port) +{ + return xf86ReadMmio32Swap(IOPortBase, port); +} + +static __inline__ unsigned long ldq_u(unsigned long *p) +{ + unsigned long addr = (unsigned long)p; + unsigned int ret; + + __asm__ __volatile__( + "lmw.bi %0, [%1], %0, 0;\n\t" + "wsbh %0, %0;\n\t" + "rotri %0, %0, 16;\n\t" + : "=r" (ret) + : "r" (addr)); + return ret; +} + +static __inline__ unsigned long ldl_u(unsigned int *p) +{ + unsigned long addr = (unsigned long)p; + unsigned int ret; + + __asm__ __volatile__( + "lmw.bi %0, [%1], %0, 0;\n\t" + "wsbh %0, %0;\n\t" + "rotri %0, %0, 16;\n\t" + : "=r" (ret) + : "r" (addr)); + return ret; +} + +static __inline__ void stq_u(unsigned long val, unsigned long *p) +{ + unsigned long addr = (unsigned long)p; + + __asm__ __volatile__( + "wsbh %0, %0;\n\t" + "rotri %0, %0, 16;\n\t" + "smw.bi %0, [%1], %0, 0;\n\t" + : /* No outputs */ + : "r" (val), "r" (addr)); +} + +static __inline__ void stl_u(unsigned long val, unsigned int *p) +{ + unsigned long addr = (unsigned long)p; + + __asm__ __volatile__( + "wsbh %0, %0;\n\t" + "rotri %0, %0, 16;\n\t" + "smw.bi %0, [%1], %0, 0;\n\t" + : /* No outputs */ + : "r" (val), "r" (addr)); +} + +# else /* !NDS32_MMIO_SWAP */ +static __inline__ void +outb(unsigned PORT_SIZE port, unsigned char val) +{ + *(volatile unsigned char*)(((unsigned PORT_SIZE)(port))) = val; + barrier(); +} + +static __inline__ void +outw(unsigned PORT_SIZE port, unsigned short val) +{ + *(volatile unsigned short*)(((unsigned PORT_SIZE)(port))) = val; + barrier(); +} + +static __inline__ void +outl(unsigned PORT_SIZE port, unsigned int val) +{ + *(volatile unsigned int*)(((unsigned PORT_SIZE)(port))) = val; + barrier(); +} +static __inline__ unsigned int +inb(unsigned PORT_SIZE port) +{ + return *(volatile unsigned char*)(((unsigned PORT_SIZE)(port))); +} + +static __inline__ unsigned int +inw(unsigned PORT_SIZE port) +{ + return *(volatile unsigned short*)(((unsigned PORT_SIZE)(port))); +} + +static __inline__ unsigned int +inl(unsigned PORT_SIZE port) +{ + return *(volatile unsigned int*)(((unsigned PORT_SIZE)(port))); +} + +static __inline__ unsigned long ldq_u(unsigned long *p) +{ + unsigned long addr = (unsigned long)p; + unsigned int ret; + + __asm__ __volatile__( + "lmw.bi %0, [%1], %0, 0;\n\t" + : "=r" (ret) + : "r" (addr)); + return ret; +} + +static __inline__ unsigned long ldl_u(unsigned int *p) +{ + unsigned long addr = (unsigned long)p; + unsigned int ret; + + __asm__ __volatile__( + "lmw.bi %0, [%1], %0, 0;\n\t" + : "=r" (ret) + : "r" (addr)); + return ret; +} + + +static __inline__ void stq_u(unsigned long val, unsigned long *p) +{ + unsigned long addr = (unsigned long)p; + + __asm__ __volatile__( + "smw.bi %0, [%1], %0, 0;\n\t" + : /* No outputs */ + : "r" (val), "r" (addr)); +} + +static __inline__ void stl_u(unsigned long val, unsigned int *p) +{ + unsigned long addr = (unsigned long)p; + + __asm__ __volatile__( + "smw.bi %0, [%1], %0, 0;\n\t" + : /* No outputs */ + : "r" (val), "r" (addr)); +} +# endif /* NDS32_MMIO_SWAP */ + +# if (((X_BYTE_ORDER == X_BIG_ENDIAN) && !defined(NDS32_MMIO_SWAP)) || ((X_BYTE_ORDER != X_BIG_ENDIAN) && defined(NDS32_MMIO_SWAP))) +# define ldw_u(p) ((*(unsigned char *)(p)) << 8 | \ + (*((unsigned char *)(p)+1))) +# define stw_u(v,p) (*(unsigned char *)(p)) = ((v) >> 8); \ + (*((unsigned char *)(p)+1)) = (v) +# else +# define ldw_u(p) ((*(unsigned char *)(p)) | \ + (*((unsigned char *)(p)+1)<<8)) +# define stw_u(v,p) (*(unsigned char *)(p)) = (v); \ + (*((unsigned char *)(p)+1)) = ((v) >> 8) +# endif + +# define mem_barrier() /* XXX: nop for now */ +# define write_mem_barrier() /* XXX: nop for now */ + # else /* ix86 */ # if !defined(__SUNPRO_C) @@ -1338,6 +1687,67 @@ extern _X_EXPORT void xf86SlowBCopyToBus(unsigned char *, unsigned char *, int); # define MMIO_MOVE32(base, offset, val) \ xf86WriteMmio32Be(base, offset, (CARD32)(val)) +# elif defined(__nds32__) + /* + * we provide byteswapping and no byteswapping functions here + * with no byteswapping as default; when endianness of CPU core + * and I/O devices don't match, byte swapping is necessary + * drivers that need byteswapping should define NDS32_MMIO_SWAP + */ +# define MMIO_IN8(base, offset) xf86ReadMmio8(base, offset) +# define MMIO_OUT8(base, offset, val) \ + xf86WriteMmio8(base, offset, (CARD8)(val)) +# define MMIO_ONB8(base, offset, val) \ + xf86WriteMmioNB8(base, offset, (CARD8)(val)) + +# if defined(NDS32_MMIO_SWAP) /* byteswapping */ +# define MMIO_IN16(base, offset) xf86ReadMmio16Swap(base, offset) +# define MMIO_IN32(base, offset) xf86ReadMmio32Swap(base, offset) +# define MMIO_OUT16(base, offset, val) \ + xf86WriteMmio16Swap(base, offset, (CARD16)(val)) +# define MMIO_OUT32(base, offset, val) \ + xf86WriteMmio32Swap(base, offset, (CARD32)(val)) +# define MMIO_ONB16(base, offset, val) \ + xf86WriteMmioNB16Swap(base, offset, (CARD16)(val)) +# define MMIO_ONB32(base, offset, val) \ + xf86WriteMmioNB32Swap(base, offset, (CARD32)(val)) +# else /* no byteswapping is the default */ +# define MMIO_IN16(base, offset) xf86ReadMmio16(base, offset) +# define MMIO_IN32(base, offset) xf86ReadMmio32(base, offset) +# define MMIO_OUT16(base, offset, val) \ + xf86WriteMmio16(base, offset, (CARD16)(val)) +# define MMIO_OUT32(base, offset, val) \ + xf86WriteMmio32(base, offset, (CARD32)(val)) +# define MMIO_ONB16(base, offset, val) \ + xf86WriteMmioNB16(base, offset, (CARD16)(val)) +# define MMIO_ONB32(base, offset, val) \ + xf86WriteMmioNB32(base, offset, (CARD32)(val)) +# endif + +# define MMIO_MOVE32(base, offset, val) \ + xf86WriteMmio32(base, offset, (CARD32)(val)) + +#ifdef N1213_HC /* for NDS32 N1213 hardcore */ +static __inline__ void nds32_flush_icache(char *addr) +{ + __asm__ volatile ( + "isync %0;" + "msync;" + "isb;" + "cctl %0,L1I_VA_INVAL;" + "isb;" + : : "r"(addr) : "memory"); +} +#else +static __inline__ void nds32_flush_icache(char *addr) +{ + __asm__ volatile ( + "isync %0;" + "isb;" + : : "r"(addr) : "memory"); +} +#endif + # else /* !__alpha__ && !__powerpc__ && !__sparc__ */ # define MMIO_IN8(base, offset) \ From cbd4d5dbb70db62ba1cb79c7b904e6fa11f62d7e Mon Sep 17 00:00:00 2001 From: Tiago Vignatti Date: Fri, 16 Jul 2010 20:19:50 +0300 Subject: [PATCH 091/125] xserver: delete pervasively use of DISPATCH_PROC Some functions had to be moved around due some missing static definitions. Another minor clean up like inexistent function declarations and etc were made also. Part of this patch was cooked using: sed -i -e '/static DISPATCH_PROC*.*;/d' `git ls-files` Signed-off-by: Tiago Vignatti Reviewed-by: Mikhail Gusarov --- Xext/bigreq.c | 18 +- Xext/saver.c | 88 ++-- Xext/shape.c | 54 +-- Xext/shm.c | 557 ++++++++++++------------- Xext/sync.c | 30 -- Xext/xcmisc.c | 26 +- Xext/xf86bigfont.c | 6 - Xext/xtest.c | 29 +- dix/dispatch.h | 211 +++++----- hw/dmx/dmx.c | 54 +-- hw/kdrive/ephyr/ephyrdriext.c | 133 +++--- hw/xfree86/dixmods/extmod/Makefile.am | 2 +- hw/xfree86/dixmods/extmod/xf86dga2.c | 86 ++-- hw/xfree86/dixmods/extmod/xf86dgaext.h | 10 - hw/xfree86/dixmods/extmod/xf86vmode.c | 146 +++---- hw/xfree86/dri/xf86dri.c | 68 ++- hw/xquartz/applewm.c | 2 - hw/xquartz/xpr/appledri.c | 2 - hw/xwin/InitInput.c | 6 +- hw/xwin/winclipboardinit.c | 2 +- hw/xwin/winclipboardwrappers.c | 6 +- hw/xwin/winwindowswm.c | 2 - 22 files changed, 633 insertions(+), 905 deletions(-) delete mode 100644 hw/xfree86/dixmods/extmod/xf86dgaext.h diff --git a/Xext/bigreq.c b/Xext/bigreq.c index ce3734e8d..a540bcbcb 100644 --- a/Xext/bigreq.c +++ b/Xext/bigreq.c @@ -40,18 +40,8 @@ from The Open Group. #include "opaque.h" #include "modinit.h" -static DISPATCH_PROC(ProcBigReqDispatch); - void BigReqExtensionInit(INITARGS); -void -BigReqExtensionInit(INITARGS) -{ - AddExtension(XBigReqExtensionName, 0, 0, - ProcBigReqDispatch, ProcBigReqDispatch, - NULL, StandardMinorOpcode); -} - static int ProcBigReqDispatch (ClientPtr client) { @@ -78,3 +68,11 @@ ProcBigReqDispatch (ClientPtr client) WriteToClient(client, sizeof(xBigReqEnableReply), (char *)&rep); return Success; } + +void +BigReqExtensionInit(INITARGS) +{ + AddExtension(XBigReqExtensionName, 0, 0, + ProcBigReqDispatch, ProcBigReqDispatch, + NULL, StandardMinorOpcode); +} diff --git a/Xext/saver.c b/Xext/saver.c index 6d91ddf5e..18886038a 100644 --- a/Xext/saver.c +++ b/Xext/saver.c @@ -62,20 +62,6 @@ in this Software without prior written authorization from the X Consortium. static int ScreenSaverEventBase = 0; -static DISPATCH_PROC(ProcScreenSaverQueryInfo); -static DISPATCH_PROC(ProcScreenSaverDispatch); -static DISPATCH_PROC(ProcScreenSaverQueryVersion); -static DISPATCH_PROC(ProcScreenSaverSelectInput); -static DISPATCH_PROC(ProcScreenSaverSetAttributes); -static DISPATCH_PROC(ProcScreenSaverUnsetAttributes); -static DISPATCH_PROC(ProcScreenSaverSuspend); -static DISPATCH_PROC(SProcScreenSaverDispatch); -static DISPATCH_PROC(SProcScreenSaverQueryInfo); -static DISPATCH_PROC(SProcScreenSaverQueryVersion); -static DISPATCH_PROC(SProcScreenSaverSelectInput); -static DISPATCH_PROC(SProcScreenSaverSetAttributes); -static DISPATCH_PROC(SProcScreenSaverUnsetAttributes); -static DISPATCH_PROC(SProcScreenSaverSuspend); static Bool ScreenSaverHandle ( ScreenPtr /* pScreen */, @@ -237,45 +223,6 @@ static DevPrivateKeyRec ScreenPrivateKeyRec; #define New(t) (malloc(sizeof (t))) -/**************** - * ScreenSaverExtensionInit - * - * Called from InitExtensions in main() or from QueryExtension() if the - * extension is dynamically loaded. - * - ****************/ - -void -ScreenSaverExtensionInit(INITARGS) -{ - ExtensionEntry *extEntry; - int i; - ScreenPtr pScreen; - - if (!dixRegisterPrivateKey(&ScreenPrivateKeyRec, PRIVATE_SCREEN, 0)) - return; - - AttrType = CreateNewResourceType(ScreenSaverFreeAttr, "SaverAttr"); - SaverEventType = CreateNewResourceType(ScreenSaverFreeEvents, - "SaverEvent"); - SuspendType = CreateNewResourceType(ScreenSaverFreeSuspend, - "SaverSuspend"); - - for (i = 0; i < screenInfo.numScreens; i++) - { - pScreen = screenInfo.screens[i]; - SetScreenPrivate (pScreen, NULL); - } - if (AttrType && SaverEventType && SuspendType && - (extEntry = AddExtension(ScreenSaverName, ScreenSaverNumberEvents, 0, - ProcScreenSaverDispatch, SProcScreenSaverDispatch, - NULL, StandardMinorOpcode))) - { - ScreenSaverEventBase = extEntry->eventBase; - EventSwapVector[ScreenSaverEventBase] = (EventSwapPtr) SScreenSaverNotifyEvent; - } -} - static void CheckScreenPrivate (ScreenPtr pScreen) { @@ -1412,7 +1359,7 @@ ProcScreenSaverSuspend (ClientPtr client) return Success; } -static DISPATCH_PROC((*NormalVector[])) = { +static int (*NormalVector[]) (ClientPtr /* client */) = { ProcScreenSaverQueryVersion, ProcScreenSaverQueryInfo, ProcScreenSaverSelectInput, @@ -1513,7 +1460,7 @@ SProcScreenSaverSuspend (ClientPtr client) return ProcScreenSaverSuspend (client); } -static DISPATCH_PROC((*SwappedVector[])) = { +static int (*SwappedVector[]) (ClientPtr /* client */) = { SProcScreenSaverQueryVersion, SProcScreenSaverQueryInfo, SProcScreenSaverSelectInput, @@ -1531,3 +1478,34 @@ SProcScreenSaverDispatch (ClientPtr client) return (*SwappedVector[stuff->data])(client); return BadRequest; } + +void +ScreenSaverExtensionInit(INITARGS) +{ + ExtensionEntry *extEntry; + int i; + ScreenPtr pScreen; + + if (!dixRegisterPrivateKey(&ScreenPrivateKeyRec, PRIVATE_SCREEN, 0)) + return; + + AttrType = CreateNewResourceType(ScreenSaverFreeAttr, "SaverAttr"); + SaverEventType = CreateNewResourceType(ScreenSaverFreeEvents, + "SaverEvent"); + SuspendType = CreateNewResourceType(ScreenSaverFreeSuspend, + "SaverSuspend"); + + for (i = 0; i < screenInfo.numScreens; i++) + { + pScreen = screenInfo.screens[i]; + SetScreenPrivate (pScreen, NULL); + } + if (AttrType && SaverEventType && SuspendType && + (extEntry = AddExtension(ScreenSaverName, ScreenSaverNumberEvents, 0, + ProcScreenSaverDispatch, SProcScreenSaverDispatch, + NULL, StandardMinorOpcode))) + { + ScreenSaverEventBase = extEntry->eventBase; + EventSwapVector[ScreenSaverEventBase] = (EventSwapPtr) SScreenSaverNotifyEvent; + } +} diff --git a/Xext/shape.c b/Xext/shape.c index ac95328b8..115fc07ed 100644 --- a/Xext/shape.c +++ b/Xext/shape.c @@ -68,26 +68,6 @@ static void SShapeNotifyEvent( * externally by the Xfixes extension and are now defined in window.h */ -static DISPATCH_PROC(ProcShapeCombine); -static DISPATCH_PROC(ProcShapeDispatch); -static DISPATCH_PROC(ProcShapeGetRectangles); -static DISPATCH_PROC(ProcShapeInputSelected); -static DISPATCH_PROC(ProcShapeMask); -static DISPATCH_PROC(ProcShapeOffset); -static DISPATCH_PROC(ProcShapeQueryExtents); -static DISPATCH_PROC(ProcShapeQueryVersion); -static DISPATCH_PROC(ProcShapeRectangles); -static DISPATCH_PROC(ProcShapeSelectInput); -static DISPATCH_PROC(SProcShapeCombine); -static DISPATCH_PROC(SProcShapeDispatch); -static DISPATCH_PROC(SProcShapeGetRectangles); -static DISPATCH_PROC(SProcShapeInputSelected); -static DISPATCH_PROC(SProcShapeMask); -static DISPATCH_PROC(SProcShapeOffset); -static DISPATCH_PROC(SProcShapeQueryExtents); -static DISPATCH_PROC(SProcShapeQueryVersion); -static DISPATCH_PROC(SProcShapeRectangles); -static DISPATCH_PROC(SProcShapeSelectInput); #ifdef PANORAMIX #include "panoramiX.h" @@ -122,23 +102,6 @@ typedef struct _ShapeEvent { * ****************/ -void -ShapeExtensionInit(void) -{ - ExtensionEntry *extEntry; - - ClientType = CreateNewResourceType(ShapeFreeClient, "ShapeClient"); - ShapeEventType = CreateNewResourceType(ShapeFreeEvents, "ShapeEvent"); - if (ClientType && ShapeEventType && - (extEntry = AddExtension(SHAPENAME, ShapeNumberEvents, 0, - ProcShapeDispatch, SProcShapeDispatch, - NULL, StandardMinorOpcode))) - { - ShapeEventBase = extEntry->eventBase; - EventSwapVector[ShapeEventBase] = (EventSwapPtr) SShapeNotifyEvent; - } -} - static int RegionOperate ( ClientPtr client, @@ -1278,3 +1241,20 @@ SProcShapeDispatch (ClientPtr client) return BadRequest; } } + +void +ShapeExtensionInit(void) +{ + ExtensionEntry *extEntry; + + ClientType = CreateNewResourceType(ShapeFreeClient, "ShapeClient"); + ShapeEventType = CreateNewResourceType(ShapeFreeEvents, "ShapeEvent"); + if (ClientType && ShapeEventType && + (extEntry = AddExtension(SHAPENAME, ShapeNumberEvents, 0, + ProcShapeDispatch, SProcShapeDispatch, + NULL, StandardMinorOpcode))) + { + ShapeEventBase = extEntry->eventBase; + EventSwapVector[ShapeEventBase] = (EventSwapPtr) SShapeNotifyEvent; + } +} diff --git a/Xext/shm.c b/Xext/shm.c index 3230d83c6..23afe6b1f 100644 --- a/Xext/shm.c +++ b/Xext/shm.c @@ -120,20 +120,6 @@ static void SShmCompletionEvent( static Bool ShmDestroyPixmap (PixmapPtr pPixmap); -static DISPATCH_PROC(ProcShmAttach); -static DISPATCH_PROC(ProcShmCreatePixmap); -static DISPATCH_PROC(ProcShmDetach); -static DISPATCH_PROC(ProcShmDispatch); -static DISPATCH_PROC(ProcShmGetImage); -static DISPATCH_PROC(ProcShmPutImage); -static DISPATCH_PROC(ProcShmQueryVersion); -static DISPATCH_PROC(SProcShmAttach); -static DISPATCH_PROC(SProcShmCreatePixmap); -static DISPATCH_PROC(SProcShmDetach); -static DISPATCH_PROC(SProcShmDispatch); -static DISPATCH_PROC(SProcShmGetImage); -static DISPATCH_PROC(SProcShmPutImage); -static DISPATCH_PROC(SProcShmQueryVersion); static unsigned char ShmReqCode; int ShmCompletionCode; @@ -254,56 +240,6 @@ ShmRegisterPrivates(void) return TRUE; } -void -ShmExtensionInit(INITARGS) -{ - ExtensionEntry *extEntry; - int i; - -#ifdef MUST_CHECK_FOR_SHM_SYSCALL - if (!CheckForShmSyscall()) - { - ErrorF("MIT-SHM extension disabled due to lack of kernel support\n"); - return; - } -#endif - - if (!ShmRegisterPrivates()) - return; - - sharedPixmaps = xFalse; - { - sharedPixmaps = xTrue; - for (i = 0; i < screenInfo.numScreens; i++) - { - ShmScrPrivateRec *screen_priv = ShmInitScreenPriv(screenInfo.screens[i]); - if (!screen_priv->shmFuncs) - screen_priv->shmFuncs = &miFuncs; - if (!screen_priv->shmFuncs->CreatePixmap) - sharedPixmaps = xFalse; - } - if (sharedPixmaps) - for (i = 0; i < screenInfo.numScreens; i++) - { - ShmScrPrivateRec *screen_priv = ShmGetScreenPriv(screenInfo.screens[i]); - screen_priv->destroyPixmap = screenInfo.screens[i]->DestroyPixmap; - screenInfo.screens[i]->DestroyPixmap = ShmDestroyPixmap; - } - } - ShmSegType = CreateNewResourceType(ShmDetachSegment, "ShmSeg"); - if (ShmSegType && - (extEntry = AddExtension(SHMNAME, ShmNumberEvents, ShmNumberErrors, - ProcShmDispatch, SProcShmDispatch, - ShmResetProc, StandardMinorOpcode))) - { - ShmReqCode = (unsigned char)extEntry->base; - ShmCompletionCode = extEntry->eventBase; - BadShmSegCode = extEntry->errorBase; - SetResourceTypeErrorValue(ShmSegType, BadShmSegCode); - EventSwapVector[ShmCompletionCode] = (EventSwapPtr) SShmCompletionEvent; - } -} - /*ARGSUSED*/ static void ShmResetProc(ExtensionEntry *extEntry) @@ -581,6 +517,226 @@ doShmPutImage(DrawablePtr dst, GCPtr pGC, } } +static int +ProcShmPutImage(ClientPtr client) +{ + GCPtr pGC; + DrawablePtr pDraw; + long length; + ShmDescPtr shmdesc; + REQUEST(xShmPutImageReq); + + REQUEST_SIZE_MATCH(xShmPutImageReq); + VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess); + VERIFY_SHMPTR(stuff->shmseg, stuff->offset, FALSE, shmdesc, client); + if ((stuff->sendEvent != xTrue) && (stuff->sendEvent != xFalse)) + return BadValue; + if (stuff->format == XYBitmap) + { + if (stuff->depth != 1) + return BadMatch; + length = PixmapBytePad(stuff->totalWidth, 1); + } + else if (stuff->format == XYPixmap) + { + if (pDraw->depth != stuff->depth) + return BadMatch; + length = PixmapBytePad(stuff->totalWidth, 1); + length *= stuff->depth; + } + else if (stuff->format == ZPixmap) + { + if (pDraw->depth != stuff->depth) + return BadMatch; + length = PixmapBytePad(stuff->totalWidth, stuff->depth); + } + else + { + client->errorValue = stuff->format; + return BadValue; + } + + /* + * There's a potential integer overflow in this check: + * VERIFY_SHMSIZE(shmdesc, stuff->offset, length * stuff->totalHeight, + * client); + * the version below ought to avoid it + */ + if (stuff->totalHeight != 0 && + length > (shmdesc->size - stuff->offset)/stuff->totalHeight) { + client->errorValue = stuff->totalWidth; + return BadValue; + } + if (stuff->srcX > stuff->totalWidth) + { + client->errorValue = stuff->srcX; + return BadValue; + } + if (stuff->srcY > stuff->totalHeight) + { + client->errorValue = stuff->srcY; + return BadValue; + } + if ((stuff->srcX + stuff->srcWidth) > stuff->totalWidth) + { + client->errorValue = stuff->srcWidth; + return BadValue; + } + if ((stuff->srcY + stuff->srcHeight) > stuff->totalHeight) + { + client->errorValue = stuff->srcHeight; + return BadValue; + } + + if ((((stuff->format == ZPixmap) && (stuff->srcX == 0)) || + ((stuff->format != ZPixmap) && + (stuff->srcX < screenInfo.bitmapScanlinePad) && + ((stuff->format == XYBitmap) || + ((stuff->srcY == 0) && + (stuff->srcHeight == stuff->totalHeight))))) && + ((stuff->srcX + stuff->srcWidth) == stuff->totalWidth)) + (*pGC->ops->PutImage) (pDraw, pGC, stuff->depth, + stuff->dstX, stuff->dstY, + stuff->totalWidth, stuff->srcHeight, + stuff->srcX, stuff->format, + shmdesc->addr + stuff->offset + + (stuff->srcY * length)); + else + doShmPutImage(pDraw, pGC, stuff->depth, stuff->format, + stuff->totalWidth, stuff->totalHeight, + stuff->srcX, stuff->srcY, + stuff->srcWidth, stuff->srcHeight, + stuff->dstX, stuff->dstY, + shmdesc->addr + stuff->offset); + + if (stuff->sendEvent) + { + xShmCompletionEvent ev; + + ev.type = ShmCompletionCode; + ev.drawable = stuff->drawable; + ev.minorEvent = X_ShmPutImage; + ev.majorEvent = ShmReqCode; + ev.shmseg = stuff->shmseg; + ev.offset = stuff->offset; + WriteEventsToClient(client, 1, (xEvent *) &ev); + } + + return Success; +} + +static int +ProcShmGetImage(ClientPtr client) +{ + DrawablePtr pDraw; + long lenPer = 0, length; + Mask plane = 0; + xShmGetImageReply xgi; + ShmDescPtr shmdesc; + int n, rc; + + REQUEST(xShmGetImageReq); + + REQUEST_SIZE_MATCH(xShmGetImageReq); + if ((stuff->format != XYPixmap) && (stuff->format != ZPixmap)) + { + client->errorValue = stuff->format; + return BadValue; + } + rc = dixLookupDrawable(&pDraw, stuff->drawable, client, 0, + DixReadAccess); + if (rc != Success) + return rc; + VERIFY_SHMPTR(stuff->shmseg, stuff->offset, TRUE, shmdesc, client); + if (pDraw->type == DRAWABLE_WINDOW) + { + if( /* check for being viewable */ + !((WindowPtr) pDraw)->realized || + /* check for being on screen */ + pDraw->x + stuff->x < 0 || + pDraw->x + stuff->x + (int)stuff->width > pDraw->pScreen->width || + pDraw->y + stuff->y < 0 || + pDraw->y + stuff->y + (int)stuff->height > pDraw->pScreen->height || + /* check for being inside of border */ + stuff->x < - wBorderWidth((WindowPtr)pDraw) || + stuff->x + (int)stuff->width > + wBorderWidth((WindowPtr)pDraw) + (int)pDraw->width || + stuff->y < -wBorderWidth((WindowPtr)pDraw) || + stuff->y + (int)stuff->height > + wBorderWidth((WindowPtr)pDraw) + (int)pDraw->height + ) + return BadMatch; + xgi.visual = wVisual(((WindowPtr)pDraw)); + } + else + { + if (stuff->x < 0 || + stuff->x+(int)stuff->width > pDraw->width || + stuff->y < 0 || + stuff->y+(int)stuff->height > pDraw->height + ) + return BadMatch; + xgi.visual = None; + } + xgi.type = X_Reply; + xgi.length = 0; + xgi.sequenceNumber = client->sequence; + xgi.depth = pDraw->depth; + if(stuff->format == ZPixmap) + { + length = PixmapBytePad(stuff->width, pDraw->depth) * stuff->height; + } + else + { + lenPer = PixmapBytePad(stuff->width, 1) * stuff->height; + plane = ((Mask)1) << (pDraw->depth - 1); + /* only planes asked for */ + length = lenPer * Ones(stuff->planeMask & (plane | (plane - 1))); + } + + VERIFY_SHMSIZE(shmdesc, stuff->offset, length, client); + xgi.size = length; + + if (length == 0) + { + /* nothing to do */ + } + else if (stuff->format == ZPixmap) + { + (*pDraw->pScreen->GetImage)(pDraw, stuff->x, stuff->y, + stuff->width, stuff->height, + stuff->format, stuff->planeMask, + shmdesc->addr + stuff->offset); + } + else + { + + length = stuff->offset; + for (; plane; plane >>= 1) + { + if (stuff->planeMask & plane) + { + (*pDraw->pScreen->GetImage)(pDraw, + stuff->x, stuff->y, + stuff->width, stuff->height, + stuff->format, plane, + shmdesc->addr + length); + length += lenPer; + } + } + } + + if (client->swapped) { + swaps(&xgi.sequenceNumber, n); + swapl(&xgi.length, n); + swapl(&xgi.visual, n); + swapl(&xgi.size, n); + } + WriteToClient(client, sizeof(xShmGetImageReply), (char *)&xgi); + + return Success; +} + #ifdef PANORAMIX static int ProcPanoramiXShmPutImage(ClientPtr client) @@ -858,231 +1014,8 @@ CreatePmap: return result; } - #endif -static int -ProcShmPutImage(ClientPtr client) -{ - GCPtr pGC; - DrawablePtr pDraw; - long length; - ShmDescPtr shmdesc; - REQUEST(xShmPutImageReq); - - REQUEST_SIZE_MATCH(xShmPutImageReq); - VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess); - VERIFY_SHMPTR(stuff->shmseg, stuff->offset, FALSE, shmdesc, client); - if ((stuff->sendEvent != xTrue) && (stuff->sendEvent != xFalse)) - return BadValue; - if (stuff->format == XYBitmap) - { - if (stuff->depth != 1) - return BadMatch; - length = PixmapBytePad(stuff->totalWidth, 1); - } - else if (stuff->format == XYPixmap) - { - if (pDraw->depth != stuff->depth) - return BadMatch; - length = PixmapBytePad(stuff->totalWidth, 1); - length *= stuff->depth; - } - else if (stuff->format == ZPixmap) - { - if (pDraw->depth != stuff->depth) - return BadMatch; - length = PixmapBytePad(stuff->totalWidth, stuff->depth); - } - else - { - client->errorValue = stuff->format; - return BadValue; - } - - /* - * There's a potential integer overflow in this check: - * VERIFY_SHMSIZE(shmdesc, stuff->offset, length * stuff->totalHeight, - * client); - * the version below ought to avoid it - */ - if (stuff->totalHeight != 0 && - length > (shmdesc->size - stuff->offset)/stuff->totalHeight) { - client->errorValue = stuff->totalWidth; - return BadValue; - } - if (stuff->srcX > stuff->totalWidth) - { - client->errorValue = stuff->srcX; - return BadValue; - } - if (stuff->srcY > stuff->totalHeight) - { - client->errorValue = stuff->srcY; - return BadValue; - } - if ((stuff->srcX + stuff->srcWidth) > stuff->totalWidth) - { - client->errorValue = stuff->srcWidth; - return BadValue; - } - if ((stuff->srcY + stuff->srcHeight) > stuff->totalHeight) - { - client->errorValue = stuff->srcHeight; - return BadValue; - } - - if ((((stuff->format == ZPixmap) && (stuff->srcX == 0)) || - ((stuff->format != ZPixmap) && - (stuff->srcX < screenInfo.bitmapScanlinePad) && - ((stuff->format == XYBitmap) || - ((stuff->srcY == 0) && - (stuff->srcHeight == stuff->totalHeight))))) && - ((stuff->srcX + stuff->srcWidth) == stuff->totalWidth)) - (*pGC->ops->PutImage) (pDraw, pGC, stuff->depth, - stuff->dstX, stuff->dstY, - stuff->totalWidth, stuff->srcHeight, - stuff->srcX, stuff->format, - shmdesc->addr + stuff->offset + - (stuff->srcY * length)); - else - doShmPutImage(pDraw, pGC, stuff->depth, stuff->format, - stuff->totalWidth, stuff->totalHeight, - stuff->srcX, stuff->srcY, - stuff->srcWidth, stuff->srcHeight, - stuff->dstX, stuff->dstY, - shmdesc->addr + stuff->offset); - - if (stuff->sendEvent) - { - xShmCompletionEvent ev; - - ev.type = ShmCompletionCode; - ev.drawable = stuff->drawable; - ev.minorEvent = X_ShmPutImage; - ev.majorEvent = ShmReqCode; - ev.shmseg = stuff->shmseg; - ev.offset = stuff->offset; - WriteEventsToClient(client, 1, (xEvent *) &ev); - } - - return Success; -} - - - -static int -ProcShmGetImage(ClientPtr client) -{ - DrawablePtr pDraw; - long lenPer = 0, length; - Mask plane = 0; - xShmGetImageReply xgi; - ShmDescPtr shmdesc; - int n, rc; - - REQUEST(xShmGetImageReq); - - REQUEST_SIZE_MATCH(xShmGetImageReq); - if ((stuff->format != XYPixmap) && (stuff->format != ZPixmap)) - { - client->errorValue = stuff->format; - return BadValue; - } - rc = dixLookupDrawable(&pDraw, stuff->drawable, client, 0, - DixReadAccess); - if (rc != Success) - return rc; - VERIFY_SHMPTR(stuff->shmseg, stuff->offset, TRUE, shmdesc, client); - if (pDraw->type == DRAWABLE_WINDOW) - { - if( /* check for being viewable */ - !((WindowPtr) pDraw)->realized || - /* check for being on screen */ - pDraw->x + stuff->x < 0 || - pDraw->x + stuff->x + (int)stuff->width > pDraw->pScreen->width || - pDraw->y + stuff->y < 0 || - pDraw->y + stuff->y + (int)stuff->height > pDraw->pScreen->height || - /* check for being inside of border */ - stuff->x < - wBorderWidth((WindowPtr)pDraw) || - stuff->x + (int)stuff->width > - wBorderWidth((WindowPtr)pDraw) + (int)pDraw->width || - stuff->y < -wBorderWidth((WindowPtr)pDraw) || - stuff->y + (int)stuff->height > - wBorderWidth((WindowPtr)pDraw) + (int)pDraw->height - ) - return BadMatch; - xgi.visual = wVisual(((WindowPtr)pDraw)); - } - else - { - if (stuff->x < 0 || - stuff->x+(int)stuff->width > pDraw->width || - stuff->y < 0 || - stuff->y+(int)stuff->height > pDraw->height - ) - return BadMatch; - xgi.visual = None; - } - xgi.type = X_Reply; - xgi.length = 0; - xgi.sequenceNumber = client->sequence; - xgi.depth = pDraw->depth; - if(stuff->format == ZPixmap) - { - length = PixmapBytePad(stuff->width, pDraw->depth) * stuff->height; - } - else - { - lenPer = PixmapBytePad(stuff->width, 1) * stuff->height; - plane = ((Mask)1) << (pDraw->depth - 1); - /* only planes asked for */ - length = lenPer * Ones(stuff->planeMask & (plane | (plane - 1))); - } - - VERIFY_SHMSIZE(shmdesc, stuff->offset, length, client); - xgi.size = length; - - if (length == 0) - { - /* nothing to do */ - } - else if (stuff->format == ZPixmap) - { - (*pDraw->pScreen->GetImage)(pDraw, stuff->x, stuff->y, - stuff->width, stuff->height, - stuff->format, stuff->planeMask, - shmdesc->addr + stuff->offset); - } - else - { - - length = stuff->offset; - for (; plane; plane >>= 1) - { - if (stuff->planeMask & plane) - { - (*pDraw->pScreen->GetImage)(pDraw, - stuff->x, stuff->y, - stuff->width, stuff->height, - stuff->format, plane, - shmdesc->addr + length); - length += lenPer; - } - } - } - - if (client->swapped) { - swaps(&xgi.sequenceNumber, n); - swapl(&xgi.length, n); - swapl(&xgi.visual, n); - swapl(&xgi.size, n); - } - WriteToClient(client, sizeof(xShmGetImageReply), (char *)&xgi); - - return Success; -} - static PixmapPtr fbShmCreatePixmap (ScreenPtr pScreen, int width, int height, int depth, char *addr) @@ -1342,3 +1275,53 @@ SProcShmDispatch (ClientPtr client) return BadRequest; } } + +void +ShmExtensionInit(INITARGS) +{ + ExtensionEntry *extEntry; + int i; + +#ifdef MUST_CHECK_FOR_SHM_SYSCALL + if (!CheckForShmSyscall()) + { + ErrorF("MIT-SHM extension disabled due to lack of kernel support\n"); + return; + } +#endif + + if (!ShmRegisterPrivates()) + return; + + sharedPixmaps = xFalse; + { + sharedPixmaps = xTrue; + for (i = 0; i < screenInfo.numScreens; i++) + { + ShmScrPrivateRec *screen_priv = ShmInitScreenPriv(screenInfo.screens[i]); + if (!screen_priv->shmFuncs) + screen_priv->shmFuncs = &miFuncs; + if (!screen_priv->shmFuncs->CreatePixmap) + sharedPixmaps = xFalse; + } + if (sharedPixmaps) + for (i = 0; i < screenInfo.numScreens; i++) + { + ShmScrPrivateRec *screen_priv = ShmGetScreenPriv(screenInfo.screens[i]); + screen_priv->destroyPixmap = screenInfo.screens[i]->DestroyPixmap; + screenInfo.screens[i]->DestroyPixmap = ShmDestroyPixmap; + } + } + ShmSegType = CreateNewResourceType(ShmDetachSegment, "ShmSeg"); + if (ShmSegType && + (extEntry = AddExtension(SHMNAME, ShmNumberEvents, ShmNumberErrors, + ProcShmDispatch, SProcShmDispatch, + ShmResetProc, StandardMinorOpcode))) + { + ShmReqCode = (unsigned char)extEntry->base; + ShmCompletionCode = extEntry->eventBase; + BadShmSegCode = extEntry->errorBase; + SetResourceTypeErrorValue(ShmSegType, BadShmSegCode); + EventSwapVector[ShmCompletionCode] = (EventSwapPtr) SShmCompletionEvent; + } +} diff --git a/Xext/sync.c b/Xext/sync.c index a51262a99..f23df6cb9 100644 --- a/Xext/sync.c +++ b/Xext/sync.c @@ -100,36 +100,6 @@ static void SyncInitServerTime(void); static void SyncInitIdleTime(void); -static DISPATCH_PROC(ProcSyncAwait); -static DISPATCH_PROC(ProcSyncChangeAlarm); -static DISPATCH_PROC(ProcSyncChangeCounter); -static DISPATCH_PROC(ProcSyncCreateAlarm); -static DISPATCH_PROC(ProcSyncCreateCounter); -static DISPATCH_PROC(ProcSyncDestroyAlarm); -static DISPATCH_PROC(ProcSyncDestroyCounter); -static DISPATCH_PROC(ProcSyncDispatch); -static DISPATCH_PROC(ProcSyncGetPriority); -static DISPATCH_PROC(ProcSyncInitialize); -static DISPATCH_PROC(ProcSyncListSystemCounters); -static DISPATCH_PROC(ProcSyncQueryAlarm); -static DISPATCH_PROC(ProcSyncQueryCounter); -static DISPATCH_PROC(ProcSyncSetCounter); -static DISPATCH_PROC(ProcSyncSetPriority); -static DISPATCH_PROC(SProcSyncAwait); -static DISPATCH_PROC(SProcSyncChangeAlarm); -static DISPATCH_PROC(SProcSyncChangeCounter); -static DISPATCH_PROC(SProcSyncCreateAlarm); -static DISPATCH_PROC(SProcSyncCreateCounter); -static DISPATCH_PROC(SProcSyncDestroyAlarm); -static DISPATCH_PROC(SProcSyncDestroyCounter); -static DISPATCH_PROC(SProcSyncDispatch); -static DISPATCH_PROC(SProcSyncGetPriority); -static DISPATCH_PROC(SProcSyncInitialize); -static DISPATCH_PROC(SProcSyncListSystemCounters); -static DISPATCH_PROC(SProcSyncQueryAlarm); -static DISPATCH_PROC(SProcSyncQueryCounter); -static DISPATCH_PROC(SProcSyncSetCounter); -static DISPATCH_PROC(SProcSyncSetPriority); /* Each counter maintains a simple linked list of triggers that are * interested in the counter. The two functions below are used to diff --git a/Xext/xcmisc.c b/Xext/xcmisc.c index 986c870a5..378afccca 100644 --- a/Xext/xcmisc.c +++ b/Xext/xcmisc.c @@ -46,24 +46,6 @@ from The Open Group. #define UINT32_MAX 0xffffffffU #endif -static DISPATCH_PROC(ProcXCMiscDispatch); -static DISPATCH_PROC(ProcXCMiscGetVersion); -static DISPATCH_PROC(ProcXCMiscGetXIDList); -static DISPATCH_PROC(ProcXCMiscGetXIDRange); -static DISPATCH_PROC(SProcXCMiscDispatch); -static DISPATCH_PROC(SProcXCMiscGetVersion); -static DISPATCH_PROC(SProcXCMiscGetXIDList); -static DISPATCH_PROC(SProcXCMiscGetXIDRange); - -void XCMiscExtensionInit(INITARGS); - -void -XCMiscExtensionInit(INITARGS) -{ - AddExtension(XCMiscExtensionName, 0, 0, - ProcXCMiscDispatch, SProcXCMiscDispatch, - NULL, StandardMinorOpcode); -} static int ProcXCMiscGetVersion(ClientPtr client) @@ -215,3 +197,11 @@ SProcXCMiscDispatch (ClientPtr client) return BadRequest; } } + +void +XCMiscExtensionInit(INITARGS) +{ + AddExtension(XCMiscExtensionName, 0, 0, + ProcXCMiscDispatch, SProcXCMiscDispatch, + NULL, StandardMinorOpcode); +} diff --git a/Xext/xf86bigfont.c b/Xext/xf86bigfont.c index 8f0ddd93d..f7dde6e17 100644 --- a/Xext/xf86bigfont.c +++ b/Xext/xf86bigfont.c @@ -80,12 +80,6 @@ static void XF86BigfontResetProc( ExtensionEntry * /* extEntry */ ); -static DISPATCH_PROC(ProcXF86BigfontDispatch); -static DISPATCH_PROC(ProcXF86BigfontQueryVersion); -static DISPATCH_PROC(ProcXF86BigfontQueryFont); -static DISPATCH_PROC(SProcXF86BigfontDispatch); -static DISPATCH_PROC(SProcXF86BigfontQueryVersion); -static DISPATCH_PROC(SProcXF86BigfontQueryFont); #ifdef HAS_SHM diff --git a/Xext/xtest.c b/Xext/xtest.c index 7268768b0..d7d254c18 100644 --- a/Xext/xtest.c +++ b/Xext/xtest.c @@ -84,26 +84,6 @@ static int XTestSwapFakeInput( xReq * /* req */ ); -static DISPATCH_PROC(ProcXTestCompareCursor); -static DISPATCH_PROC(ProcXTestDispatch); -static DISPATCH_PROC(ProcXTestFakeInput); -static DISPATCH_PROC(ProcXTestGetVersion); -static DISPATCH_PROC(ProcXTestGrabControl); -static DISPATCH_PROC(SProcXTestCompareCursor); -static DISPATCH_PROC(SProcXTestDispatch); -static DISPATCH_PROC(SProcXTestFakeInput); -static DISPATCH_PROC(SProcXTestGetVersion); -static DISPATCH_PROC(SProcXTestGrabControl); - -void -XTestExtensionInit(INITARGS) -{ - AddExtension(XTestExtensionName, 0, 0, - ProcXTestDispatch, SProcXTestDispatch, - NULL, StandardMinorOpcode); - - xtest_evlist = InitEventList(GetMaximumEventsNum()); -} static int ProcXTestGetVersion(ClientPtr client) @@ -699,3 +679,12 @@ GetXTestDevice(DeviceIntPtr master) return NULL; } +void +XTestExtensionInit(INITARGS) +{ + AddExtension(XTestExtensionName, 0, 0, + ProcXTestDispatch, SProcXTestDispatch, + NULL, StandardMinorOpcode); + + xtest_evlist = InitEventList(GetMaximumEventsNum()); +} diff --git a/dix/dispatch.h b/dix/dispatch.h index dd07096af..758b83dd9 100644 --- a/dix/dispatch.h +++ b/dix/dispatch.h @@ -36,111 +36,110 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #ifndef DISPATCH_H #define DISPATCH_H 1 -DISPATCH_PROC(InitClientPrivates); -DISPATCH_PROC(ProcAllocColor); -DISPATCH_PROC(ProcAllocColorCells); -DISPATCH_PROC(ProcAllocColorPlanes); -DISPATCH_PROC(ProcAllocNamedColor); -DISPATCH_PROC(ProcBell); -DISPATCH_PROC(ProcChangeAccessControl); -DISPATCH_PROC(ProcChangeCloseDownMode); -DISPATCH_PROC(ProcChangeGC); -DISPATCH_PROC(ProcChangeHosts); -DISPATCH_PROC(ProcChangeKeyboardControl); -DISPATCH_PROC(ProcChangeKeyboardMapping); -DISPATCH_PROC(ProcChangePointerControl); -DISPATCH_PROC(ProcChangeProperty); -DISPATCH_PROC(ProcChangeSaveSet); -DISPATCH_PROC(ProcChangeWindowAttributes); -DISPATCH_PROC(ProcCirculateWindow); -DISPATCH_PROC(ProcClearToBackground); -DISPATCH_PROC(ProcCloseFont); -DISPATCH_PROC(ProcConfigureWindow); -DISPATCH_PROC(ProcConvertSelection); -DISPATCH_PROC(ProcCopyArea); -DISPATCH_PROC(ProcCopyColormapAndFree); -DISPATCH_PROC(ProcCopyGC); -DISPATCH_PROC(ProcCopyPlane); -DISPATCH_PROC(ProcCreateColormap); -DISPATCH_PROC(ProcCreateCursor); -DISPATCH_PROC(ProcCreateGC); -DISPATCH_PROC(ProcCreateGlyphCursor); -DISPATCH_PROC(ProcCreatePixmap); -DISPATCH_PROC(ProcCreateWindow); -DISPATCH_PROC(ProcDeleteProperty); -DISPATCH_PROC(ProcDestroySubwindows); -DISPATCH_PROC(ProcDestroyWindow); -DISPATCH_PROC(ProcEstablishConnection); -DISPATCH_PROC(ProcFillPoly); -DISPATCH_PROC(ProcForceScreenSaver); -DISPATCH_PROC(ProcFreeColormap); -DISPATCH_PROC(ProcFreeColors); -DISPATCH_PROC(ProcFreeCursor); -DISPATCH_PROC(ProcFreeGC); -DISPATCH_PROC(ProcFreePixmap); -DISPATCH_PROC(ProcGetAtomName); -DISPATCH_PROC(ProcGetFontPath); -DISPATCH_PROC(ProcGetGeometry); -DISPATCH_PROC(ProcGetImage); -DISPATCH_PROC(ProcGetKeyboardControl); -DISPATCH_PROC(ProcGetKeyboardMapping); -DISPATCH_PROC(ProcGetModifierMapping); -DISPATCH_PROC(ProcGetMotionEvents); -DISPATCH_PROC(ProcGetPointerControl); -DISPATCH_PROC(ProcGetPointerMapping); -DISPATCH_PROC(ProcGetProperty); -DISPATCH_PROC(ProcGetScreenSaver); -DISPATCH_PROC(ProcGetSelectionOwner); -DISPATCH_PROC(ProcGetWindowAttributes); -DISPATCH_PROC(ProcGrabServer); -DISPATCH_PROC(ProcImageText16); -DISPATCH_PROC(ProcImageText8); -DISPATCH_PROC(ProcInitialConnection); -DISPATCH_PROC(ProcInstallColormap); -DISPATCH_PROC(ProcInternAtom); -DISPATCH_PROC(ProcKillClient); -DISPATCH_PROC(ProcListExtensions); -DISPATCH_PROC(ProcListFonts); -DISPATCH_PROC(ProcListFontsWithInfo); -DISPATCH_PROC(ProcListHosts); -DISPATCH_PROC(ProcListInstalledColormaps); -DISPATCH_PROC(ProcListProperties); -DISPATCH_PROC(ProcLookupColor); -DISPATCH_PROC(ProcMapSubwindows); -DISPATCH_PROC(ProcMapWindow); -DISPATCH_PROC(ProcNoOperation); -DISPATCH_PROC(ProcOpenFont); -DISPATCH_PROC(ProcPolyArc); -DISPATCH_PROC(ProcPolyFillArc); -DISPATCH_PROC(ProcPolyFillRectangle); -DISPATCH_PROC(ProcPolyLine); -DISPATCH_PROC(ProcPolyPoint); -DISPATCH_PROC(ProcPolyRectangle); -DISPATCH_PROC(ProcPolySegment); -DISPATCH_PROC(ProcPolyText); -DISPATCH_PROC(ProcPutImage); -DISPATCH_PROC(ProcQueryBestSize); -DISPATCH_PROC(ProcQueryColors); -DISPATCH_PROC(ProcQueryExtension); -DISPATCH_PROC(ProcQueryFont); -DISPATCH_PROC(ProcQueryKeymap); -DISPATCH_PROC(ProcQueryTextExtents); -DISPATCH_PROC(ProcQueryTree); -DISPATCH_PROC(ProcReparentWindow); -DISPATCH_PROC(ProcRotateProperties); -DISPATCH_PROC(ProcSetClipRectangles); -DISPATCH_PROC(ProcSetDashes); -DISPATCH_PROC(ProcSetFontPath); -DISPATCH_PROC(ProcSetModifierMapping); -DISPATCH_PROC(ProcSetPointerMapping); -DISPATCH_PROC(ProcSetScreenSaver); -DISPATCH_PROC(ProcSetSelectionOwner); -DISPATCH_PROC(ProcStoreColors); -DISPATCH_PROC(ProcStoreNamedColor); -DISPATCH_PROC(ProcTranslateCoords); -DISPATCH_PROC(ProcUngrabServer); -DISPATCH_PROC(ProcUninstallColormap); -DISPATCH_PROC(ProcUnmapSubwindows); -DISPATCH_PROC(ProcUnmapWindow); +int ProcAllocColor(ClientPtr /* client */); +int ProcAllocColorCells(ClientPtr /* client */); +int ProcAllocColorPlanes(ClientPtr /* client */); +int ProcAllocNamedColor(ClientPtr /* client */); +int ProcBell(ClientPtr /* client */); +int ProcChangeAccessControl(ClientPtr /* client */); +int ProcChangeCloseDownMode(ClientPtr /* client */); +int ProcChangeGC(ClientPtr /* client */); +int ProcChangeHosts(ClientPtr /* client */); +int ProcChangeKeyboardControl(ClientPtr /* client */); +int ProcChangeKeyboardMapping(ClientPtr /* client */); +int ProcChangePointerControl(ClientPtr /* client */); +int ProcChangeProperty(ClientPtr /* client */); +int ProcChangeSaveSet(ClientPtr /* client */); +int ProcChangeWindowAttributes(ClientPtr /* client */); +int ProcCirculateWindow(ClientPtr /* client */); +int ProcClearToBackground(ClientPtr /* client */); +int ProcCloseFont(ClientPtr /* client */); +int ProcConfigureWindow(ClientPtr /* client */); +int ProcConvertSelection(ClientPtr /* client */); +int ProcCopyArea(ClientPtr /* client */); +int ProcCopyColormapAndFree(ClientPtr /* client */); +int ProcCopyGC(ClientPtr /* client */); +int ProcCopyPlane(ClientPtr /* client */); +int ProcCreateColormap(ClientPtr /* client */); +int ProcCreateCursor(ClientPtr /* client */); +int ProcCreateGC(ClientPtr /* client */); +int ProcCreateGlyphCursor(ClientPtr /* client */); +int ProcCreatePixmap(ClientPtr /* client */); +int ProcCreateWindow(ClientPtr /* client */); +int ProcDeleteProperty(ClientPtr /* client */); +int ProcDestroySubwindows(ClientPtr /* client */); +int ProcDestroyWindow(ClientPtr /* client */); +int ProcEstablishConnection(ClientPtr /* client */); +int ProcFillPoly(ClientPtr /* client */); +int ProcForceScreenSaver(ClientPtr /* client */); +int ProcFreeColormap(ClientPtr /* client */); +int ProcFreeColors(ClientPtr /* client */); +int ProcFreeCursor(ClientPtr /* client */); +int ProcFreeGC(ClientPtr /* client */); +int ProcFreePixmap(ClientPtr /* client */); +int ProcGetAtomName(ClientPtr /* client */); +int ProcGetFontPath(ClientPtr /* client */); +int ProcGetGeometry(ClientPtr /* client */); +int ProcGetImage(ClientPtr /* client */); +int ProcGetKeyboardControl(ClientPtr /* client */); +int ProcGetKeyboardMapping(ClientPtr /* client */); +int ProcGetModifierMapping(ClientPtr /* client */); +int ProcGetMotionEvents(ClientPtr /* client */); +int ProcGetPointerControl(ClientPtr /* client */); +int ProcGetPointerMapping(ClientPtr /* client */); +int ProcGetProperty(ClientPtr /* client */); +int ProcGetScreenSaver(ClientPtr /* client */); +int ProcGetSelectionOwner(ClientPtr /* client */); +int ProcGetWindowAttributes(ClientPtr /* client */); +int ProcGrabServer(ClientPtr /* client */); +int ProcImageText16(ClientPtr /* client */); +int ProcImageText8(ClientPtr /* client */); +int ProcInitialConnection(ClientPtr /* client */); +int ProcInstallColormap(ClientPtr /* client */); +int ProcInternAtom(ClientPtr /* client */); +int ProcKillClient(ClientPtr /* client */); +int ProcListExtensions(ClientPtr /* client */); +int ProcListFonts(ClientPtr /* client */); +int ProcListFontsWithInfo(ClientPtr /* client */); +int ProcListHosts(ClientPtr /* client */); +int ProcListInstalledColormaps(ClientPtr /* client */); +int ProcListProperties(ClientPtr /* client */); +int ProcLookupColor(ClientPtr /* client */); +int ProcMapSubwindows(ClientPtr /* client */); +int ProcMapWindow(ClientPtr /* client */); +int ProcNoOperation(ClientPtr /* client */); +int ProcOpenFont(ClientPtr /* client */); +int ProcPolyArc(ClientPtr /* client */); +int ProcPolyFillArc(ClientPtr /* client */); +int ProcPolyFillRectangle(ClientPtr /* client */); +int ProcPolyLine(ClientPtr /* client */); +int ProcPolyPoint(ClientPtr /* client */); +int ProcPolyRectangle(ClientPtr /* client */); +int ProcPolySegment(ClientPtr /* client */); +int ProcPolyText(ClientPtr /* client */); +int ProcPutImage(ClientPtr /* client */); +int ProcQueryBestSize(ClientPtr /* client */); +int ProcQueryColors(ClientPtr /* client */); +int ProcQueryExtension(ClientPtr /* client */); +int ProcQueryFont(ClientPtr /* client */); +int ProcQueryKeymap(ClientPtr /* client */); +int ProcQueryTextExtents(ClientPtr /* client */); +int ProcQueryTree(ClientPtr /* client */); +int ProcReparentWindow(ClientPtr /* client */); +int ProcRotateProperties(ClientPtr /* client */); +int ProcSetClipRectangles(ClientPtr /* client */); +int ProcSetDashes(ClientPtr /* client */); +int ProcSetFontPath(ClientPtr /* client */); +int ProcSetModifierMapping(ClientPtr /* client */); +int ProcSetPointerMapping(ClientPtr /* client */); +int ProcSetScreenSaver(ClientPtr /* client */); +int ProcSetSelectionOwner(ClientPtr /* client */); +int ProcStoreColors(ClientPtr /* client */); +int ProcStoreNamedColor(ClientPtr /* client */); +int ProcTranslateCoords(ClientPtr /* client */); +int ProcUngrabServer(ClientPtr /* client */); +int ProcUninstallColormap(ClientPtr /* client */); +int ProcUnmapSubwindows(ClientPtr /* client */); +int ProcUnmapWindow(ClientPtr /* client */); #endif /* DISPATCH_H */ diff --git a/hw/dmx/dmx.c b/hw/dmx/dmx.c index 5718b6a59..1dee077b5 100644 --- a/hw/dmx/dmx.c +++ b/hw/dmx/dmx.c @@ -69,39 +69,7 @@ extern void DMXExtensionInit(void); static unsigned char DMXCode; -static DISPATCH_PROC(ProcDMXDispatch); -static DISPATCH_PROC(ProcDMXQueryVersion); -static DISPATCH_PROC(ProcDMXSync); -static DISPATCH_PROC(ProcDMXForceWindowCreation); -static DISPATCH_PROC(ProcDMXGetScreenCount); -static DISPATCH_PROC(ProcDMXGetScreenAttributes); -static DISPATCH_PROC(ProcDMXChangeScreensAttributes); -static DISPATCH_PROC(ProcDMXAddScreen); -static DISPATCH_PROC(ProcDMXRemoveScreen); -static DISPATCH_PROC(ProcDMXGetWindowAttributes); -static DISPATCH_PROC(ProcDMXGetDesktopAttributes); -static DISPATCH_PROC(ProcDMXChangeDesktopAttributes); -static DISPATCH_PROC(ProcDMXGetInputCount); -static DISPATCH_PROC(ProcDMXGetInputAttributes); -static DISPATCH_PROC(ProcDMXAddInput); -static DISPATCH_PROC(ProcDMXRemoveInput); -static DISPATCH_PROC(SProcDMXDispatch); -static DISPATCH_PROC(SProcDMXQueryVersion); -static DISPATCH_PROC(SProcDMXSync); -static DISPATCH_PROC(SProcDMXForceWindowCreation); -static DISPATCH_PROC(SProcDMXGetScreenCount); -static DISPATCH_PROC(SProcDMXGetScreenAttributes); -static DISPATCH_PROC(SProcDMXChangeScreensAttributes); -static DISPATCH_PROC(SProcDMXAddScreen); -static DISPATCH_PROC(SProcDMXRemoveScreen); -static DISPATCH_PROC(SProcDMXGetWindowAttributes); -static DISPATCH_PROC(SProcDMXGetDesktopAttributes); -static DISPATCH_PROC(SProcDMXChangeDesktopAttributes); -static DISPATCH_PROC(SProcDMXGetInputCount); -static DISPATCH_PROC(SProcDMXGetInputAttributes); -static DISPATCH_PROC(SProcDMXAddInput); -static DISPATCH_PROC(SProcDMXRemoveInput); static int _DMXXineramaActive(void) { @@ -111,17 +79,6 @@ static int _DMXXineramaActive(void) return 0; } -/** Initialize the extension. */ -void DMXExtensionInit(void) -{ - ExtensionEntry *extEntry; - - if ((extEntry = AddExtension(DMX_EXTENSION_NAME, 0, 0, - ProcDMXDispatch, SProcDMXDispatch, - NULL, StandardMinorOpcode))) - DMXCode = extEntry->base; -} - static void dmxSetScreenAttribute(int bit, DMXScreenAttributesPtr attr, CARD32 value) { @@ -1125,3 +1082,14 @@ static int SProcDMXDispatch (ClientPtr client) default: return BadRequest; } } + +/** Initialize the extension. */ +void DMXExtensionInit(void) +{ + ExtensionEntry *extEntry; + + if ((extEntry = AddExtension(DMX_EXTENSION_NAME, 0, 0, + ProcDMXDispatch, SProcDMXDispatch, + NULL, StandardMinorOpcode))) + DMXCode = extEntry->base; +} diff --git a/hw/kdrive/ephyr/ephyrdriext.c b/hw/kdrive/ephyr/ephyrdriext.c index ce584b051..8874a436e 100644 --- a/hw/kdrive/ephyr/ephyrdriext.c +++ b/hw/kdrive/ephyr/ephyrdriext.c @@ -72,23 +72,7 @@ typedef EphyrDRIScreenPrivRec* EphyrDRIScreenPrivPtr; static int DRIErrorBase; -static DISPATCH_PROC(ProcXF86DRIQueryVersion); -static DISPATCH_PROC(ProcXF86DRIQueryDirectRenderingCapable); -static DISPATCH_PROC(ProcXF86DRIOpenConnection); -static DISPATCH_PROC(ProcXF86DRICloseConnection); -static DISPATCH_PROC(ProcXF86DRIGetClientDriverName); -static DISPATCH_PROC(ProcXF86DRICreateContext); -static DISPATCH_PROC(ProcXF86DRIDestroyContext); -static DISPATCH_PROC(ProcXF86DRICreateDrawable); -static DISPATCH_PROC(ProcXF86DRIDestroyDrawable); -static DISPATCH_PROC(ProcXF86DRIGetDrawableInfo); -static DISPATCH_PROC(ProcXF86DRIGetDeviceInfo); -static DISPATCH_PROC(ProcXF86DRIDispatch); -static DISPATCH_PROC(ProcXF86DRIAuthConnection); -static DISPATCH_PROC(SProcXF86DRIQueryVersion); -static DISPATCH_PROC(SProcXF86DRIQueryDirectRenderingCapable); -static DISPATCH_PROC(SProcXF86DRIDispatch); static Bool ephyrDRIScreenInit (ScreenPtr a_screen) ; static Bool ephyrDRICreateWindow (WindowPtr a_win) ; @@ -119,65 +103,6 @@ static DevPrivateKeyRec ephyrDRIScreenKeyRec; #define GET_EPHYR_DRI_SCREEN_PRIV(screen) ((EphyrDRIScreenPrivPtr) \ dixLookupPrivate(&(screen)->devPrivates, ephyrDRIScreenKey)) - -Bool -ephyrDRIExtensionInit (ScreenPtr a_screen) -{ - Bool is_ok=FALSE ; - ExtensionEntry* extEntry=NULL; - EphyrDRIScreenPrivPtr screen_priv=NULL ; - - EPHYR_LOG ("enter\n") ; - if (!hostx_has_dri ()) { - EPHYR_LOG ("host does not have DRI extension\n") ; - goto out ; - } - EPHYR_LOG ("host X does have DRI extension\n") ; - if (!hostx_has_xshape ()) { - EPHYR_LOG ("host does not have XShape extension\n") ; - goto out ; - } - EPHYR_LOG ("host X does have XShape extension\n") ; - -#ifdef XF86DRI_EVENTS - EventType = CreateNewResourceType (XF86DRIFreeEvents, "DRIEvents"); - if (!EventType) { - EPHYR_LOG_ERROR ("failed to register DRI event resource type\n") ; - goto out ; - } -#endif - - if ((extEntry = AddExtension(XF86DRINAME, - XF86DRINumberEvents, - XF86DRINumberErrors, - ProcXF86DRIDispatch, - SProcXF86DRIDispatch, - NULL, - StandardMinorOpcode))) { - DRIReqCode = (unsigned char)extEntry->base; - DRIErrorBase = extEntry->errorBase; - } else { - EPHYR_LOG_ERROR ("failed to register DRI extension\n") ; - goto out ; - } - screen_priv = calloc(1, sizeof (EphyrDRIScreenPrivRec)) ; - if (!screen_priv) { - EPHYR_LOG_ERROR ("failed to allocate screen_priv\n") ; - goto out ; - } - dixSetPrivate(&a_screen->devPrivates, ephyrDRIScreenKey, screen_priv); - - if (!ephyrDRIScreenInit (a_screen)) { - EPHYR_LOG_ERROR ("ephyrDRIScreenInit() failed\n") ; - goto out ; - } - EphyrMirrorHostVisuals (a_screen) ; - is_ok=TRUE ; -out: - EPHYR_LOG ("leave\n") ; - return is_ok ; -} - static Bool ephyrDRIScreenInit (ScreenPtr a_screen) { @@ -1428,3 +1353,61 @@ SProcXF86DRIDispatch (register ClientPtr client) } } } + +Bool +ephyrDRIExtensionInit (ScreenPtr a_screen) +{ + Bool is_ok=FALSE ; + ExtensionEntry* extEntry=NULL; + EphyrDRIScreenPrivPtr screen_priv=NULL ; + + EPHYR_LOG ("enter\n") ; + if (!hostx_has_dri ()) { + EPHYR_LOG ("host does not have DRI extension\n") ; + goto out ; + } + EPHYR_LOG ("host X does have DRI extension\n") ; + if (!hostx_has_xshape ()) { + EPHYR_LOG ("host does not have XShape extension\n") ; + goto out ; + } + EPHYR_LOG ("host X does have XShape extension\n") ; + +#ifdef XF86DRI_EVENTS + EventType = CreateNewResourceType (XF86DRIFreeEvents, "DRIEvents"); + if (!EventType) { + EPHYR_LOG_ERROR ("failed to register DRI event resource type\n") ; + goto out ; + } +#endif + + if ((extEntry = AddExtension(XF86DRINAME, + XF86DRINumberEvents, + XF86DRINumberErrors, + ProcXF86DRIDispatch, + SProcXF86DRIDispatch, + NULL, + StandardMinorOpcode))) { + DRIReqCode = (unsigned char)extEntry->base; + DRIErrorBase = extEntry->errorBase; + } else { + EPHYR_LOG_ERROR ("failed to register DRI extension\n") ; + goto out ; + } + screen_priv = calloc(1, sizeof (EphyrDRIScreenPrivRec)) ; + if (!screen_priv) { + EPHYR_LOG_ERROR ("failed to allocate screen_priv\n") ; + goto out ; + } + dixSetPrivate(&a_screen->devPrivates, ephyrDRIScreenKey, screen_priv); + + if (!ephyrDRIScreenInit (a_screen)) { + EPHYR_LOG_ERROR ("ephyrDRIScreenInit() failed\n") ; + goto out ; + } + EphyrMirrorHostVisuals (a_screen) ; + is_ok=TRUE ; +out: + EPHYR_LOG ("leave\n") ; + return is_ok ; +} diff --git a/hw/xfree86/dixmods/extmod/Makefile.am b/hw/xfree86/dixmods/extmod/Makefile.am index d93e63afa..cce19f7da 100644 --- a/hw/xfree86/dixmods/extmod/Makefile.am +++ b/hw/xfree86/dixmods/extmod/Makefile.am @@ -4,7 +4,7 @@ extsmoduledir = $(moduledir)/extensions extsmodule_LTLIBRARIES = libextmod.la if DGA -DGA_SRCS = xf86dga2.c dgaproc.h xf86dgaext.h +DGA_SRCS = xf86dga2.c dgaproc.h endif if XV diff --git a/hw/xfree86/dixmods/extmod/xf86dga2.c b/hw/xfree86/dixmods/extmod/xf86dga2.c index e522b5c47..ca5d519e5 100644 --- a/hw/xfree86/dixmods/extmod/xf86dga2.c +++ b/hw/xfree86/dixmods/extmod/xf86dga2.c @@ -25,7 +25,6 @@ #include #include "swaprep.h" #include "dgaproc.h" -#include "xf86dgaext.h" #include "protocol-versions.h" #include @@ -34,24 +33,6 @@ #define DGA_PROTOCOL_OLD_SUPPORT 1 -static DISPATCH_PROC(ProcXDGADispatch); -static DISPATCH_PROC(SProcXDGADispatch); -static DISPATCH_PROC(ProcXDGAQueryVersion); -static DISPATCH_PROC(ProcXDGAQueryModes); -static DISPATCH_PROC(ProcXDGASetMode); -static DISPATCH_PROC(ProcXDGAOpenFramebuffer); -static DISPATCH_PROC(ProcXDGACloseFramebuffer); -static DISPATCH_PROC(ProcXDGASetViewport); -static DISPATCH_PROC(ProcXDGAInstallColormap); -static DISPATCH_PROC(ProcXDGASelectInput); -static DISPATCH_PROC(ProcXDGAFillRectangle); -static DISPATCH_PROC(ProcXDGACopyArea); -static DISPATCH_PROC(ProcXDGACopyTransparentArea); -static DISPATCH_PROC(ProcXDGAGetViewportStatus); -static DISPATCH_PROC(ProcXDGASync); -static DISPATCH_PROC(ProcXDGASetClientVersion); -static DISPATCH_PROC(ProcXDGAChangePixmapMode); -static DISPATCH_PROC(ProcXDGACreateColormap); static void XDGAResetProc(ExtensionEntry *extEntry); @@ -85,36 +66,6 @@ typedef struct { dixSetPrivate(&(c)->devPrivates, DGAClientPrivateKey, p) -void -XFree86DGAExtensionInit(INITARGS) -{ - ExtensionEntry* extEntry; - - if (!dixRegisterPrivateKey(&DGAClientPrivateKeyRec, PRIVATE_CLIENT, 0)) - return; - - if (!dixRegisterPrivateKey(&DGAScreenPrivateKeyRec, PRIVATE_SCREEN, 0)) - return; - - if ((extEntry = AddExtension(XF86DGANAME, - XF86DGANumberEvents, - XF86DGANumberErrors, - ProcXDGADispatch, - SProcXDGADispatch, - XDGAResetProc, - StandardMinorOpcode))) { - int i; - - DGAReqCode = (unsigned char)extEntry->base; - DGAErrorBase = extEntry->errorBase; - DGAEventBase = extEntry->eventBase; - for (i = KeyPress; i <= MotionNotify; i++) - SetCriticalEvent (DGAEventBase + i); - } -} - - - static void XDGAResetProc (ExtensionEntry *extEntry) { @@ -663,15 +614,6 @@ ProcXDGACreateColormap(ClientPtr client) #ifdef DGA_PROTOCOL_OLD_SUPPORT -static DISPATCH_PROC(ProcXF86DGADirectVideo); -static DISPATCH_PROC(ProcXF86DGAGetVidPage); -static DISPATCH_PROC(ProcXF86DGAGetVideoLL); -static DISPATCH_PROC(ProcXF86DGAGetViewPortSize); -static DISPATCH_PROC(ProcXF86DGASetVidPage); -static DISPATCH_PROC(ProcXF86DGASetViewPort); -static DISPATCH_PROC(ProcXF86DGAInstallColormap); -static DISPATCH_PROC(ProcXF86DGAQueryDirectVideo); -static DISPATCH_PROC(ProcXF86DGAViewPortChanged); static int @@ -1063,3 +1005,31 @@ XFree86DGARegister(INITARGS) { XDGAEventBase = &DGAEventBase; } + +void +XFree86DGAExtensionInit(INITARGS) +{ + ExtensionEntry* extEntry; + + if (!dixRegisterPrivateKey(&DGAClientPrivateKeyRec, PRIVATE_CLIENT, 0)) + return; + + if (!dixRegisterPrivateKey(&DGAScreenPrivateKeyRec, PRIVATE_SCREEN, 0)) + return; + + if ((extEntry = AddExtension(XF86DGANAME, + XF86DGANumberEvents, + XF86DGANumberErrors, + ProcXDGADispatch, + SProcXDGADispatch, + XDGAResetProc, + StandardMinorOpcode))) { + int i; + + DGAReqCode = (unsigned char)extEntry->base; + DGAErrorBase = extEntry->errorBase; + DGAEventBase = extEntry->eventBase; + for (i = KeyPress; i <= MotionNotify; i++) + SetCriticalEvent (DGAEventBase + i); + } +} diff --git a/hw/xfree86/dixmods/extmod/xf86dgaext.h b/hw/xfree86/dixmods/extmod/xf86dgaext.h deleted file mode 100644 index 2b1737305..000000000 --- a/hw/xfree86/dixmods/extmod/xf86dgaext.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifdef HAVE_DIX_CONFIG_H -#include -#endif - -#ifndef _XF86DGAEXT_H_ -#define _XF86DGAEXT_H_ - -extern DISPATCH_PROC(ProcXF86DGADispatch); - -#endif /* _XF86DGAEXT_H_ */ diff --git a/hw/xfree86/dixmods/extmod/xf86vmode.c b/hw/xfree86/dixmods/extmod/xf86vmode.c index 0001c9eeb..4737f2d96 100644 --- a/hw/xfree86/dixmods/extmod/xf86vmode.c +++ b/hw/xfree86/dixmods/extmod/xf86vmode.c @@ -65,48 +65,6 @@ typedef struct { #define VM_SETPRIV(c,p) \ dixSetPrivate(&(c)->devPrivates, VidModeClientPrivateKey, p) -static DISPATCH_PROC(ProcXF86VidModeDispatch); -static DISPATCH_PROC(ProcXF86VidModeGetAllModeLines); -static DISPATCH_PROC(ProcXF86VidModeGetModeLine); -static DISPATCH_PROC(ProcXF86VidModeGetMonitor); -static DISPATCH_PROC(ProcXF86VidModeLockModeSwitch); -static DISPATCH_PROC(ProcXF86VidModeAddModeLine); -static DISPATCH_PROC(ProcXF86VidModeDeleteModeLine); -static DISPATCH_PROC(ProcXF86VidModeModModeLine); -static DISPATCH_PROC(ProcXF86VidModeValidateModeLine); -static DISPATCH_PROC(ProcXF86VidModeQueryVersion); -static DISPATCH_PROC(ProcXF86VidModeSwitchMode); -static DISPATCH_PROC(ProcXF86VidModeSwitchToMode); -static DISPATCH_PROC(ProcXF86VidModeGetViewPort); -static DISPATCH_PROC(ProcXF86VidModeSetViewPort); -static DISPATCH_PROC(ProcXF86VidModeGetDotClocks); -static DISPATCH_PROC(ProcXF86VidModeSetGamma); -static DISPATCH_PROC(ProcXF86VidModeGetGamma); -static DISPATCH_PROC(ProcXF86VidModeSetClientVersion); -static DISPATCH_PROC(ProcXF86VidModeGetGammaRamp); -static DISPATCH_PROC(ProcXF86VidModeSetGammaRamp); -static DISPATCH_PROC(ProcXF86VidModeGetGammaRampSize); -static DISPATCH_PROC(SProcXF86VidModeDispatch); -static DISPATCH_PROC(SProcXF86VidModeGetAllModeLines); -static DISPATCH_PROC(SProcXF86VidModeGetModeLine); -static DISPATCH_PROC(SProcXF86VidModeGetMonitor); -static DISPATCH_PROC(SProcXF86VidModeLockModeSwitch); -static DISPATCH_PROC(SProcXF86VidModeAddModeLine); -static DISPATCH_PROC(SProcXF86VidModeDeleteModeLine); -static DISPATCH_PROC(SProcXF86VidModeModModeLine); -static DISPATCH_PROC(SProcXF86VidModeValidateModeLine); -static DISPATCH_PROC(SProcXF86VidModeQueryVersion); -static DISPATCH_PROC(SProcXF86VidModeSwitchMode); -static DISPATCH_PROC(SProcXF86VidModeSwitchToMode); -static DISPATCH_PROC(SProcXF86VidModeGetViewPort); -static DISPATCH_PROC(SProcXF86VidModeSetViewPort); -static DISPATCH_PROC(SProcXF86VidModeGetDotClocks); -static DISPATCH_PROC(SProcXF86VidModeSetGamma); -static DISPATCH_PROC(SProcXF86VidModeGetGamma); -static DISPATCH_PROC(SProcXF86VidModeSetClientVersion); -static DISPATCH_PROC(SProcXF86VidModeGetGammaRamp); -static DISPATCH_PROC(SProcXF86VidModeSetGammaRamp); -static DISPATCH_PROC(SProcXF86VidModeGetGammaRampSize); #if 0 static unsigned char XF86VidModeReqCode = 0; @@ -159,58 +117,6 @@ static DevPrivateKeyRec ScreenPrivateKeyRec; # define DEBUG_P(x) /**/ #endif -void -XFree86VidModeExtensionInit(void) -{ - ExtensionEntry* extEntry; - ScreenPtr pScreen; - int i; - Bool enabled = FALSE; - - DEBUG_P("XFree86VidModeExtensionInit"); - - if (!dixRegisterPrivateKey(&VidModeClientPrivateKeyRec, PRIVATE_CLIENT, 0)) - return; -#ifdef XF86VIDMODE_EVENTS - if (!dixRegisterPrivateKey(&ScreenPrivateKeyRec, PRIVATE_SCREEN, 0)) - return; -#endif - -#ifdef XF86VIDMODE_EVENTS - EventType = CreateNewResourceType(XF86VidModeFreeEvents, "VidModeEvent"); -#endif - - for(i = 0; i < screenInfo.numScreens; i++) { - pScreen = screenInfo.screens[i]; - if (VidModeExtensionInit(pScreen)) - enabled = TRUE; - } - /* This means that the DDX doesn't want the vidmode extension enabled */ - if (!enabled) - return; - - if ( -#ifdef XF86VIDMODE_EVENTS - EventType && -#endif - (extEntry = AddExtension(XF86VIDMODENAME, - XF86VidModeNumberEvents, - XF86VidModeNumberErrors, - ProcXF86VidModeDispatch, - SProcXF86VidModeDispatch, - NULL, - StandardMinorOpcode))) { -#if 0 - XF86VidModeReqCode = (unsigned char)extEntry->base; -#endif - VidModeErrorBase = extEntry->errorBase; -#ifdef XF86VIDMODE_EVENTS - XF86VidModeEventBase = extEntry->eventBase; - EventSwapVector[XF86VidModeEventBase] = (EventSwapPtr)SXF86VidModeNotifyEvent; -#endif - } -} - static int ClientMajorVersion(ClientPtr client) { @@ -2166,3 +2072,55 @@ SProcXF86VidModeDispatch(ClientPtr client) return VidModeErrorBase + XF86VidModeClientNotLocal; } } + +void +XFree86VidModeExtensionInit(void) +{ + ExtensionEntry* extEntry; + ScreenPtr pScreen; + int i; + Bool enabled = FALSE; + + DEBUG_P("XFree86VidModeExtensionInit"); + + if (!dixRegisterPrivateKey(&VidModeClientPrivateKeyRec, PRIVATE_CLIENT, 0)) + return; +#ifdef XF86VIDMODE_EVENTS + if (!dixRegisterPrivateKey(&ScreenPrivateKeyRec, PRIVATE_SCREEN, 0)) + return; +#endif + +#ifdef XF86VIDMODE_EVENTS + EventType = CreateNewResourceType(XF86VidModeFreeEvents, "VidModeEvent"); +#endif + + for(i = 0; i < screenInfo.numScreens; i++) { + pScreen = screenInfo.screens[i]; + if (VidModeExtensionInit(pScreen)) + enabled = TRUE; + } + /* This means that the DDX doesn't want the vidmode extension enabled */ + if (!enabled) + return; + + if ( +#ifdef XF86VIDMODE_EVENTS + EventType && +#endif + (extEntry = AddExtension(XF86VIDMODENAME, + XF86VidModeNumberEvents, + XF86VidModeNumberErrors, + ProcXF86VidModeDispatch, + SProcXF86VidModeDispatch, + NULL, + StandardMinorOpcode))) { +#if 0 + XF86VidModeReqCode = (unsigned char)extEntry->base; +#endif + VidModeErrorBase = extEntry->errorBase; +#ifdef XF86VIDMODE_EVENTS + XF86VidModeEventBase = extEntry->eventBase; + EventSwapVector[XF86VidModeEventBase] = (EventSwapPtr)SXF86VidModeNotifyEvent; +#endif + } +} diff --git a/hw/xfree86/dri/xf86dri.c b/hw/xfree86/dri/xf86dri.c index f32565d3c..20baa24f2 100644 --- a/hw/xfree86/dri/xf86dri.c +++ b/hw/xfree86/dri/xf86dri.c @@ -64,23 +64,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. static int DRIErrorBase; -static DISPATCH_PROC(ProcXF86DRIQueryVersion); -static DISPATCH_PROC(ProcXF86DRIQueryDirectRenderingCapable); -static DISPATCH_PROC(ProcXF86DRIOpenConnection); -static DISPATCH_PROC(ProcXF86DRICloseConnection); -static DISPATCH_PROC(ProcXF86DRIGetClientDriverName); -static DISPATCH_PROC(ProcXF86DRICreateContext); -static DISPATCH_PROC(ProcXF86DRIDestroyContext); -static DISPATCH_PROC(ProcXF86DRICreateDrawable); -static DISPATCH_PROC(ProcXF86DRIDestroyDrawable); -static DISPATCH_PROC(ProcXF86DRIGetDrawableInfo); -static DISPATCH_PROC(ProcXF86DRIGetDeviceInfo); -static DISPATCH_PROC(ProcXF86DRIDispatch); -static DISPATCH_PROC(ProcXF86DRIAuthConnection); -static DISPATCH_PROC(SProcXF86DRIQueryVersion); -static DISPATCH_PROC(SProcXF86DRIQueryDirectRenderingCapable); -static DISPATCH_PROC(SProcXF86DRIDispatch); static void XF86DRIResetProc(ExtensionEntry* extEntry); @@ -88,32 +72,6 @@ static unsigned char DRIReqCode = 0; extern void XFree86DRIExtensionInit(void); -void -XFree86DRIExtensionInit(void) -{ - ExtensionEntry* extEntry; - -#ifdef XF86DRI_EVENTS - EventType = CreateNewResourceType(XF86DRIFreeEvents, "DRIEvent"); -#endif - - if ( - DRIExtensionInit() && -#ifdef XF86DRI_EVENTS - EventType && ScreenPrivateIndex != -1 && -#endif - (extEntry = AddExtension(XF86DRINAME, - XF86DRINumberEvents, - XF86DRINumberErrors, - ProcXF86DRIDispatch, - SProcXF86DRIDispatch, - XF86DRIResetProc, - StandardMinorOpcode))) { - DRIReqCode = (unsigned char)extEntry->base; - DRIErrorBase = extEntry->errorBase; - } -} - /*ARGSUSED*/ static void XF86DRIResetProc ( @@ -677,3 +635,29 @@ SProcXF86DRIDispatch ( return DRIErrorBase + XF86DRIClientNotLocal; } } + +void +XFree86DRIExtensionInit(void) +{ + ExtensionEntry* extEntry; + +#ifdef XF86DRI_EVENTS + EventType = CreateNewResourceType(XF86DRIFreeEvents, "DRIEvent"); +#endif + + if ( + DRIExtensionInit() && +#ifdef XF86DRI_EVENTS + EventType && ScreenPrivateIndex != -1 && +#endif + (extEntry = AddExtension(XF86DRINAME, + XF86DRINumberEvents, + XF86DRINumberErrors, + ProcXF86DRIDispatch, + SProcXF86DRIDispatch, + XF86DRIResetProc, + StandardMinorOpcode))) { + DRIReqCode = (unsigned char)extEntry->base; + DRIErrorBase = extEntry->errorBase; + } +} diff --git a/hw/xquartz/applewm.c b/hw/xquartz/applewm.c index 1c77ad984..cd2bdf0ba 100644 --- a/hw/xquartz/applewm.c +++ b/hw/xquartz/applewm.c @@ -70,8 +70,6 @@ static AppleWMProcsPtr appleWMProcs; static int WMErrorBase; -static DISPATCH_PROC(ProcAppleWMDispatch); -static DISPATCH_PROC(SProcAppleWMDispatch); static unsigned char WMReqCode = 0; static int WMEventBase = 0; diff --git a/hw/xquartz/xpr/appledri.c b/hw/xquartz/xpr/appledri.c index 3afe2443c..ebd4a4374 100644 --- a/hw/xquartz/xpr/appledri.c +++ b/hw/xquartz/xpr/appledri.c @@ -59,8 +59,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. static int DRIErrorBase = 0; -static DISPATCH_PROC(ProcAppleDRIDispatch); -static DISPATCH_PROC(SProcAppleDRIDispatch); static void AppleDRIResetProc(ExtensionEntry* extEntry); static int ProcAppleDRICreatePixmap(ClientPtr client); diff --git a/hw/xwin/InitInput.c b/hw/xwin/InitInput.c index 705e618de..0ffa94092 100644 --- a/hw/xwin/InitInput.c +++ b/hw/xwin/InitInput.c @@ -39,9 +39,9 @@ */ #ifdef XWIN_CLIPBOARD -DISPATCH_PROC(winProcEstablishConnection); -DISPATCH_PROC(winProcQueryTree); -DISPATCH_PROC(winProcSetSelectionOwner); +int winProcEstablishConnection(ClientPtr /* client */); +int winProcQueryTree(ClientPtr /* client */); +int winProcSetSelectionOwner(ClientPtr /* client */); #endif diff --git a/hw/xwin/winclipboardinit.c b/hw/xwin/winclipboardinit.c index bec63ac8e..d74cd03e2 100644 --- a/hw/xwin/winclipboardinit.c +++ b/hw/xwin/winclipboardinit.c @@ -41,7 +41,7 @@ typedef int (*winDispatchProcPtr) (ClientPtr); -DISPATCH_PROC(winProcSetSelectionOwner); +int winProcSetSelectionOwner(ClientPtr /* client */); /* diff --git a/hw/xwin/winclipboardwrappers.c b/hw/xwin/winclipboardwrappers.c index 658d050d2..bdacefba5 100755 --- a/hw/xwin/winclipboardwrappers.c +++ b/hw/xwin/winclipboardwrappers.c @@ -52,9 +52,9 @@ * Local function prototypes */ -DISPATCH_PROC(winProcEstablishConnection); -DISPATCH_PROC(winProcQueryTree); -DISPATCH_PROC(winProcSetSelectionOwner); +int winProcEstablishConnection(ClientPtr /* client */); +int winProcQueryTree(ClientPtr /* client */); +int winProcSetSelectionOwner(ClientPtr /* client */); /* diff --git a/hw/xwin/winwindowswm.c b/hw/xwin/winwindowswm.c index 34d7f4b5c..ca3dbc325 100755 --- a/hw/xwin/winwindowswm.c +++ b/hw/xwin/winwindowswm.c @@ -45,8 +45,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. static int WMErrorBase; -static DISPATCH_PROC(ProcWindowsWMDispatch); -static DISPATCH_PROC(SProcWindowsWMDispatch); static unsigned char WMReqCode = 0; static int WMEventBase = 0; From e416965bfd08dfae5d2b7932b5118efac20546ad Mon Sep 17 00:00:00 2001 From: Tiago Vignatti Date: Sun, 18 Jul 2010 18:56:02 +0300 Subject: [PATCH 092/125] dix: remove proc tables initialization Signed-off-by: Tiago Vignatti Reviewed-by: Mikhail Gusarov --- dix/dispatch.c | 20 -- dix/main.c | 4 - dix/tables.c | 508 +++++++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 492 insertions(+), 40 deletions(-) diff --git a/dix/dispatch.c b/dix/dispatch.c index 0e5aced1a..17f308cf5 100644 --- a/dix/dispatch.c +++ b/dix/dispatch.c @@ -238,7 +238,6 @@ long SmartLastPrint; #endif void Dispatch(void); -void InitProcVectors(void); static int SmartScheduleClient (int *clientReady, int nready) @@ -3387,25 +3386,6 @@ int ProcNoOperation(ClientPtr client) return Success; } -void -InitProcVectors(void) -{ - int i; - for (i = 0; i<256; i++) - { - if(!ProcVector[i]) - { - ProcVector[i] = SwappedProcVector[i] = ProcBadRequest; - ReplySwapVector[i] = ReplyNotSwappd; - } - } - for(i = LASTEvent; i < 128; i++) - { - EventSwapVector[i] = NotImplemented; - } - -} - /********************** * CloseDownClient * diff --git a/dix/main.c b/dix/main.c index 47a932f15..692bec1c5 100644 --- a/dix/main.c +++ b/dix/main.c @@ -108,7 +108,6 @@ Equipment Corporation. #include "panoramiXsrv.h" #else #include "dixevents.h" /* InitEvents() */ -#include "dispatch.h" /* InitProcVectors() */ #endif #ifdef DPMSExtension @@ -118,8 +117,6 @@ Equipment Corporation. extern void Dispatch(void); -extern void InitProcVectors(void); - #ifdef XQUARTZ #include @@ -171,7 +168,6 @@ int main(int argc, char *argv[], char *envp[]) if(serverGeneration == 1) { CreateWellKnownSockets(); - InitProcVectors(); for (i=1; i Date: Thu, 23 Sep 2010 09:04:11 -0400 Subject: [PATCH 093/125] glx: Fix use after free in DrawableGone MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (note that nearly identical patches were proposed by Kristian and Chris) Signed-off-by: Kristian Høgsberg Signed-off-by: Chris Wilson Reported-by: Julien Cristau Reviewed-by: Adam Jackson Reviewed-by: Jamey Sharp Tested-by: Chris Wilson Signed-off-by: Keith Packard --- glx/glxext.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/glx/glxext.c b/glx/glxext.c index e203156e4..f5ebe4f7e 100644 --- a/glx/glxext.c +++ b/glx/glxext.c @@ -124,7 +124,7 @@ static int glxBlockClients; */ static Bool DrawableGone(__GLXdrawable *glxPriv, XID xid) { - __GLXcontext *c; + __GLXcontext *c, *next; /* If this drawable was created using glx 1.3 drawable * constructors, we added it as a glx drawable resource under both @@ -137,7 +137,8 @@ static Bool DrawableGone(__GLXdrawable *glxPriv, XID xid) FreeResourceByType(glxPriv->drawId, __glXDrawableRes, TRUE); } - for (c = glxAllContexts; c; c = c->next) { + for (c = glxAllContexts; c; c = next) { + next = c->next; if (c->isCurrent && (c->drawPriv == glxPriv || c->readPriv == glxPriv)) { int i; @@ -160,15 +161,13 @@ static Bool DrawableGone(__GLXdrawable *glxPriv, XID xid) } } } - - if (!c->idExists) { - __glXFreeContext(c); - } } if (c->drawPriv == glxPriv) c->drawPriv = NULL; if (c->readPriv == glxPriv) c->readPriv = NULL; + if (!c->idExists && !c->isCurrent) + __glXFreeContext(c); } glxPriv->destroy(glxPriv); From fdabcec57ae0fdc9910060609bb0848552c1db4d Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Mon, 27 Sep 2010 17:30:13 +0100 Subject: [PATCH 094/125] modes: Beware the driver switching root pixmaps Program received signal SIGSEGV, Segmentation fault. 0x080d4a2d in xf86RandR12ScreenSetSize (pScreen=0x8dca3a0, width=800, height=600, mmWidth=210, mmHeight=157) at ../../../../hw/xfree86/modes/xf86RandR12.c:731 731 ../../../../hw/xfree86/modes/xf86RandR12.c: No such file or directory. in ../../../../hw/xfree86/modes/xf86RandR12.c (gdb) bt full height=600, mmWidth=210, mmHeight=157) at ../../../../hw/xfree86/modes/xf86RandR12.c:731 randrp = 0x8dcae68 pScrn = 0x8dbeb28 config = pRoot = 0x8e08e30 pScrnPix = 0xb6d12008 ret = 1 c = mmWidth=210, mmHeight=157) at ../../randr/rrscreen.c:185 No locals. at ../../randr/rrscreen.c:307 pWin = 0x8e08e30 pScreen = 0x8dca3a0 i = rc = 0 ../../randr/randr.c:485 Signed-off-by: Chris Wilson Cc: Julien Cristau Tested-by: Julien Cristau Cc: Keith Packard Reviewed-by: Keith Packard Signed-off-by: Keith Packard --- hw/xfree86/modes/xf86RandR12.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c index dd2bdaca0..8a593a7e5 100644 --- a/hw/xfree86/modes/xf86RandR12.c +++ b/hw/xfree86/modes/xf86RandR12.c @@ -677,7 +677,7 @@ xf86RandR12ScreenSetSize (ScreenPtr pScreen, ScrnInfoPtr pScrn = XF86SCRNINFO(pScreen); xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn); WindowPtr pRoot = pScreen->root; - PixmapPtr pScrnPix = (*pScreen->GetScreenPixmap)(pScreen); + PixmapPtr pScrnPix; Bool ret = FALSE; int c; @@ -714,6 +714,7 @@ xf86RandR12ScreenSetSize (ScreenPtr pScreen, } } + pScrnPix = (*pScreen->GetScreenPixmap)(pScreen); pScreen->width = pScrnPix->drawable.width = width; pScreen->height = pScrnPix->drawable.height = height; randrp->mmWidth = pScreen->mmWidth = mmWidth; From 5c6a2f93ebc16a78093782b442306de23ae94e78 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Mon, 27 Sep 2010 19:39:23 +0100 Subject: [PATCH 095/125] xfree86: Kill pixmapPrivate with a vengeance (v2) ScrnInfo->pixmapPrivate only existed in order to catch invalid access to the framebuffer by making the backing data NULL across the VT switch. This was causing more confusion in the higher layers during mode setting without any real benefit, so remove it. v2: Kill ShadowModifyPixmapHeader() as well. Signed-off-by: Chris Wilson Cc: Julien Cristau Cc: Andrew Guertin Reviewed-by: Keith Packard Signed-off-by: Keith Packard --- hw/xfree86/common/xf86Helper.c | 11 ------- hw/xfree86/common/xf86str.h | 1 - hw/xfree86/modes/xf86RandR12.c | 9 ------ hw/xfree86/shadowfb/shadow.c | 53 ---------------------------------- 4 files changed, 74 deletions(-) diff --git a/hw/xfree86/common/xf86Helper.c b/hw/xfree86/common/xf86Helper.c index 90e0c6702..97e5aec75 100644 --- a/hw/xfree86/common/xf86Helper.c +++ b/hw/xfree86/common/xf86Helper.c @@ -1179,10 +1179,6 @@ xf86EnableDisableFBAccess(int scrnIndex, Bool enable) pspix = (*pScreen->GetScreenPixmap) (pScreen); if (enable) { - /* - * Restore the screen pixmap devPrivate field - */ - pspix->devPrivate = pScrnInfo->pixmapPrivate; /* * Restore all of the clip lists on the screen */ @@ -1196,13 +1192,6 @@ xf86EnableDisableFBAccess(int scrnIndex, Bool enable) * Empty all of the clip lists on the screen */ xf86SetRootClip (pScreen, FALSE); - /* - * save the screen pixmap devPrivate field and - * replace it with NULL so accidental references - * to the frame buffer are caught - */ - pScrnInfo->pixmapPrivate = pspix->devPrivate; - pspix->devPrivate.ptr = NULL; } } diff --git a/hw/xfree86/common/xf86str.h b/hw/xfree86/common/xf86str.h index c9b261d66..b979884ff 100644 --- a/hw/xfree86/common/xf86str.h +++ b/hw/xfree86/common/xf86str.h @@ -765,7 +765,6 @@ typedef struct _ScrnInfoRec { /* Allow screens to be enabled/disabled individually */ Bool vtSema; - DevUnion pixmapPrivate; /* saved devPrivate from pixmap */ /* hw cursor moves at SIGIO time */ Bool silkenMouse; diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c index 8a593a7e5..ba0862a6c 100644 --- a/hw/xfree86/modes/xf86RandR12.c +++ b/hw/xfree86/modes/xf86RandR12.c @@ -511,7 +511,6 @@ xf86RandR12SetMode (ScreenPtr pScreen, WindowPtr pRoot = pScreen->root; DisplayModePtr currentMode = NULL; Bool ret = TRUE; - PixmapPtr pspix = NULL; if (pRoot) (*scrp->EnableDisableFBAccess) (pScreen->myNum, FALSE); @@ -560,14 +559,6 @@ xf86RandR12SetMode (ScreenPtr pScreen, pScreen->mmHeight = oldmmHeight; scrp->currentMode = currentMode; } - /* - * Get the new Screen pixmap ptr as SwitchMode might have called - * ModifyPixmapHeader and xf86EnableDisableFBAccess will put it back... - * Unfortunately. - */ - pspix = (*pScreen->GetScreenPixmap) (pScreen); - if (pspix->devPrivate.ptr) - scrp->pixmapPrivate = pspix->devPrivate; /* * Make sure the layout is correct diff --git a/hw/xfree86/shadowfb/shadow.c b/hw/xfree86/shadowfb/shadow.c index 0af53d1b7..5cc476a24 100644 --- a/hw/xfree86/shadowfb/shadow.c +++ b/hw/xfree86/shadowfb/shadow.c @@ -36,15 +36,6 @@ static void ShadowCopyWindow( RegionPtr prgn ); static Bool ShadowCreateGC(GCPtr pGC); -static Bool ShadowModifyPixmapHeader( - PixmapPtr pPixmap, - int width, - int height, - int depth, - int bitsPerPixel, - int devKind, - pointer pPixData -); static Bool ShadowEnterVT(int index, int flags); static void ShadowLeaveVT(int index, int flags); @@ -189,7 +180,6 @@ ShadowFBInit2 ( pScreen->CloseScreen = ShadowCloseScreen; pScreen->CopyWindow = ShadowCopyWindow; pScreen->CreateGC = ShadowCreateGC; - pScreen->ModifyPixmapHeader = ShadowModifyPixmapHeader; pScrn->EnterVT = ShadowEnterVT; pScrn->LeaveVT = ShadowLeaveVT; @@ -310,49 +300,6 @@ ShadowCopyWindow( } } -static Bool -ShadowModifyPixmapHeader( - PixmapPtr pPixmap, - int width, - int height, - int depth, - int bitsPerPixel, - int devKind, - pointer pPixData -) -{ - ScreenPtr pScreen; - ScrnInfoPtr pScrn; - ShadowScreenPtr pPriv; - Bool retval; - PixmapPtr pScreenPix; - - if (!pPixmap) - return FALSE; - - pScreen = pPixmap->drawable.pScreen; - pScrn = xf86Screens[pScreen->myNum]; - - pScreenPix = (*pScreen->GetScreenPixmap)(pScreen); - - if (pPixmap == pScreenPix && !pScrn->vtSema) - pScreenPix->devPrivate = pScrn->pixmapPrivate; - - pPriv = GET_SCREEN_PRIVATE(pScreen); - - pScreen->ModifyPixmapHeader = pPriv->ModifyPixmapHeader; - retval = (*pScreen->ModifyPixmapHeader)(pPixmap, - width, height, depth, bitsPerPixel, devKind, pPixData); - pScreen->ModifyPixmapHeader = ShadowModifyPixmapHeader; - - if (pPixmap == pScreenPix && !pScrn->vtSema) - { - pScrn->pixmapPrivate = pScreenPix->devPrivate; - pScreenPix->devPrivate.ptr = 0; - } - return retval; -} - static void ShadowComposite( CARD8 op, From 9df4fb0adf66fb82f0c007897d79af0f54a6dad9 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Mon, 27 Sep 2010 17:06:46 -0400 Subject: [PATCH 096/125] xfree86: Add 18bpp support Signed-off-by: Adam Jackson Reviewed-by: Keith Packard Signed-off-by: Keith Packard --- hw/xfree86/common/xf86Helper.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hw/xfree86/common/xf86Helper.c b/hw/xfree86/common/xf86Helper.c index 97e5aec75..edc8e47be 100644 --- a/hw/xfree86/common/xf86Helper.c +++ b/hw/xfree86/common/xf86Helper.c @@ -776,6 +776,9 @@ xf86SetWeight(ScrnInfoPtr scrp, rgb weight, rgb mask) scrp->weight.red = scrp->weight.blue = 5; scrp->weight.green = 6; break; + case 18: + scrp->weight.red = scrp->weight.green = scrp->weight.blue = 6; + break; case 24: scrp->weight.red = scrp->weight.green = scrp->weight.blue = 8; break; From c36ca7b1862ecd86df089f4e1933379a113928ea Mon Sep 17 00:00:00 2001 From: Gaetan Nadon Date: Sat, 25 Sep 2010 10:05:10 -0400 Subject: [PATCH 097/125] config: remove --with-dri-driver-path option, use dri.pc #29740 The trusted location of the dri driver directory can be obtained from the mesa dri.pc pkg-config file. Reviewed-by: Jon TURNEY Acked-by: Matt Turner Reviewed-by: Dan Nicholson Signed-off-by: Gaetan Nadon Signed-off-by: Keith Packard --- configure.ac | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac index 95f7a76a5..825eb696e 100644 --- a/configure.ac +++ b/configure.ac @@ -601,9 +601,6 @@ AC_ARG_ENABLE(pc98, AC_HELP_STRING([--enable-pc98], [Enable PC98 support in [SUPPORT_PC98=auto]) dnl GLX build options -AC_ARG_WITH(dri-driver-path, AS_HELP_STRING([--with-dri-driver-path=PATH], [Path to DRI drivers (default: ${libdir}/dri)]), - [ DRI_DRIVER_PATH="$withval" ], - [ DRI_DRIVER_PATH="${libdir}/dri" ]) AC_ARG_ENABLE(aiglx, AS_HELP_STRING([--enable-aiglx], [Build accelerated indirect GLX (default: enabled)]), [AIGLX=$enableval], [AIGLX=yes]) @@ -1258,7 +1255,8 @@ AC_DEFINE_DIR(COMPILEDDEFAULTFONTPATH, FONTPATH, [Default font path]) AC_DEFINE_DIR(PCI_TXT_IDS_PATH, PCI_TXT_IDS_DIR, [Default PCI text file ID path]) AC_DEFINE_DIR(SERVER_MISC_CONFIG_PATH, SERVERCONFIG, [Server miscellaneous config path]) AC_DEFINE_DIR(BASE_FONT_PATH, FONTROOTDIR, [Default base font path]) -AC_DEFINE_DIR(DRI_DRIVER_PATH, DRI_DRIVER_PATH, [Default DRI driver path]) +dridriverdir=`$PKG_CONFIG --variable=dridriverdir dri` +AC_DEFINE_DIR(DRI_DRIVER_PATH, dridriverdir, [Default DRI driver path]) AC_DEFINE_UNQUOTED(XVENDORNAME, ["$VENDOR_NAME"], [Vendor name]) AC_DEFINE_UNQUOTED(XVENDORNAMESHORT, ["$VENDOR_NAME_SHORT"], [Short vendor name]) AC_DEFINE_UNQUOTED(XORG_DATE, ["$RELEASE_DATE"], [Vendor release]) From f4926709485c0605f0b1171c84c803b68eebfc38 Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Tue, 28 Sep 2010 09:48:41 -0700 Subject: [PATCH 098/125] XQuartz: Move use of static dispatch procs after declaration This fixes fallout from cbd4d5dbb70db62ba1cb79c7b904e6fa11f62d7e Signed-off-by: Jeremy Huddleston --- hw/xquartz/applewm.c | 54 +++++++++++++++++++-------------------- hw/xquartz/xpr/appledri.c | 41 +++++++++++++++-------------- 2 files changed, 47 insertions(+), 48 deletions(-) diff --git a/hw/xquartz/applewm.c b/hw/xquartz/applewm.c index cd2bdf0ba..ec20534e0 100644 --- a/hw/xquartz/applewm.c +++ b/hw/xquartz/applewm.c @@ -103,33 +103,6 @@ make_box (int x, int y, int w, int h) return r; } -void -AppleWMExtensionInit( - AppleWMProcsPtr procsPtr) -{ - ExtensionEntry* extEntry; - - ClientType = CreateNewResourceType(WMFreeClient, "WMClient"); - EventType = CreateNewResourceType(WMFreeEvents, "WMEvent"); - eventResource = FakeClientID(0); - - if (ClientType && EventType && - (extEntry = AddExtension(APPLEWMNAME, - AppleWMNumberEvents, - AppleWMNumberErrors, - ProcAppleWMDispatch, - SProcAppleWMDispatch, - NULL, - StandardMinorOpcode))) - { - WMReqCode = (unsigned char)extEntry->base; - WMErrorBase = extEntry->errorBase; - WMEventBase = extEntry->eventBase; - EventSwapVector[WMEventBase] = (EventSwapPtr) SNotifyEvent; - appleWMProcs = procsPtr; - } -} - /* Updates the _NATIVE_SCREEN_ORIGIN property on the given root window. */ void AppleWMSetScreenOrigin( @@ -734,3 +707,30 @@ SProcAppleWMDispatch ( return BadRequest; } } + +void +AppleWMExtensionInit( + AppleWMProcsPtr procsPtr) +{ + ExtensionEntry* extEntry; + + ClientType = CreateNewResourceType(WMFreeClient, "WMClient"); + EventType = CreateNewResourceType(WMFreeEvents, "WMEvent"); + eventResource = FakeClientID(0); + + if (ClientType && EventType && + (extEntry = AddExtension(APPLEWMNAME, + AppleWMNumberEvents, + AppleWMNumberErrors, + ProcAppleWMDispatch, + SProcAppleWMDispatch, + NULL, + StandardMinorOpcode))) + { + WMReqCode = (unsigned char)extEntry->base; + WMErrorBase = extEntry->errorBase; + WMEventBase = extEntry->eventBase; + EventSwapVector[WMEventBase] = (EventSwapPtr) SNotifyEvent; + appleWMProcs = procsPtr; + } +} diff --git a/hw/xquartz/xpr/appledri.c b/hw/xquartz/xpr/appledri.c index ebd4a4374..ff70a381a 100644 --- a/hw/xquartz/xpr/appledri.c +++ b/hw/xquartz/xpr/appledri.c @@ -76,27 +76,6 @@ typedef struct _DRIEvent { unsigned int mask; } DRIEventRec; - -void -AppleDRIExtensionInit(void) -{ - ExtensionEntry* extEntry; - - if (DRIExtensionInit() && - (extEntry = AddExtension(APPLEDRINAME, - AppleDRINumberEvents, - AppleDRINumberErrors, - ProcAppleDRIDispatch, - SProcAppleDRIDispatch, - AppleDRIResetProc, - StandardMinorOpcode))) { - DRIReqCode = (unsigned char)extEntry->base; - DRIErrorBase = extEntry->errorBase; - DRIEventBase = extEntry->eventBase; - EventSwapVector[DRIEventBase] = (EventSwapPtr) SNotifyEvent; - } -} - /*ARGSUSED*/ static void AppleDRIResetProc ( @@ -419,3 +398,23 @@ SProcAppleDRIDispatch ( return BadRequest; } } + +void +AppleDRIExtensionInit(void) +{ + ExtensionEntry* extEntry; + + if (DRIExtensionInit() && + (extEntry = AddExtension(APPLEDRINAME, + AppleDRINumberEvents, + AppleDRINumberErrors, + ProcAppleDRIDispatch, + SProcAppleDRIDispatch, + AppleDRIResetProc, + StandardMinorOpcode))) { + DRIReqCode = (unsigned char)extEntry->base; + DRIErrorBase = extEntry->errorBase; + DRIEventBase = extEntry->eventBase; + EventSwapVector[DRIEventBase] = (EventSwapPtr) SNotifyEvent; + } +} From 2d411472c2915614bdeb8fdc15d19dae4621444d Mon Sep 17 00:00:00 2001 From: Jan Hauffa Date: Fri, 16 Jul 2010 17:18:03 +0200 Subject: [PATCH 099/125] XQuartz: RandR: Implement basic RandR functionality. Querying and changing of resolution and refresh rate is supported, rotation is not implemented yet. Signed-off-by: Jan Hauffa Reviewed-by: Jeremy Huddleston --- hw/xquartz/Makefile.am | 2 + hw/xquartz/quartz.c | 104 +++------- hw/xquartz/quartz.h | 3 +- hw/xquartz/quartzCommon.h | 3 + hw/xquartz/quartzRandR.c | 394 +++++++++++++++++++++++++++++++++++++ hw/xquartz/quartzRandR.h | 37 ++++ hw/xquartz/xpr/xprScreen.c | 6 +- 7 files changed, 469 insertions(+), 80 deletions(-) create mode 100644 hw/xquartz/quartzRandR.c create mode 100644 hw/xquartz/quartzRandR.h diff --git a/hw/xquartz/Makefile.am b/hw/xquartz/Makefile.am index 96b139f97..721d2725e 100644 --- a/hw/xquartz/Makefile.am +++ b/hw/xquartz/Makefile.am @@ -34,6 +34,7 @@ libXquartz_la_SOURCES = \ quartzCocoa.m \ quartzKeyboard.c \ quartzStartup.c \ + quartzRandR.c \ threadSafety.c EXTRA_DIST = \ @@ -49,6 +50,7 @@ EXTRA_DIST = \ quartzAudio.h \ quartzCommon.h \ quartzKeyboard.h \ + quartzRandR.h \ sanitizedCarbon.h \ sanitizedCocoa.h \ threadSafety.h diff --git a/hw/xquartz/quartz.c b/hw/xquartz/quartz.c index eee6151f7..a4d74741b 100644 --- a/hw/xquartz/quartz.c +++ b/hw/xquartz/quartz.c @@ -35,6 +35,7 @@ #endif #include "quartzCommon.h" +#include "quartzRandR.h" #include "inputstr.h" #include "quartz.h" #include "darwin.h" @@ -46,7 +47,6 @@ #include "X11Application.h" #include -#include // X headers #include "scrnintstr.h" @@ -56,6 +56,8 @@ #include "mi.h" // System headers +#include +#include #include #include #include @@ -64,8 +66,6 @@ #include #include -#define FAKE_RANDR 1 - // Shared global variables for Quartz modes int quartzUseSysBeep = 0; int quartzServerVisible = FALSE; @@ -76,30 +76,6 @@ const char *quartzOpenGLBundle = NULL; int quartzFullscreenDisableHotkeys = TRUE; int quartzOptionSendsAlt = FALSE; -#if defined(RANDR) && !defined(FAKE_RANDR) -Bool QuartzRandRGetInfo (ScreenPtr pScreen, Rotation *rotations) { - return FALSE; -} - -Bool QuartzRandRSetConfig (ScreenPtr pScreen, - Rotation randr, - int rate, - RRScreenSizePtr pSize) { - return FALSE; -} - -Bool QuartzRandRInit (ScreenPtr pScreen) { - rrScrPrivPtr pScrPriv; - - if (!RRScreenInit (pScreen)) return FALSE; - - pScrPriv = rrGetScrPriv(pScreen); - pScrPriv->rrGetInfo = QuartzRandRGetInfo; - pScrPriv->rrSetConfig = QuartzRandRSetConfig; - return TRUE; -} -#endif - /* =========================================================================== @@ -143,6 +119,13 @@ Bool QuartzSetupScreen( if (! quartzProcs->InitCursor(pScreen)) return FALSE; +#if defined(RANDR) && !defined(FAKE_RANDR) + if(!QuartzRandRInit(pScreen)) { + DEBUG_LOG("Failed to init RandR extension.\n"); + return FALSE; + } +#endif + return TRUE; } @@ -165,11 +148,6 @@ void QuartzInitOutput( if (!dixRegisterPrivateKey(&quartzScreenKeyRec, PRIVATE_SCREEN, 0)) FatalError("Failed to alloc quartz screen private.\n"); -#if defined(RANDR) && !defined(FAKE_RANDR) - if(!QuartzRandRInit(pScreen)) - FatalError("Failed to init RandR extension.\n"); -#endif - // Do display mode specific initialization quartzProcs->DisplayInit(); } @@ -191,50 +169,6 @@ void QuartzInitInput( } -#ifdef FAKE_RANDR - -static const int padlength[4] = {0, 3, 2, 1}; - -static void -RREditConnectionInfo (ScreenPtr pScreen) -{ - xConnSetup *connSetup; - char *vendor; - xPixmapFormat *formats; - xWindowRoot *root; - xDepth *depth; - xVisualType *visual; - int screen = 0; - int d; - - connSetup = (xConnSetup *) ConnectionInfo; - vendor = (char *) connSetup + sizeof (xConnSetup); - formats = (xPixmapFormat *) ((char *) vendor + - connSetup->nbytesVendor + - padlength[connSetup->nbytesVendor & 3]); - root = (xWindowRoot *) ((char *) formats + - sizeof (xPixmapFormat) * screenInfo.numPixmapFormats); - while (screen != pScreen->myNum) - { - depth = (xDepth *) ((char *) root + - sizeof (xWindowRoot)); - for (d = 0; d < root->nDepths; d++) - { - visual = (xVisualType *) ((char *) depth + - sizeof (xDepth)); - depth = (xDepth *) ((char *) visual + - depth->nVisuals * sizeof (xVisualType)); - } - root = (xWindowRoot *) ((char *) depth); - screen++; - } - root->pixWidth = pScreen->width; - root->pixHeight = pScreen->height; - root->mmWidth = pScreen->mmWidth; - root->mmHeight = pScreen->mmHeight; -} -#endif - void QuartzUpdateScreens(void) { ScreenPtr pScreen; WindowPtr pRoot; @@ -255,7 +189,7 @@ void QuartzUpdateScreens(void) { pScreen = screenInfo.screens[0]; PseudoramiXResetScreens(); - quartzProcs->AddPseudoramiXScreens(&x, &y, &width, &height); + quartzProcs->AddPseudoramiXScreens(&x, &y, &width, &height, pScreen); pScreen->x = x; pScreen->y = y; @@ -446,3 +380,19 @@ void QuartzSpaceChanged(uint32_t space_id) { /* Do something special here, so we don't depend on quartz-wm for spaces to work... */ DEBUG_LOG("Space Changed (%u) ... do something interesting...\n", space_id); } + +/* + * QuartzCopyDisplayIDs + * Associate an X11 screen with one or more CoreGraphics display IDs by copying + * the list into a private array. Free the previously copied array, if present. + */ +void QuartzCopyDisplayIDs(ScreenPtr pScreen, + int displayCount, CGDirectDisplayID *displayIDs) { + QuartzScreenPtr pQuartzScreen = QUARTZ_PRIV(pScreen); + int size = displayCount * sizeof(CGDirectDisplayID); + + free(pQuartzScreen->displayIDs); + pQuartzScreen->displayIDs = malloc(size); + memcpy(pQuartzScreen->displayIDs, displayIDs, size); + pQuartzScreen->displayCount = displayCount; +} diff --git a/hw/xquartz/quartz.h b/hw/xquartz/quartz.h index b1a3f3183..1b924e7f7 100644 --- a/hw/xquartz/quartz.h +++ b/hw/xquartz/quartz.h @@ -62,7 +62,8 @@ typedef void (*ResumeScreenProc)(ScreenPtr pScreen); /* * Screen state change support */ -typedef void (*AddPseudoramiXScreensProc)(int *x, int *y, int *width, int *height); +typedef void (*AddPseudoramiXScreensProc) + (int *x, int *y, int *width, int *height, ScreenPtr pScreen); typedef void (*UpdateScreenProc)(ScreenPtr pScreen); /* diff --git a/hw/xquartz/quartzCommon.h b/hw/xquartz/quartzCommon.h index eb761ed04..d0d358b54 100644 --- a/hw/xquartz/quartzCommon.h +++ b/hw/xquartz/quartzCommon.h @@ -51,6 +51,9 @@ typedef struct { #define QUARTZ_PRIV(pScreen) \ ((QuartzScreenPtr)dixLookupPrivate(&pScreen->devPrivates, quartzScreenKey)) +void QuartzCopyDisplayIDs(ScreenPtr pScreen, + int displayCount, CGDirectDisplayID *displayIDs); + // User preferences used by Quartz modes extern int quartzUseSysBeep; extern int quartzFullscreenDisableHotkeys; diff --git a/hw/xquartz/quartzRandR.c b/hw/xquartz/quartzRandR.c new file mode 100644 index 000000000..6747752a6 --- /dev/null +++ b/hw/xquartz/quartzRandR.c @@ -0,0 +1,394 @@ +/* + * + * Quartz-specific support for the XRandR extension + * + * Copyright (c) 2001-2004 Greg Parker and Torrey T. Lyons, + * 2010 Jan Hauffa. + * 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 + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * 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 shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name(s) of the above copyright + * holders shall not be used in advertising or otherwise to promote the sale, + * use or other dealings in this Software without prior written authorization. + */ + +#include "sanitizedCarbon.h" + +#ifdef HAVE_DIX_CONFIG_H +#include +#endif + +#include "quartzCommon.h" +#include "quartzRandR.h" + +#if defined(FAKE_RANDR) +#include "scrnintstr.h" +#include "windowstr.h" +#else +#include +#include +#include +#endif + + +#if defined(FAKE_RANDR) + +static const int padlength[4] = {0, 3, 2, 1}; + +void +RREditConnectionInfo (ScreenPtr pScreen) +{ + xConnSetup *connSetup; + char *vendor; + xPixmapFormat *formats; + xWindowRoot *root; + xDepth *depth; + xVisualType *visual; + int screen = 0; + int d; + + connSetup = (xConnSetup *) ConnectionInfo; + vendor = (char *) connSetup + sizeof (xConnSetup); + formats = (xPixmapFormat *) ((char *) vendor + + connSetup->nbytesVendor + + padlength[connSetup->nbytesVendor & 3]); + root = (xWindowRoot *) ((char *) formats + + sizeof (xPixmapFormat) * screenInfo.numPixmapFormats); + while (screen != pScreen->myNum) + { + depth = (xDepth *) ((char *) root + + sizeof (xWindowRoot)); + for (d = 0; d < root->nDepths; d++) + { + visual = (xVisualType *) ((char *) depth + + sizeof (xDepth)); + depth = (xDepth *) ((char *) visual + + depth->nVisuals * sizeof (xVisualType)); + } + root = (xWindowRoot *) ((char *) depth); + screen++; + } + root->pixWidth = pScreen->width; + root->pixHeight = pScreen->height; + root->mmWidth = pScreen->mmWidth; + root->mmHeight = pScreen->mmHeight; +} + +#else /* defined(FAKE_RANDR) */ + +#define DEFAULT_REFRESH 60 +#define kDisplayModeUsableFlags (kDisplayModeValidFlag | kDisplayModeSafeFlag) + +typedef struct { + size_t width, height; + int refresh; + const void *ref; +} QuartzModeInfo, *QuartzModeInfoPtr; + +typedef Bool (*QuartzModeCallback) + (ScreenPtr, CGDirectDisplayID, QuartzModeInfoPtr, void *); + + +#if defined(USE_DEPRECATED_CG_API) + +static long getDictLong (CFDictionaryRef dictRef, CFStringRef key) { + long value; + + CFNumberRef numRef = (CFNumberRef) CFDictionaryGetValue(dictRef, key); + if (!numRef) + return 0; + + if (!CFNumberGetValue(numRef, kCFNumberLongType, &value)) + return 0; + return value; +} + +static double getDictDouble (CFDictionaryRef dictRef, CFStringRef key) { + double value; + + CFNumberRef numRef = (CFNumberRef) CFDictionaryGetValue(dictRef, key); + if (!numRef) + return 0.0; + + if (!CFNumberGetValue(numRef, kCFNumberDoubleType, &value)) + return 0.0; + return value; +} + +static void QuartzRandRGetModeInfo (CFDictionaryRef modeRef, + QuartzModeInfoPtr pMode) { + pMode->width = (size_t) getDictLong(modeRef, kCGDisplayWidth); + pMode->height = (size_t) getDictLong(modeRef, kCGDisplayHeight); + pMode->refresh = (int)(getDictDouble(modeRef, kCGDisplayRefreshRate) + 0.5); + if (pMode->refresh == 0) + pMode->refresh = DEFAULT_REFRESH; + pMode->ref = NULL; +} + +static Bool QuartzRandRGetCurrentModeInfo (CGDirectDisplayID screenId, + QuartzModeInfoPtr pMode) { + CFDictionaryRef curModeRef = CGDisplayCurrentMode(screenId); + if (!curModeRef) + return FALSE; + + QuartzRandRGetModeInfo(curModeRef, pMode); + return TRUE; +} + +static Bool QuartzRandRSetMode (CGDirectDisplayID screenId, + QuartzModeInfoPtr pMode) { + CFDictionaryRef modeRef = (CFDictionaryRef) pMode->ref; + return (CGDisplaySwitchToMode(screenId, modeRef) != kCGErrorSuccess); +} + +static Bool QuartzRandREnumerateModes (ScreenPtr pScreen, + CGDirectDisplayID screenId, + QuartzModeCallback callback, + void *data) { + CFDictionaryRef curModeRef, modeRef; + long curBpp; + CFArrayRef modes; + QuartzModeInfo modeInfo; + int i; + + curModeRef = CGDisplayCurrentMode(screenId); + if (!curModeRef) + return FALSE; + curBpp = getDictLong(curModeRef, kCGDisplayBitsPerPixel); + + modes = CGDisplayAvailableModes(screenId); + if (!modes) + return FALSE; + for (i = 0; i < CFArrayGetCount(modes); i++) { + modeRef = (CFDictionaryRef) CFArrayGetValueAtIndex(modes, i); + + /* Skip modes that are not usable on the current display or have a + different pixel encoding than the current mode. */ + if (((unsigned long) getDictLong(modeRef, kCGDisplayIOFlags) & + kDisplayModeUsableFlags) != kDisplayModeUsableFlags) + continue; + if (getDictLong(modeRef, kCGDisplayBitsPerPixel) != curBpp) + continue; + + QuartzRandRGetModeInfo(modeRef, &modeInfo); + modeInfo.ref = modeRef; + if (!callback(pScreen, screenId, &modeInfo, data)) + break; + } + return TRUE; +} + +#else /* defined(USE_DEPRECATED_CG_API) */ + +static void QuartzRandRGetModeInfo (CGDisplayModeRef modeRef, + QuartzModeInfoPtr pMode) { + pMode->width = CGDisplayModeGetWidth(modeRef); + pMode->height = CGDisplayModeGetHeight(modeRef); + pMode->refresh = (int) (CGDisplayModeGetRefreshRate(modeRef) + 0.5); + if (pMode->refresh == 0) + pMode->refresh = DEFAULT_REFRESH; + pMode->ref = NULL; +} + +static Bool QuartzRandRGetCurrentModeInfo (CGDirectDisplayID screenId, + QuartzModeInfoPtr pMode) { + CGDisplayModeRef curModeRef = CGDisplayCopyDisplayMode(screenId); + if (!curModeRef) + return FALSE; + + QuartzRandRGetModeInfo(curModeRef, pMode); + CGDisplayModeRelease(curModeRef); + return TRUE; +} + +static Bool QuartzRandRSetMode (CGDirectDisplayID screenId, + QuartzModeInfoPtr pMode) { + CGDisplayModeRef modeRef = (CGDisplayModeRef) pMode->ref; + if (!modeRef) + return FALSE; + + return (CGDisplaySetDisplayMode(screenId, modeRef, NULL) != + kCGErrorSuccess); +} + +static Bool QuartzRandREnumerateModes (ScreenPtr pScreen, + CGDirectDisplayID screenId, + QuartzModeCallback callback, + void *data) { + CGDisplayModeRef curModeRef, modeRef; + CFStringRef curPixelEnc, pixelEnc; + CFComparisonResult pixelEncEqual; + CFArrayRef modes; + QuartzModeInfo modeInfo; + int i; + + curModeRef = CGDisplayCopyDisplayMode(screenId); + if (!curModeRef) + return FALSE; + curPixelEnc = CGDisplayModeCopyPixelEncoding(curModeRef); + CGDisplayModeRelease(curModeRef); + + modes = CGDisplayCopyAllDisplayModes(screenId, NULL); + if (!modes) { + CFRelease(curPixelEnc); + return FALSE; + } + for (i = 0; i < CFArrayGetCount(modes); i++) { + modeRef = (CGDisplayModeRef) CFArrayGetValueAtIndex(modes, i); + + /* Skip modes that are not usable on the current display or have a + different pixel encoding than the current mode. */ + if ((CGDisplayModeGetIOFlags(modeRef) & kDisplayModeUsableFlags) != + kDisplayModeUsableFlags) + continue; + pixelEnc = CGDisplayModeCopyPixelEncoding(modeRef); + pixelEncEqual = CFStringCompare(pixelEnc, curPixelEnc, 0); + CFRelease(pixelEnc); + if (pixelEncEqual != kCFCompareEqualTo) + continue; + + QuartzRandRGetModeInfo(modeRef, &modeInfo); + modeInfo.ref = modeRef; + if (!callback(pScreen, screenId, &modeInfo, data)) + break; + } + CFRelease(modes); + + CFRelease(curPixelEnc); + return TRUE; +} + +#endif /* defined(USE_DEPRECATED_CG_API) */ + + +static Bool QuartzRandRModesEqual (QuartzModeInfoPtr pMode1, + QuartzModeInfoPtr pMode2) { + if (pMode1->width != pMode2->width) + return FALSE; + if (pMode1->height != pMode2->height) + return FALSE; + if (pMode1->refresh != pMode2->refresh) + return FALSE; + return TRUE; +} + +static Bool QuartzRandRGetModeCallback (ScreenPtr pScreen, + CGDirectDisplayID screenId, + QuartzModeInfoPtr pMode, + void *data) { + QuartzModeInfoPtr pCurMode = (QuartzModeInfoPtr) data; + + RRScreenSizePtr pSize = RRRegisterSize(pScreen, + pMode->width, pMode->height, pScreen->mmWidth, pScreen->mmHeight); + if (pSize) { + RRRegisterRate(pScreen, pSize, pMode->refresh); + + if (QuartzRandRModesEqual(pMode, pCurMode)) + RRSetCurrentConfig(pScreen, RR_Rotate_0, pMode->refresh, pSize); + } + return TRUE; +} + +static Bool QuartzRandRSetModeCallback (ScreenPtr pScreen, + CGDirectDisplayID screenId, + QuartzModeInfoPtr pMode, + void *data) { + QuartzModeInfoPtr pReqMode = (QuartzModeInfoPtr) data; + + if (!QuartzRandRModesEqual(pMode, pReqMode)) + return TRUE; /* continue enumeration */ + + return QuartzRandRSetMode(screenId, pMode); +} + +static Bool QuartzRandRGetInfo (ScreenPtr pScreen, Rotation *rotations) { + QuartzScreenPtr pQuartzScreen = QUARTZ_PRIV(pScreen); + CGDirectDisplayID screenId; + QuartzModeInfo curMode; + + *rotations = RR_Rotate_0; /* TODO: support rotation */ + + if (pQuartzScreen->displayCount == 0) + return FALSE; + if (pQuartzScreen->displayCount > 1) { + /* RandR operations are not well-defined for an X11 screen spanning + multiple CG displays. Create a single entry for the current virtual + resolution. */ + RRScreenSizePtr pSize = RRRegisterSize(pScreen, pScreen->width, + pScreen->height, pScreen->mmWidth, pScreen->mmHeight); + if (pSize) { + RRRegisterRate(pScreen, pSize, DEFAULT_REFRESH); + RRSetCurrentConfig(pScreen, RR_Rotate_0, DEFAULT_REFRESH, pSize); + } + return TRUE; + } + screenId = pQuartzScreen->displayIDs[0]; + + if (!QuartzRandRGetCurrentModeInfo(screenId, &curMode)) + return FALSE; + return QuartzRandREnumerateModes(pScreen, screenId, + QuartzRandRGetModeCallback, &curMode); +} + +static Bool QuartzRandRSetConfig (ScreenPtr pScreen, + Rotation randr, + int rate, + RRScreenSizePtr pSize) { + QuartzScreenPtr pQuartzScreen = QUARTZ_PRIV(pScreen); + CGDirectDisplayID screenId; + QuartzModeInfo reqMode, curMode; + + if (pQuartzScreen->displayCount == 0) + return FALSE; + if (pQuartzScreen->displayCount > 1) { + /* RandR operations are not well-defined for an X11 screen spanning + multiple CG displays. Do not accept any configuations that differ + from the current configuration. */ + return ((pSize->width == pScreen->width) && + (pSize->height == pScreen->height)); + } + screenId = pQuartzScreen->displayIDs[0]; + + reqMode.width = pSize->width; + reqMode.height = pSize->height; + reqMode.refresh = rate; + + /* Do not switch modes if requested mode is equal to current mode. */ + if (!QuartzRandRGetCurrentModeInfo(screenId, &curMode)) + return FALSE; + if (QuartzRandRModesEqual(&reqMode, &curMode)) + return TRUE; + + return QuartzRandREnumerateModes(pScreen, screenId, + QuartzRandRSetModeCallback, &reqMode); +} + +Bool QuartzRandRInit (ScreenPtr pScreen) { + rrScrPrivPtr pScrPriv; + + if (!RRScreenInit (pScreen)) return FALSE; + + pScrPriv = rrGetScrPriv(pScreen); + pScrPriv->rrGetInfo = QuartzRandRGetInfo; + pScrPriv->rrSetConfig = QuartzRandRSetConfig; + return TRUE; +} + +#endif /* defined(FAKE_RANDR) */ diff --git a/hw/xquartz/quartzRandR.h b/hw/xquartz/quartzRandR.h new file mode 100644 index 000000000..a1902051c --- /dev/null +++ b/hw/xquartz/quartzRandR.h @@ -0,0 +1,37 @@ +/* + * quartzRandR.h + * + * Copyright (c) 2010 Jan Hauffa. + * 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 + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * 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 shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name(s) of the above copyright + * holders shall not be used in advertising or otherwise to promote the sale, + * use or other dealings in this Software without prior written authorization. + */ + +/*define FAKE_RANDR 1*/ +#define USE_DEPRECATED_CG_API 1 + +#if defined(FAKE_RANDR) +void RREditConnectionInfo (ScreenPtr pScreen); +#else +Bool QuartzRandRInit (ScreenPtr pScreen); +#endif diff --git a/hw/xquartz/xpr/xprScreen.c b/hw/xquartz/xpr/xprScreen.c index c03a82d03..4df0373ba 100644 --- a/hw/xquartz/xpr/xprScreen.c +++ b/hw/xquartz/xpr/xprScreen.c @@ -176,7 +176,7 @@ displayScreenBounds(CGDirectDisplayID id) * with PseudoramiX. */ static void -xprAddPseudoramiXScreens(int *x, int *y, int *width, int *height) +xprAddPseudoramiXScreens(int *x, int *y, int *width, int *height, ScreenPtr pScreen) { CGDisplayCount i, displayCount; CGDirectDisplayID *displayList = NULL; @@ -199,6 +199,7 @@ xprAddPseudoramiXScreens(int *x, int *y, int *width, int *height) if(!displayList) FatalError("Unable to allocate memory for list of displays.\n"); CGGetActiveDisplayList(displayCount, displayList, &displayCount); + QuartzCopyDisplayIDs(pScreen, displayCount, displayList); /* Get the union of all screens */ for (i = 0; i < displayCount; i++) { @@ -336,6 +337,7 @@ xprAddScreen(int index, ScreenPtr pScreen) ErrorF("Warning: noPseudoramiXExtension!\n"); dpy = displayAtIndex(index); + QuartzCopyDisplayIDs(pScreen, 1, &dpy); frame = displayScreenBounds(dpy); @@ -346,7 +348,7 @@ xprAddScreen(int index, ScreenPtr pScreen) } else { - xprAddPseudoramiXScreens(&dfb->x, &dfb->y, &dfb->width, &dfb->height); + xprAddPseudoramiXScreens(&dfb->x, &dfb->y, &dfb->width, &dfb->height, pScreen); } /* Passing zero width (pitch) makes miCreateScreenResources set the From 97b5f5306437bfd13390485fc7a58a363c261ec9 Mon Sep 17 00:00:00 2001 From: Jan Hauffa Date: Fri, 16 Jul 2010 17:54:55 +0200 Subject: [PATCH 100/125] XQuartz: RandR: Toggle rootless mode on XRandR mode switch. Report a fake screen mode that corresponds to the screen mode at startup of the server excluding the height of the menu bar. If a client requests this mode, rootless mode is enabled. In all other modes, the root window is shown. Signed-off-by: Jan Hauffa Reviewed-by: Jeremy Huddleston --- hw/xquartz/quartzCommon.h | 7 +++ hw/xquartz/quartzRandR.c | 95 +++++++++++++++++++++++++++------------ 2 files changed, 73 insertions(+), 29 deletions(-) diff --git a/hw/xquartz/quartzCommon.h b/hw/xquartz/quartzCommon.h index d0d358b54..851e74c43 100644 --- a/hw/xquartz/quartzCommon.h +++ b/hw/xquartz/quartzCommon.h @@ -38,6 +38,12 @@ #include #include "privates.h" +typedef struct { + size_t width, height; + int refresh; + const void *ref; +} QuartzModeInfo, *QuartzModeInfoPtr; + // Quartz specific per screen storage structure typedef struct { // List of CoreGraphics displays that this X11 screen covers. @@ -46,6 +52,7 @@ typedef struct { // No CG display will be covered by more than one X11 screen. int displayCount; CGDirectDisplayID *displayIDs; + QuartzModeInfo originalMode, fakeMode; } QuartzScreenRec, *QuartzScreenPtr; #define QUARTZ_PRIV(pScreen) \ diff --git a/hw/xquartz/quartzRandR.c b/hw/xquartz/quartzRandR.c index 6747752a6..f61ff93d9 100644 --- a/hw/xquartz/quartzRandR.c +++ b/hw/xquartz/quartzRandR.c @@ -37,6 +37,7 @@ #include "quartzCommon.h" #include "quartzRandR.h" +#include "quartz.h" #if defined(FAKE_RANDR) #include "scrnintstr.h" @@ -96,12 +97,6 @@ RREditConnectionInfo (ScreenPtr pScreen) #define DEFAULT_REFRESH 60 #define kDisplayModeUsableFlags (kDisplayModeValidFlag | kDisplayModeSafeFlag) -typedef struct { - size_t width, height; - int refresh; - const void *ref; -} QuartzModeInfo, *QuartzModeInfoPtr; - typedef Bool (*QuartzModeCallback) (ScreenPtr, CGDirectDisplayID, QuartzModeInfoPtr, void *); @@ -289,21 +284,30 @@ static Bool QuartzRandRModesEqual (QuartzModeInfoPtr pMode1, return TRUE; } +static Bool QuartzRandRRegisterMode (ScreenPtr pScreen, + QuartzModeInfoPtr pMode, + Bool isCurrentMode) { + RRScreenSizePtr pSize = RRRegisterSize(pScreen, + pMode->width, pMode->height, pScreen->mmWidth, pScreen->mmHeight); + if (pSize) { + RRRegisterRate(pScreen, pSize, pMode->refresh); + + if (isCurrentMode) + RRSetCurrentConfig(pScreen, RR_Rotate_0, pMode->refresh, pSize); + + return TRUE; + } + return FALSE; +} + static Bool QuartzRandRGetModeCallback (ScreenPtr pScreen, CGDirectDisplayID screenId, QuartzModeInfoPtr pMode, void *data) { QuartzModeInfoPtr pCurMode = (QuartzModeInfoPtr) data; - RRScreenSizePtr pSize = RRRegisterSize(pScreen, - pMode->width, pMode->height, pScreen->mmWidth, pScreen->mmHeight); - if (pSize) { - RRRegisterRate(pScreen, pSize, pMode->refresh); - - if (QuartzRandRModesEqual(pMode, pCurMode)) - RRSetCurrentConfig(pScreen, RR_Rotate_0, pMode->refresh, pSize); - } - return TRUE; + return QuartzRandRRegisterMode(pScreen, pMode, + QuartzRandRModesEqual(pMode, pCurMode)); } static Bool QuartzRandRSetModeCallback (ScreenPtr pScreen, @@ -329,20 +333,29 @@ static Bool QuartzRandRGetInfo (ScreenPtr pScreen, Rotation *rotations) { return FALSE; if (pQuartzScreen->displayCount > 1) { /* RandR operations are not well-defined for an X11 screen spanning - multiple CG displays. Create a single entry for the current virtual - resolution. */ - RRScreenSizePtr pSize = RRRegisterSize(pScreen, pScreen->width, - pScreen->height, pScreen->mmWidth, pScreen->mmHeight); - if (pSize) { - RRRegisterRate(pScreen, pSize, DEFAULT_REFRESH); - RRSetCurrentConfig(pScreen, RR_Rotate_0, DEFAULT_REFRESH, pSize); - } + multiple CG displays. Create two entries for the current virtual + resolution including/excluding the menu bar. */ + QuartzRandRRegisterMode(pScreen, &pQuartzScreen->fakeMode, + !quartzHasRoot); + QuartzRandRRegisterMode(pScreen, &pQuartzScreen->originalMode, + quartzHasRoot); return TRUE; } screenId = pQuartzScreen->displayIDs[0]; if (!QuartzRandRGetCurrentModeInfo(screenId, &curMode)) return FALSE; + + /* Add a fake mode corresponding to the original resolution excluding the + height of the menu bar. */ + if (!quartzHasRoot && + QuartzRandRModesEqual(&pQuartzScreen->originalMode, &curMode)) { + QuartzRandRRegisterMode(pScreen, &pQuartzScreen->fakeMode, TRUE); + curMode = pQuartzScreen->fakeMode; + } + else + QuartzRandRRegisterMode(pScreen, &pQuartzScreen->fakeMode, FALSE); + return QuartzRandREnumerateModes(pScreen, screenId, QuartzRandRGetModeCallback, &curMode); } @@ -354,6 +367,21 @@ static Bool QuartzRandRSetConfig (ScreenPtr pScreen, QuartzScreenPtr pQuartzScreen = QUARTZ_PRIV(pScreen); CGDirectDisplayID screenId; QuartzModeInfo reqMode, curMode; + Bool rootless = FALSE; + + reqMode.width = pSize->width; + reqMode.height = pSize->height; + reqMode.refresh = rate; + + /* If the client requested the fake screen mode, switch to rootless mode. + Switch to fullscreen mode (root window visible) if a real screen mode was + requested. */ + if (QuartzRandRModesEqual(&reqMode, &pQuartzScreen->fakeMode)) { + rootless = TRUE; + reqMode = pQuartzScreen->originalMode; + } + QuartzSetFullscreen(!rootless); + QuartzSetRootless(rootless); if (pQuartzScreen->displayCount == 0) return FALSE; @@ -361,15 +389,10 @@ static Bool QuartzRandRSetConfig (ScreenPtr pScreen, /* RandR operations are not well-defined for an X11 screen spanning multiple CG displays. Do not accept any configuations that differ from the current configuration. */ - return ((pSize->width == pScreen->width) && - (pSize->height == pScreen->height)); + return QuartzRandRModesEqual(&reqMode, &pQuartzScreen->originalMode); } screenId = pQuartzScreen->displayIDs[0]; - reqMode.width = pSize->width; - reqMode.height = pSize->height; - reqMode.refresh = rate; - /* Do not switch modes if requested mode is equal to current mode. */ if (!QuartzRandRGetCurrentModeInfo(screenId, &curMode)) return FALSE; @@ -382,9 +405,23 @@ static Bool QuartzRandRSetConfig (ScreenPtr pScreen, Bool QuartzRandRInit (ScreenPtr pScreen) { rrScrPrivPtr pScrPriv; + QuartzScreenPtr pQuartzScreen = QUARTZ_PRIV(pScreen); if (!RRScreenInit (pScreen)) return FALSE; + if (pQuartzScreen->displayCount == 1) { + if (!QuartzRandRGetCurrentModeInfo(pQuartzScreen->displayIDs[0], + &pQuartzScreen->originalMode)) + return FALSE; + } + else { + pQuartzScreen->originalMode.width = pScreen->width; + pQuartzScreen->originalMode.height = pScreen->height; + pQuartzScreen->originalMode.refresh = DEFAULT_REFRESH; + } + pQuartzScreen->fakeMode = pQuartzScreen->originalMode; + pQuartzScreen->fakeMode.height -= aquaMenuBarHeight; + pScrPriv = rrGetScrPriv(pScreen); pScrPriv->rrGetInfo = QuartzRandRGetInfo; pScrPriv->rrSetConfig = QuartzRandRSetConfig; From 629c3f473b7415069a87ef4717ec3d701978dc48 Mon Sep 17 00:00:00 2001 From: Jan Hauffa Date: Fri, 16 Jul 2010 17:56:44 +0200 Subject: [PATCH 101/125] XQuartz: RandR: Remove FAKE_RANDR code. Signed-off-by: Jan Hauffa Reviewed-by: Jeremy Huddleston --- hw/xquartz/quartz.c | 6 +---- hw/xquartz/quartzRandR.c | 52 ---------------------------------------- hw/xquartz/quartzRandR.h | 5 ---- 3 files changed, 1 insertion(+), 62 deletions(-) diff --git a/hw/xquartz/quartz.c b/hw/xquartz/quartz.c index a4d74741b..a52cac9f0 100644 --- a/hw/xquartz/quartz.c +++ b/hw/xquartz/quartz.c @@ -119,7 +119,7 @@ Bool QuartzSetupScreen( if (! quartzProcs->InitCursor(pScreen)) return FALSE; -#if defined(RANDR) && !defined(FAKE_RANDR) +#if defined(RANDR) if(!QuartzRandRInit(pScreen)) { DEBUG_LOG("Failed to init RandR extension.\n"); return FALSE; @@ -239,10 +239,6 @@ void QuartzUpdateScreens(void) { DeliverEvents(pRoot, &e, 1, NullWindow); quartzProcs->UpdateScreen(pScreen); - -#ifdef FAKE_RANDR - RREditConnectionInfo(pScreen); -#endif } void QuartzSetFullscreen(Bool state) { diff --git a/hw/xquartz/quartzRandR.c b/hw/xquartz/quartzRandR.c index f61ff93d9..b3b315c59 100644 --- a/hw/xquartz/quartzRandR.c +++ b/hw/xquartz/quartzRandR.c @@ -39,61 +39,11 @@ #include "quartzRandR.h" #include "quartz.h" -#if defined(FAKE_RANDR) -#include "scrnintstr.h" -#include "windowstr.h" -#else #include #include #include -#endif -#if defined(FAKE_RANDR) - -static const int padlength[4] = {0, 3, 2, 1}; - -void -RREditConnectionInfo (ScreenPtr pScreen) -{ - xConnSetup *connSetup; - char *vendor; - xPixmapFormat *formats; - xWindowRoot *root; - xDepth *depth; - xVisualType *visual; - int screen = 0; - int d; - - connSetup = (xConnSetup *) ConnectionInfo; - vendor = (char *) connSetup + sizeof (xConnSetup); - formats = (xPixmapFormat *) ((char *) vendor + - connSetup->nbytesVendor + - padlength[connSetup->nbytesVendor & 3]); - root = (xWindowRoot *) ((char *) formats + - sizeof (xPixmapFormat) * screenInfo.numPixmapFormats); - while (screen != pScreen->myNum) - { - depth = (xDepth *) ((char *) root + - sizeof (xWindowRoot)); - for (d = 0; d < root->nDepths; d++) - { - visual = (xVisualType *) ((char *) depth + - sizeof (xDepth)); - depth = (xDepth *) ((char *) visual + - depth->nVisuals * sizeof (xVisualType)); - } - root = (xWindowRoot *) ((char *) depth); - screen++; - } - root->pixWidth = pScreen->width; - root->pixHeight = pScreen->height; - root->mmWidth = pScreen->mmWidth; - root->mmHeight = pScreen->mmHeight; -} - -#else /* defined(FAKE_RANDR) */ - #define DEFAULT_REFRESH 60 #define kDisplayModeUsableFlags (kDisplayModeValidFlag | kDisplayModeSafeFlag) @@ -427,5 +377,3 @@ Bool QuartzRandRInit (ScreenPtr pScreen) { pScrPriv->rrSetConfig = QuartzRandRSetConfig; return TRUE; } - -#endif /* defined(FAKE_RANDR) */ diff --git a/hw/xquartz/quartzRandR.h b/hw/xquartz/quartzRandR.h index a1902051c..711c3f3f3 100644 --- a/hw/xquartz/quartzRandR.h +++ b/hw/xquartz/quartzRandR.h @@ -27,11 +27,6 @@ * use or other dealings in this Software without prior written authorization. */ -/*define FAKE_RANDR 1*/ #define USE_DEPRECATED_CG_API 1 -#if defined(FAKE_RANDR) -void RREditConnectionInfo (ScreenPtr pScreen); -#else Bool QuartzRandRInit (ScreenPtr pScreen); -#endif From 59cd93f48a3a0a34781d4a94a3cd05a575e2d4ba Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Sun, 25 Jul 2010 22:25:49 -0700 Subject: [PATCH 102/125] XQuartz: RandR: Use deprecated CG APIs only on Leopard and earlier Signed-off-by: Jeremy Huddleston --- hw/xquartz/quartzRandR.c | 10 ++++++---- hw/xquartz/quartzRandR.h | 6 +++++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/hw/xquartz/quartzRandR.c b/hw/xquartz/quartzRandR.c index b3b315c59..e46e90405 100644 --- a/hw/xquartz/quartzRandR.c +++ b/hw/xquartz/quartzRandR.c @@ -1,9 +1,9 @@ /* - * * Quartz-specific support for the XRandR extension * * Copyright (c) 2001-2004 Greg Parker and Torrey T. Lyons, * 2010 Jan Hauffa. + * 2010 Apple Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a @@ -39,6 +39,8 @@ #include "quartzRandR.h" #include "quartz.h" +#include + #include #include #include @@ -51,7 +53,7 @@ typedef Bool (*QuartzModeCallback) (ScreenPtr, CGDirectDisplayID, QuartzModeInfoPtr, void *); -#if defined(USE_DEPRECATED_CG_API) +#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060 static long getDictLong (CFDictionaryRef dictRef, CFStringRef key) { long value; @@ -140,7 +142,7 @@ static Bool QuartzRandREnumerateModes (ScreenPtr pScreen, return TRUE; } -#else /* defined(USE_DEPRECATED_CG_API) */ +#else /* we have the new CG APIs from Snow Leopard */ static void QuartzRandRGetModeInfo (CGDisplayModeRef modeRef, QuartzModeInfoPtr pMode) { @@ -220,7 +222,7 @@ static Bool QuartzRandREnumerateModes (ScreenPtr pScreen, return TRUE; } -#endif /* defined(USE_DEPRECATED_CG_API) */ +#endif /* Snow Leopard CoreGraphics APIs */ static Bool QuartzRandRModesEqual (QuartzModeInfoPtr pMode1, diff --git a/hw/xquartz/quartzRandR.h b/hw/xquartz/quartzRandR.h index 711c3f3f3..d57dc3bf8 100644 --- a/hw/xquartz/quartzRandR.h +++ b/hw/xquartz/quartzRandR.h @@ -2,6 +2,7 @@ * quartzRandR.h * * Copyright (c) 2010 Jan Hauffa. + * 2010 Apple Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a @@ -27,6 +28,9 @@ * use or other dealings in this Software without prior written authorization. */ -#define USE_DEPRECATED_CG_API 1 +#ifndef _QUARTZRANDR_H_ +#define _QUARTZRANDR_H_ Bool QuartzRandRInit (ScreenPtr pScreen); + +#endif From 026a47e21226b64eb9a7624ada3d74c3fe5fa763 Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Mon, 26 Jul 2010 01:17:12 -0700 Subject: [PATCH 103/125] XQuartz: RandR: Respond better to resolution changes made outside X Signed-off-by: Jeremy Huddleston --- hw/xquartz/darwinEvents.c | 6 ++ hw/xquartz/quartzCommon.h | 23 ----- hw/xquartz/quartzRandR.c | 180 ++++++++++++++++++++++--------------- hw/xquartz/quartzRandR.h | 24 +++++ hw/xquartz/xpr/xprScreen.c | 1 + 5 files changed, 138 insertions(+), 96 deletions(-) diff --git a/hw/xquartz/darwinEvents.c b/hw/xquartz/darwinEvents.c index 7b34b8a05..736706817 100644 --- a/hw/xquartz/darwinEvents.c +++ b/hw/xquartz/darwinEvents.c @@ -52,6 +52,7 @@ in this Software without prior written authorization from The Open Group. #include "darwin.h" #include "quartz.h" #include "quartzKeyboard.h" +#include "quartzRandR.h" #include "darwinEvents.h" #include @@ -276,7 +277,12 @@ static void DarwinEventHandler(int screenNum, InternalEvent *ie, DeviceIntPtr de break; case kXquartzDisplayChanged: + DEBUG_LOG("kXquartzDisplayChanged\n"); QuartzUpdateScreens(); +#ifdef RANDR + /* Update our RandR info */ + QuartzRandRUpdateFakeModes(TRUE); +#endif break; default: diff --git a/hw/xquartz/quartzCommon.h b/hw/xquartz/quartzCommon.h index 851e74c43..718df4b88 100644 --- a/hw/xquartz/quartzCommon.h +++ b/hw/xquartz/quartzCommon.h @@ -38,29 +38,6 @@ #include #include "privates.h" -typedef struct { - size_t width, height; - int refresh; - const void *ref; -} QuartzModeInfo, *QuartzModeInfoPtr; - -// Quartz specific per screen storage structure -typedef struct { - // List of CoreGraphics displays that this X11 screen covers. - // This is more than one CG display for video mirroring and - // rootless PseudoramiX mode. - // No CG display will be covered by more than one X11 screen. - int displayCount; - CGDirectDisplayID *displayIDs; - QuartzModeInfo originalMode, fakeMode; -} QuartzScreenRec, *QuartzScreenPtr; - -#define QUARTZ_PRIV(pScreen) \ - ((QuartzScreenPtr)dixLookupPrivate(&pScreen->devPrivates, quartzScreenKey)) - -void QuartzCopyDisplayIDs(ScreenPtr pScreen, - int displayCount, CGDirectDisplayID *displayIDs); - // User preferences used by Quartz modes extern int quartzUseSysBeep; extern int quartzFullscreenDisableHotkeys; diff --git a/hw/xquartz/quartzRandR.c b/hw/xquartz/quartzRandR.c index e46e90405..65dce22a5 100644 --- a/hw/xquartz/quartzRandR.c +++ b/hw/xquartz/quartzRandR.c @@ -38,6 +38,7 @@ #include "quartzCommon.h" #include "quartzRandR.h" #include "quartz.h" +#include "darwin.h" #include @@ -45,6 +46,13 @@ #include #include +/* TODO: UGLY, find a better way! + * We want to ignore kXquartzDisplayChanged which are generated by us + */ +static Bool ignore_next_fake_mode_update = FALSE; + +#define FAKE_REFRESH_ROOTLESS 1 +#define FAKE_REFRESH_FULLSCREEN 2 #define DEFAULT_REFRESH 60 #define kDisplayModeUsableFlags (kDisplayModeValidFlag | kDisplayModeSafeFlag) @@ -171,8 +179,7 @@ static Bool QuartzRandRSetMode (CGDirectDisplayID screenId, if (!modeRef) return FALSE; - return (CGDisplaySetDisplayMode(screenId, modeRef, NULL) != - kCGErrorSuccess); + return (CGDisplaySetDisplayMode(screenId, modeRef, NULL) != kCGErrorSuccess); } static Bool QuartzRandREnumerateModes (ScreenPtr pScreen, @@ -227,18 +234,15 @@ static Bool QuartzRandREnumerateModes (ScreenPtr pScreen, static Bool QuartzRandRModesEqual (QuartzModeInfoPtr pMode1, QuartzModeInfoPtr pMode2) { - if (pMode1->width != pMode2->width) - return FALSE; - if (pMode1->height != pMode2->height) - return FALSE; - if (pMode1->refresh != pMode2->refresh) - return FALSE; - return TRUE; + return (pMode1->width == pMode2->width) && + (pMode1->height == pMode2->height) && + (pMode1->refresh == pMode2->refresh); } static Bool QuartzRandRRegisterMode (ScreenPtr pScreen, - QuartzModeInfoPtr pMode, - Bool isCurrentMode) { + QuartzModeInfoPtr pMode) { + QuartzScreenPtr pQuartzScreen = QUARTZ_PRIV(pScreen); + Bool isCurrentMode = QuartzRandRModesEqual(&pQuartzScreen->currentMode, pMode); RRScreenSizePtr pSize = RRRegisterSize(pScreen, pMode->width, pMode->height, pScreen->mmWidth, pScreen->mmHeight); if (pSize) { @@ -252,14 +256,11 @@ static Bool QuartzRandRRegisterMode (ScreenPtr pScreen, return FALSE; } -static Bool QuartzRandRGetModeCallback (ScreenPtr pScreen, +static Bool QuartzRandRRegisterModeCallback (ScreenPtr pScreen, CGDirectDisplayID screenId, QuartzModeInfoPtr pMode, - void *data) { - QuartzModeInfoPtr pCurMode = (QuartzModeInfoPtr) data; - - return QuartzRandRRegisterMode(pScreen, pMode, - QuartzRandRModesEqual(pMode, pCurMode)); + void *data __unused) { + return QuartzRandRRegisterMode(pScreen, pMode); } static Bool QuartzRandRSetModeCallback (ScreenPtr pScreen, @@ -267,73 +268,64 @@ static Bool QuartzRandRSetModeCallback (ScreenPtr pScreen, QuartzModeInfoPtr pMode, void *data) { QuartzModeInfoPtr pReqMode = (QuartzModeInfoPtr) data; + QuartzScreenPtr pQuartzScreen = QUARTZ_PRIV(pScreen); if (!QuartzRandRModesEqual(pMode, pReqMode)) return TRUE; /* continue enumeration */ - return QuartzRandRSetMode(screenId, pMode); + if (pReqMode->ref == pQuartzScreen->currentMode.ref) { + DEBUG_LOG("Requested RandR resolution matches current CG mode\n"); + return FALSE; /* We don't need to do anything in CG */ + } + + if (QuartzRandRSetMode(screenId, pMode) == FALSE) { + ignore_next_fake_mode_update = TRUE; + return FALSE; + } else { + return TRUE; + }; } static Bool QuartzRandRGetInfo (ScreenPtr pScreen, Rotation *rotations) { QuartzScreenPtr pQuartzScreen = QUARTZ_PRIV(pScreen); CGDirectDisplayID screenId; - QuartzModeInfo curMode; *rotations = RR_Rotate_0; /* TODO: support rotation */ if (pQuartzScreen->displayCount == 0) return FALSE; + + QuartzRandRRegisterMode(pScreen, &pQuartzScreen->rootlessMode); + QuartzRandRRegisterMode(pScreen, &pQuartzScreen->fullScreenMode); + if (pQuartzScreen->displayCount > 1) { /* RandR operations are not well-defined for an X11 screen spanning multiple CG displays. Create two entries for the current virtual resolution including/excluding the menu bar. */ - QuartzRandRRegisterMode(pScreen, &pQuartzScreen->fakeMode, - !quartzHasRoot); - QuartzRandRRegisterMode(pScreen, &pQuartzScreen->originalMode, - quartzHasRoot); return TRUE; } screenId = pQuartzScreen->displayIDs[0]; - if (!QuartzRandRGetCurrentModeInfo(screenId, &curMode)) - return FALSE; - - /* Add a fake mode corresponding to the original resolution excluding the - height of the menu bar. */ - if (!quartzHasRoot && - QuartzRandRModesEqual(&pQuartzScreen->originalMode, &curMode)) { - QuartzRandRRegisterMode(pScreen, &pQuartzScreen->fakeMode, TRUE); - curMode = pQuartzScreen->fakeMode; - } - else - QuartzRandRRegisterMode(pScreen, &pQuartzScreen->fakeMode, FALSE); - - return QuartzRandREnumerateModes(pScreen, screenId, - QuartzRandRGetModeCallback, &curMode); + return QuartzRandREnumerateModes(pScreen, screenId, QuartzRandRRegisterModeCallback, NULL); } static Bool QuartzRandRSetConfig (ScreenPtr pScreen, - Rotation randr, - int rate, - RRScreenSizePtr pSize) { + Rotation randr, + int rate, + RRScreenSizePtr pSize) { QuartzScreenPtr pQuartzScreen = QUARTZ_PRIV(pScreen); CGDirectDisplayID screenId; - QuartzModeInfo reqMode, curMode; - Bool rootless = FALSE; + QuartzModeInfo reqMode; reqMode.width = pSize->width; reqMode.height = pSize->height; reqMode.refresh = rate; - /* If the client requested the fake screen mode, switch to rootless mode. - Switch to fullscreen mode (root window visible) if a real screen mode was - requested. */ - if (QuartzRandRModesEqual(&reqMode, &pQuartzScreen->fakeMode)) { - rootless = TRUE; - reqMode = pQuartzScreen->originalMode; - } - QuartzSetFullscreen(!rootless); - QuartzSetRootless(rootless); + /* If the client requested the fake rootless mode, switch to rootless. + * Otherwise, force fullscreen mode. + */ + QuartzSetFullscreen(reqMode.refresh != FAKE_REFRESH_ROOTLESS); + QuartzSetRootless(reqMode.refresh == FAKE_REFRESH_ROOTLESS); if (pQuartzScreen->displayCount == 0) return FALSE; @@ -341,38 +333,80 @@ static Bool QuartzRandRSetConfig (ScreenPtr pScreen, /* RandR operations are not well-defined for an X11 screen spanning multiple CG displays. Do not accept any configuations that differ from the current configuration. */ - return QuartzRandRModesEqual(&reqMode, &pQuartzScreen->originalMode); + return TRUE; } - screenId = pQuartzScreen->displayIDs[0]; /* Do not switch modes if requested mode is equal to current mode. */ - if (!QuartzRandRGetCurrentModeInfo(screenId, &curMode)) - return FALSE; - if (QuartzRandRModesEqual(&reqMode, &curMode)) + if (QuartzRandRModesEqual(&reqMode, &pQuartzScreen->currentMode)) return TRUE; + + screenId = pQuartzScreen->displayIDs[0]; + if (QuartzRandREnumerateModes(pScreen, screenId, QuartzRandRSetModeCallback, &reqMode)) { + pQuartzScreen->currentMode = reqMode; + return TRUE; + } + + DEBUG_LOG("Unable to find a matching config: %d x %d @ %d\n", (int)reqMode.width, (int)reqMode.height, (int)reqMode.refresh); - return QuartzRandREnumerateModes(pScreen, screenId, - QuartzRandRSetModeCallback, &reqMode); + return FALSE; +} + +static Bool _QuartzRandRUpdateFakeModes (ScreenPtr pScreen) { + QuartzScreenPtr pQuartzScreen = QUARTZ_PRIV(pScreen); + + if (pQuartzScreen->displayCount == 1) { + if (!QuartzRandRGetCurrentModeInfo(pQuartzScreen->displayIDs[0], + &pQuartzScreen->fullScreenMode)) + return FALSE; + } else { + pQuartzScreen->fullScreenMode.width = pScreen->width; + pQuartzScreen->fullScreenMode.height = pScreen->height; + if(quartzEnableRootless) + pQuartzScreen->fullScreenMode.height += aquaMenuBarHeight; + } + + pQuartzScreen->fullScreenMode.refresh = FAKE_REFRESH_FULLSCREEN; + + pQuartzScreen->rootlessMode = pQuartzScreen->fullScreenMode; + pQuartzScreen->rootlessMode.refresh = FAKE_REFRESH_ROOTLESS; + pQuartzScreen->rootlessMode.height -= aquaMenuBarHeight; + + if(quartzEnableRootless) { + pQuartzScreen->currentMode = pQuartzScreen->rootlessMode; + } else { + pQuartzScreen->currentMode = pQuartzScreen->fullScreenMode; + } + + DEBUG_LOG("rootlessMode: %d x %d\n", (int)pQuartzScreen->rootlessMode.width, (int)pQuartzScreen->rootlessMode.height); + DEBUG_LOG("fullScreenMode: %d x %d\n", (int)pQuartzScreen->fullScreenMode.width, (int)pQuartzScreen->fullScreenMode.height); + DEBUG_LOG("currentMode: %d x %d\n", (int)pQuartzScreen->currentMode.width, (int)pQuartzScreen->currentMode.height); + + return TRUE; +} + +Bool QuartzRandRUpdateFakeModes (BOOL force_update) { + ScreenPtr pScreen = screenInfo.screens[0]; + + if(ignore_next_fake_mode_update) { + DEBUG_LOG("Ignoring update request caused by RandR resolution change.\n"); + ignore_next_fake_mode_update = FALSE; + return TRUE; + } + + if(!_QuartzRandRUpdateFakeModes(pScreen)) + return FALSE; + + if(force_update) + RRGetInfo(pScreen, TRUE); + + return TRUE; } Bool QuartzRandRInit (ScreenPtr pScreen) { rrScrPrivPtr pScrPriv; - QuartzScreenPtr pQuartzScreen = QUARTZ_PRIV(pScreen); if (!RRScreenInit (pScreen)) return FALSE; - - if (pQuartzScreen->displayCount == 1) { - if (!QuartzRandRGetCurrentModeInfo(pQuartzScreen->displayIDs[0], - &pQuartzScreen->originalMode)) - return FALSE; - } - else { - pQuartzScreen->originalMode.width = pScreen->width; - pQuartzScreen->originalMode.height = pScreen->height; - pQuartzScreen->originalMode.refresh = DEFAULT_REFRESH; - } - pQuartzScreen->fakeMode = pQuartzScreen->originalMode; - pQuartzScreen->fakeMode.height -= aquaMenuBarHeight; + if (!_QuartzRandRUpdateFakeModes (pScreen)) return FALSE; pScrPriv = rrGetScrPriv(pScreen); pScrPriv->rrGetInfo = QuartzRandRGetInfo; diff --git a/hw/xquartz/quartzRandR.h b/hw/xquartz/quartzRandR.h index d57dc3bf8..8ee2818e3 100644 --- a/hw/xquartz/quartzRandR.h +++ b/hw/xquartz/quartzRandR.h @@ -31,6 +31,30 @@ #ifndef _QUARTZRANDR_H_ #define _QUARTZRANDR_H_ +typedef struct { + size_t width, height; + int refresh; + const void *ref; +} QuartzModeInfo, *QuartzModeInfoPtr; + +// Quartz specific per screen storage structure +typedef struct { + // List of CoreGraphics displays that this X11 screen covers. + // This is more than one CG display for video mirroring and + // rootless PseudoramiX mode. + // No CG display will be covered by more than one X11 screen. + int displayCount; + CGDirectDisplayID *displayIDs; + QuartzModeInfo rootlessMode, fullScreenMode, currentMode; +} QuartzScreenRec, *QuartzScreenPtr; + +#define QUARTZ_PRIV(pScreen) \ + ((QuartzScreenPtr)dixLookupPrivate(&pScreen->devPrivates, quartzScreenKey)) + +void QuartzCopyDisplayIDs(ScreenPtr pScreen, + int displayCount, CGDirectDisplayID *displayIDs); + +Bool QuartzRandRUpdateFakeModes (BOOL force_update); Bool QuartzRandRInit (ScreenPtr pScreen); #endif diff --git a/hw/xquartz/xpr/xprScreen.c b/hw/xquartz/xpr/xprScreen.c index 4df0373ba..f7c8642d4 100644 --- a/hw/xquartz/xpr/xprScreen.c +++ b/hw/xquartz/xpr/xprScreen.c @@ -36,6 +36,7 @@ #include "quartzCommon.h" #include "inputstr.h" #include "quartz.h" +#include "quartzRandR.h" #include "xpr.h" #include "xprEvent.h" #include "pseudoramiX.h" From 721edc69c3597578d3e7f711769ff0195af6068a Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Mon, 26 Jul 2010 11:45:59 -0700 Subject: [PATCH 104/125] XQuartz: RandR: Better handle switching betwen RandR modes that share CG modes Signed-off-by: Jeremy Huddleston --- hw/xquartz/quartzRandR.c | 158 ++++++++++++++++++++++++++++++--------- hw/xquartz/quartzRandR.h | 2 +- 2 files changed, 123 insertions(+), 37 deletions(-) diff --git a/hw/xquartz/quartzRandR.c b/hw/xquartz/quartzRandR.c index 65dce22a5..782aa4d76 100644 --- a/hw/xquartz/quartzRandR.c +++ b/hw/xquartz/quartzRandR.c @@ -57,9 +57,12 @@ static Bool ignore_next_fake_mode_update = FALSE; #define DEFAULT_REFRESH 60 #define kDisplayModeUsableFlags (kDisplayModeValidFlag | kDisplayModeSafeFlag) -typedef Bool (*QuartzModeCallback) - (ScreenPtr, CGDirectDisplayID, QuartzModeInfoPtr, void *); +#define CALLBACK_SUCCESS 0 +#define CALLBACK_CONTINUE 1 +#define CALLBACK_ERROR -1 +typedef int (*QuartzModeCallback) + (ScreenPtr, CGDirectDisplayID, QuartzModeInfoPtr, void *); #if MAC_OS_X_VERSION_MIN_REQUIRED < 1060 @@ -97,20 +100,22 @@ static void QuartzRandRGetModeInfo (CFDictionaryRef modeRef, pMode->ref = NULL; } -static Bool QuartzRandRGetCurrentModeInfo (CGDirectDisplayID screenId, +static Bool QuartzRandRCopyCurrentModeInfo (CGDirectDisplayID screenId, QuartzModeInfoPtr pMode) { CFDictionaryRef curModeRef = CGDisplayCurrentMode(screenId); if (!curModeRef) return FALSE; QuartzRandRGetModeInfo(curModeRef, pMode); + pMode->ref = (void *)curModeRef; + CFRetain(pMode->ref); return TRUE; } static Bool QuartzRandRSetMode (CGDirectDisplayID screenId, QuartzModeInfoPtr pMode) { CFDictionaryRef modeRef = (CFDictionaryRef) pMode->ref; - return (CGDisplaySwitchToMode(screenId, modeRef) != kCGErrorSuccess); + return (CGDisplaySwitchToMode(screenId, modeRef) == kCGErrorSuccess); } static Bool QuartzRandREnumerateModes (ScreenPtr pScreen, @@ -122,6 +127,28 @@ static Bool QuartzRandREnumerateModes (ScreenPtr pScreen, CFArrayRef modes; QuartzModeInfo modeInfo; int i; + BOOL retval = TRUE; + QuartzScreenPtr pQuartzScreen = QUARTZ_PRIV(pScreen); + + switch(callback(pScreen, screenId, &pQuartzScreen->rootlessMode, data)) { + case CALLBACK_SUCCESS: + return TRUE; + case CALLBACK_ERROR: + return FALSE; + case CALLBACK_CONTINUE: + default: + break; + } + + switch(callback(pScreen, screenId, &pQuartzScreen->fullScreenMode, data)) { + case CALLBACK_SUCCESS: + return TRUE; + case CALLBACK_ERROR: + return FALSE; + case CALLBACK_CONTINUE: + default: + break; + } curModeRef = CGDisplayCurrentMode(screenId); if (!curModeRef) @@ -132,6 +159,7 @@ static Bool QuartzRandREnumerateModes (ScreenPtr pScreen, if (!modes) return FALSE; for (i = 0; i < CFArrayGetCount(modes); i++) { + int cb; modeRef = (CFDictionaryRef) CFArrayGetValueAtIndex(modes, i); /* Skip modes that are not usable on the current display or have a @@ -143,11 +171,16 @@ static Bool QuartzRandREnumerateModes (ScreenPtr pScreen, continue; QuartzRandRGetModeInfo(modeRef, &modeInfo); - modeInfo.ref = modeRef; - if (!callback(pScreen, screenId, &modeInfo, data)) + modeInfo.ref = (void *)modeRef; + cb = callback(pScreen, screenId, &modeInfo, data); + if (cb == CALLBACK_SUCCESS) break; + if (cb == CALLBACK_ERROR) { + retval = FALSE; + break; + } } - return TRUE; + return retval; } #else /* we have the new CG APIs from Snow Leopard */ @@ -162,14 +195,14 @@ static void QuartzRandRGetModeInfo (CGDisplayModeRef modeRef, pMode->ref = NULL; } -static Bool QuartzRandRGetCurrentModeInfo (CGDirectDisplayID screenId, - QuartzModeInfoPtr pMode) { +static Bool QuartzRandRCopyCurrentModeInfo (CGDirectDisplayID screenId, + QuartzModeInfoPtr pMode) { CGDisplayModeRef curModeRef = CGDisplayCopyDisplayMode(screenId); if (!curModeRef) return FALSE; QuartzRandRGetModeInfo(curModeRef, pMode); - CGDisplayModeRelease(curModeRef); + pMode->ref = curModeRef; return TRUE; } @@ -179,7 +212,7 @@ static Bool QuartzRandRSetMode (CGDirectDisplayID screenId, if (!modeRef) return FALSE; - return (CGDisplaySetDisplayMode(screenId, modeRef, NULL) != kCGErrorSuccess); + return (CGDisplaySetDisplayMode(screenId, modeRef, NULL) == kCGErrorSuccess); } static Bool QuartzRandREnumerateModes (ScreenPtr pScreen, @@ -192,6 +225,29 @@ static Bool QuartzRandREnumerateModes (ScreenPtr pScreen, CFArrayRef modes; QuartzModeInfo modeInfo; int i; + Bool retval = TRUE; + + QuartzScreenPtr pQuartzScreen = QUARTZ_PRIV(pScreen); + + switch(callback(pScreen, screenId, &pQuartzScreen->rootlessMode, data)) { + case CALLBACK_SUCCESS: + return TRUE; + case CALLBACK_ERROR: + return FALSE; + case CALLBACK_CONTINUE: + default: + break; + } + + switch(callback(pScreen, screenId, &pQuartzScreen->fullScreenMode, data)) { + case CALLBACK_SUCCESS: + return TRUE; + case CALLBACK_ERROR: + return FALSE; + case CALLBACK_CONTINUE: + default: + break; + } curModeRef = CGDisplayCopyDisplayMode(screenId); if (!curModeRef) @@ -205,6 +261,7 @@ static Bool QuartzRandREnumerateModes (ScreenPtr pScreen, return FALSE; } for (i = 0; i < CFArrayGetCount(modes); i++) { + int cb; modeRef = (CGDisplayModeRef) CFArrayGetValueAtIndex(modes, i); /* Skip modes that are not usable on the current display or have a @@ -220,13 +277,19 @@ static Bool QuartzRandREnumerateModes (ScreenPtr pScreen, QuartzRandRGetModeInfo(modeRef, &modeInfo); modeInfo.ref = modeRef; - if (!callback(pScreen, screenId, &modeInfo, data)) + cb = callback(pScreen, screenId, &modeInfo, data); + if (cb == CALLBACK_SUCCESS) break; + if (cb == CALLBACK_ERROR) { + retval = FALSE; + break; + } } + CFRelease(modes); CFRelease(curPixelEnc); - return TRUE; + return retval; } #endif /* Snow Leopard CoreGraphics APIs */ @@ -246,6 +309,7 @@ static Bool QuartzRandRRegisterMode (ScreenPtr pScreen, RRScreenSizePtr pSize = RRRegisterSize(pScreen, pMode->width, pMode->height, pScreen->mmWidth, pScreen->mmHeight); if (pSize) { + //DEBUG_LOG("registering: %d x %d @ %d %s\n", (int)pMode->width, (int)pMode->height, (int)pMode->refresh, isCurrentMode ? "*" : ""); RRRegisterRate(pScreen, pSize, pMode->refresh); if (isCurrentMode) @@ -256,34 +320,46 @@ static Bool QuartzRandRRegisterMode (ScreenPtr pScreen, return FALSE; } -static Bool QuartzRandRRegisterModeCallback (ScreenPtr pScreen, +static int QuartzRandRRegisterModeCallback (ScreenPtr pScreen, CGDirectDisplayID screenId, QuartzModeInfoPtr pMode, void *data __unused) { - return QuartzRandRRegisterMode(pScreen, pMode); + if(QuartzRandRRegisterMode(pScreen, pMode)) { + return CALLBACK_CONTINUE; + } else { + return CALLBACK_ERROR; + } } -static Bool QuartzRandRSetModeCallback (ScreenPtr pScreen, - CGDirectDisplayID screenId, - QuartzModeInfoPtr pMode, - void *data) { +static int QuartzRandRSetModeCallback (ScreenPtr pScreen, + CGDirectDisplayID screenId, + QuartzModeInfoPtr pMode, + void *data) { QuartzModeInfoPtr pReqMode = (QuartzModeInfoPtr) data; QuartzScreenPtr pQuartzScreen = QUARTZ_PRIV(pScreen); - + if (!QuartzRandRModesEqual(pMode, pReqMode)) - return TRUE; /* continue enumeration */ + return CALLBACK_CONTINUE; /* continue enumeration */ - if (pReqMode->ref == pQuartzScreen->currentMode.ref) { + DEBUG_LOG("Found a match for requested RandR resolution (%dx%d@%d).\n", (int)pMode->width, (int)pMode->height, (int)pMode->refresh); + + if (pQuartzScreen->currentMode.ref && CFEqual(pMode->ref, pQuartzScreen->currentMode.ref)) { DEBUG_LOG("Requested RandR resolution matches current CG mode\n"); - return FALSE; /* We don't need to do anything in CG */ + return CALLBACK_SUCCESS; /* We don't need to do anything in CG */ } - if (QuartzRandRSetMode(screenId, pMode) == FALSE) { + if (QuartzRandRSetMode(screenId, pMode)) { + if(pQuartzScreen->currentMode.ref) + CFRelease(pQuartzScreen->currentMode.ref); + pQuartzScreen->currentMode = *pMode; + CFRetain(pQuartzScreen->currentMode.ref); + ignore_next_fake_mode_update = TRUE; - return FALSE; + return CALLBACK_SUCCESS; } else { - return TRUE; - }; + DEBUG_LOG("Error while requesting CG resolution change.\n"); + return CALLBACK_ERROR; + } } static Bool QuartzRandRGetInfo (ScreenPtr pScreen, Rotation *rotations) { @@ -295,17 +371,17 @@ static Bool QuartzRandRGetInfo (ScreenPtr pScreen, Rotation *rotations) { if (pQuartzScreen->displayCount == 0) return FALSE; - QuartzRandRRegisterMode(pScreen, &pQuartzScreen->rootlessMode); - QuartzRandRRegisterMode(pScreen, &pQuartzScreen->fullScreenMode); - if (pQuartzScreen->displayCount > 1) { /* RandR operations are not well-defined for an X11 screen spanning multiple CG displays. Create two entries for the current virtual resolution including/excluding the menu bar. */ + + QuartzRandRRegisterMode(pScreen, &pQuartzScreen->rootlessMode); + QuartzRandRRegisterMode(pScreen, &pQuartzScreen->fullScreenMode); return TRUE; } - screenId = pQuartzScreen->displayIDs[0]; + screenId = pQuartzScreen->displayIDs[0]; return QuartzRandREnumerateModes(pScreen, screenId, QuartzRandRRegisterModeCallback, NULL); } @@ -323,9 +399,14 @@ static Bool QuartzRandRSetConfig (ScreenPtr pScreen, /* If the client requested the fake rootless mode, switch to rootless. * Otherwise, force fullscreen mode. + * TODO: Refactor all this fullscreen/rootless crap as it is spaghetti + * has redundancies. */ - QuartzSetFullscreen(reqMode.refresh != FAKE_REFRESH_ROOTLESS); QuartzSetRootless(reqMode.refresh == FAKE_REFRESH_ROOTLESS); + QuartzSetFullscreen(reqMode.refresh != FAKE_REFRESH_ROOTLESS); + if(reqMode.refresh != FAKE_REFRESH_ROOTLESS && + reqMode.refresh != FAKE_REFRESH_FULLSCREEN) + QuartzShow(); if (pQuartzScreen->displayCount == 0) return FALSE; @@ -342,12 +423,10 @@ static Bool QuartzRandRSetConfig (ScreenPtr pScreen, screenId = pQuartzScreen->displayIDs[0]; if (QuartzRandREnumerateModes(pScreen, screenId, QuartzRandRSetModeCallback, &reqMode)) { - pQuartzScreen->currentMode = reqMode; return TRUE; } DEBUG_LOG("Unable to find a matching config: %d x %d @ %d\n", (int)reqMode.width, (int)reqMode.height, (int)reqMode.refresh); - return FALSE; } @@ -355,9 +434,16 @@ static Bool _QuartzRandRUpdateFakeModes (ScreenPtr pScreen) { QuartzScreenPtr pQuartzScreen = QUARTZ_PRIV(pScreen); if (pQuartzScreen->displayCount == 1) { - if (!QuartzRandRGetCurrentModeInfo(pQuartzScreen->displayIDs[0], - &pQuartzScreen->fullScreenMode)) + if(pQuartzScreen->fullScreenMode.ref) + CFRelease(pQuartzScreen->fullScreenMode.ref); + if(pQuartzScreen->currentMode.ref) + CFRelease(pQuartzScreen->currentMode.ref); + + if (!QuartzRandRCopyCurrentModeInfo(pQuartzScreen->displayIDs[0], + &pQuartzScreen->fullScreenMode)) return FALSE; + + CFRetain(pQuartzScreen->fullScreenMode.ref); /* This extra retain is for currentMode's copy */ } else { pQuartzScreen->fullScreenMode.width = pScreen->width; pQuartzScreen->fullScreenMode.height = pScreen->height; diff --git a/hw/xquartz/quartzRandR.h b/hw/xquartz/quartzRandR.h index 8ee2818e3..4a7990e26 100644 --- a/hw/xquartz/quartzRandR.h +++ b/hw/xquartz/quartzRandR.h @@ -34,7 +34,7 @@ typedef struct { size_t width, height; int refresh; - const void *ref; + void *ref; /* CGDisplayModeRef or CFDictionaryRef */ } QuartzModeInfo, *QuartzModeInfoPtr; // Quartz specific per screen storage structure From 229323a19b06f80d9b03f487e598b933b9b31d87 Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Mon, 26 Jul 2010 23:34:49 -0700 Subject: [PATCH 105/125] XQuartz: RandR: Don't change the rootless preference when changing RandR mode Also renames a bunch of other variables for better consistency. Signed-off-by: Jeremy Huddleston --- hw/xquartz/X11Application.h | 3 -- hw/xquartz/X11Application.m | 44 +++++++++++++-------------- hw/xquartz/X11Controller.m | 42 +++++++++++++------------- hw/xquartz/darwinEvents.c | 6 ++-- hw/xquartz/quartz.c | 59 ++++++++++++++++++++----------------- hw/xquartz/quartz.h | 18 +++++++++-- hw/xquartz/quartzAudio.c | 4 +-- hw/xquartz/quartzCommon.h | 6 ---- hw/xquartz/quartzKeyboard.c | 6 ++-- hw/xquartz/quartzRandR.c | 32 ++++++++++---------- hw/xquartz/quartzRandR.h | 2 +- hw/xquartz/xpr/xprAppleWM.c | 2 +- hw/xquartz/xpr/xprCursor.c | 6 ++-- hw/xquartz/xpr/xprFrame.c | 4 +-- hw/xquartz/xpr/xprScreen.c | 5 ++-- 15 files changed, 124 insertions(+), 115 deletions(-) diff --git a/hw/xquartz/X11Application.h b/hw/xquartz/X11Application.h index ce19e034a..462128464 100644 --- a/hw/xquartz/X11Application.h +++ b/hw/xquartz/X11Application.h @@ -75,9 +75,6 @@ void X11ApplicationLaunchClient (const char *cmd); void X11ApplicationMain(int argc, char **argv, char **envp); -extern int X11EnableKeyEquivalents; -extern int quartzHasRoot, quartzEnableRootless, quartzFullscreenMenu; - #define PREFS_APPSMENU "apps_menu" #define PREFS_FAKEBUTTONS "enable_fake_buttons" #define PREFS_SYSBEEP "enable_system_beep" diff --git a/hw/xquartz/X11Application.m b/hw/xquartz/X11Application.m index 36c39e50c..781dcccc8 100644 --- a/hw/xquartz/X11Application.m +++ b/hw/xquartz/X11Application.m @@ -38,6 +38,7 @@ #import "X11Application.h" #include "darwin.h" +#include "quartz.h" #include "darwinEvents.h" #include "quartzKeyboard.h" #include "quartz.h" @@ -63,9 +64,6 @@ extern int xpbproxy_run (void); /* Stuck modifier / button state... force release when we context switch */ static NSEventType keyState[NUM_KEYCODES]; -int X11EnableKeyEquivalents = TRUE, quartzFullscreenMenu = FALSE; -int quartzHasRoot = FALSE, quartzEnableRootless = TRUE; - extern Bool noTestExtensions; #if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050 @@ -287,23 +285,23 @@ static void message_kit_thread (SEL selector, NSObject *arg) { do_swallow = YES; for_x = NO; #if XPLUGIN_VERSION >= 1 - } else if(X11EnableKeyEquivalents && + } else if(XQuartzEnableKeyEquivalents && xp_is_symbolic_hotkey_event([e eventRef])) { swallow_keycode = [e keyCode]; do_swallow = YES; for_x = NO; #endif - } else if(X11EnableKeyEquivalents && + } else if(XQuartzEnableKeyEquivalents && [[self mainMenu] performKeyEquivalent:e]) { swallow_keycode = [e keyCode]; do_swallow = YES; for_appkit = NO; for_x = NO; - } else if(!quartzEnableRootless + } else if(!XQuartzIsRootless && ([e modifierFlags] & ALL_KEY_MASKS) == (NSCommandKeyMask | NSAlternateKeyMask) && ([e keyCode] == 0 /*a*/ || [e keyCode] == 53 /*Esc*/)) { /* We have this here to force processing fullscreen - * toggle even if X11EnableKeyEquivalents is disabled */ + * toggle even if XQuartzEnableKeyEquivalents is disabled */ swallow_keycode = [e keyCode]; do_swallow = YES; for_x = NO; @@ -372,7 +370,7 @@ static void message_kit_thread (SEL selector, NSObject *arg) { break; case 18: /* ApplicationDidReactivate */ - if (quartzHasRoot) for_appkit = NO; + if (XQuartzHasRoot) for_appkit = NO; break; case NSApplicationDeactivatedEventType: @@ -422,7 +420,7 @@ static void message_kit_thread (SEL selector, NSObject *arg) { if ([state boolValue]) SetSystemUIMode(kUIModeNormal, 0); else - SetSystemUIMode(kUIModeAllHidden, quartzFullscreenMenu ? kUIOptionAutoShowMenuBar : 0); // kUIModeAllSuppressed or kUIOptionAutoShowMenuBar can be used to allow "mouse-activation" + SetSystemUIMode(kUIModeAllHidden, XQuartzFullscreenMenu ? kUIOptionAutoShowMenuBar : 0); // kUIModeAllSuppressed or kUIOptionAutoShowMenuBar can be used to allow "mouse-activation" } - (void) launch_client:(NSString *)cmd { @@ -720,18 +718,18 @@ static NSMutableArray * cfarray_to_nsarray (CFArrayRef in) { NSString *nsstr; const char *tem; - quartzUseSysBeep = [self prefs_get_boolean:@PREFS_SYSBEEP - default:quartzUseSysBeep]; - quartzEnableRootless = [self prefs_get_boolean:@PREFS_ROOTLESS - default:quartzEnableRootless]; - quartzFullscreenMenu = [self prefs_get_boolean:@PREFS_FULLSCREEN_MENU - default:quartzFullscreenMenu]; - quartzFullscreenDisableHotkeys = ![self prefs_get_boolean:@PREFS_FULLSCREEN_HOTKEYS - default:!quartzFullscreenDisableHotkeys]; + XQuartzUseSysBeep = [self prefs_get_boolean:@PREFS_SYSBEEP + default:XQuartzUseSysBeep]; + XQuartzRootlessDefault = [self prefs_get_boolean:@PREFS_ROOTLESS + default:XQuartzRootlessDefault]; + XQuartzFullscreenMenu = [self prefs_get_boolean:@PREFS_FULLSCREEN_MENU + default:XQuartzFullscreenMenu]; + XQuartzFullscreenDisableHotkeys = ![self prefs_get_boolean:@PREFS_FULLSCREEN_HOTKEYS + default:!XQuartzFullscreenDisableHotkeys]; darwinFakeButtons = [self prefs_get_boolean:@PREFS_FAKEBUTTONS default:darwinFakeButtons]; - quartzOptionSendsAlt = [self prefs_get_boolean:@PREFS_OPTION_SENDS_ALT - default:quartzOptionSendsAlt]; + XQuartzOptionSendsAlt = [self prefs_get_boolean:@PREFS_OPTION_SENDS_ALT + default:XQuartzOptionSendsAlt]; if (darwinFakeButtons) { const char *fake2, *fake3; @@ -759,8 +757,8 @@ static NSMutableArray * cfarray_to_nsarray (CFArrayRef in) { } } - X11EnableKeyEquivalents = [self prefs_get_boolean:@PREFS_KEYEQUIVS - default:X11EnableKeyEquivalents]; + XQuartzEnableKeyEquivalents = [self prefs_get_boolean:@PREFS_KEYEQUIVS + default:XQuartzEnableKeyEquivalents]; darwinSyncKeymap = [self prefs_get_boolean:@PREFS_SYNC_KEYMAP default:darwinSyncKeymap]; @@ -1158,7 +1156,7 @@ static inline int ensure_flag(int flags, int device_independent, int device_depe pDev = darwinTabletCurrent; } - if(!quartzServerVisible && noTestExtensions) { + if(!XQuartzServerVisible && noTestExtensions) { #if defined(XPLUGIN_VERSION) && XPLUGIN_VERSION > 0 /* Older libXplugin (Tiger/"Stock" Leopard) aren't thread safe, so we can't call xp_find_window from the Appkit thread */ xp_window_id wid = 0; @@ -1218,7 +1216,7 @@ static inline int ensure_flag(int flags, int device_independent, int device_depe /* If we're in the background, we need to send a MotionNotify event * first, since we aren't getting them on background mouse motion */ - if(!quartzServerVisible && noTestExtensions) { + if(!XQuartzServerVisible && noTestExtensions) { bgMouseLocationUpdated = FALSE; DarwinSendPointerEvents(darwinPointer, MotionNotify, 0, location.x, location.y, pressure, tilt.x, tilt.y); diff --git a/hw/xquartz/X11Controller.m b/hw/xquartz/X11Controller.m index d66d039b0..13b63664f 100644 --- a/hw/xquartz/X11Controller.m +++ b/hw/xquartz/X11Controller.m @@ -609,13 +609,13 @@ objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row } - (IBAction) enable_fullscreen_changed:sender { - int value = ![enable_fullscreen intValue]; + XQuartzRootlessDefault = ![enable_fullscreen intValue]; - [enable_fullscreen_menu setEnabled:!value]; + [enable_fullscreen_menu setEnabled:!XQuartzRootlessDefault]; - DarwinSendDDXEvent(kXquartzSetRootless, 1, value); + DarwinSendDDXEvent(kXquartzSetRootless, 1, XQuartzRootlessDefault); - [NSApp prefs_set_boolean:@PREFS_ROOTLESS value:value]; + [NSApp prefs_set_boolean:@PREFS_ROOTLESS value:XQuartzRootlessDefault]; [NSApp prefs_synchronize]; } @@ -638,24 +638,24 @@ objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row 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]; + XQuartzUseSysBeep = [use_sysbeep intValue]; + [NSApp prefs_set_boolean:@PREFS_SYSBEEP value:XQuartzUseSysBeep]; } else if(sender == enable_keyequivs) { - X11EnableKeyEquivalents = [enable_keyequivs intValue]; - [NSApp prefs_set_boolean:@PREFS_KEYEQUIVS value:X11EnableKeyEquivalents]; + XQuartzEnableKeyEquivalents = [enable_keyequivs intValue]; + [NSApp prefs_set_boolean:@PREFS_KEYEQUIVS value:XQuartzEnableKeyEquivalents]; } 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]; + XQuartzFullscreenMenu = [enable_fullscreen_menu intValue]; + [NSApp prefs_set_boolean:@PREFS_FULLSCREEN_MENU value:XQuartzFullscreenMenu]; } else if(sender == option_sends_alt) { - BOOL prev_opt_sends_alt = quartzOptionSendsAlt; + BOOL prev_opt_sends_alt = XQuartzOptionSendsAlt; - quartzOptionSendsAlt = [option_sends_alt intValue]; - [NSApp prefs_set_boolean:@PREFS_OPTION_SENDS_ALT value:quartzOptionSendsAlt]; + XQuartzOptionSendsAlt = [option_sends_alt intValue]; + [NSApp prefs_set_boolean:@PREFS_OPTION_SENDS_ALT value:XQuartzOptionSendsAlt]; - if(prev_opt_sends_alt != quartzOptionSendsAlt) + if(prev_opt_sends_alt != XQuartzOptionSendsAlt) QuartsResyncKeymap(TRUE); } else if(sender == click_through) { [NSApp prefs_set_boolean:@PREFS_CLICK_THROUGH value:[click_through intValue]]; @@ -701,10 +701,10 @@ objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row BOOL pbproxy_active = [NSApp prefs_get_boolean:@PREFS_SYNC_PB default:YES]; [fake_buttons setIntValue:darwinFakeButtons]; - [use_sysbeep setIntValue:quartzUseSysBeep]; - [enable_keyequivs setIntValue:X11EnableKeyEquivalents]; + [use_sysbeep setIntValue:XQuartzUseSysBeep]; + [enable_keyequivs setIntValue:XQuartzEnableKeyEquivalents]; [sync_keymap setIntValue:darwinSyncKeymap]; - [option_sends_alt setIntValue:quartzOptionSendsAlt]; + [option_sends_alt setIntValue:XQuartzOptionSendsAlt]; [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]]; @@ -729,9 +729,9 @@ objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row [sync_text1 setTextColor:pbproxy_active ? [NSColor controlTextColor] : [NSColor disabledControlTextColor]]; [sync_text2 setTextColor:pbproxy_active ? [NSColor controlTextColor] : [NSColor disabledControlTextColor]]; - [enable_fullscreen setIntValue:!quartzEnableRootless]; - [enable_fullscreen_menu setEnabled:!quartzEnableRootless]; - [enable_fullscreen_menu setIntValue:quartzFullscreenMenu]; + [enable_fullscreen setIntValue:!XQuartzRootlessDefault]; + [enable_fullscreen_menu setEnabled:!XQuartzRootlessDefault]; + [enable_fullscreen_menu setIntValue:XQuartzFullscreenMenu]; [prefs_panel makeKeyAndOrderFront:sender]; } @@ -752,7 +752,7 @@ objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row NSMenu *menu = [item menu]; if (item == toggle_fullscreen_item) - return !quartzEnableRootless; + return !XQuartzIsRootless; else if (menu == [X11App windowsMenu] || menu == dock_menu || (menu == [x11_about_item menu] && [item tag] == 42)) return (AppleWMSelectedEvents () & AppleWMControllerNotifyMask) != 0; diff --git a/hw/xquartz/darwinEvents.c b/hw/xquartz/darwinEvents.c index 736706817..4332202cf 100644 --- a/hw/xquartz/darwinEvents.c +++ b/hw/xquartz/darwinEvents.c @@ -239,9 +239,9 @@ static void DarwinEventHandler(int screenNum, InternalEvent *ie, DeviceIntPtr de case kXquartzToggleFullscreen: DEBUG_LOG("kXquartzToggleFullscreen\n"); - if(quartzEnableRootless) + if(XQuartzIsRootless) ErrorF("Ignoring kXquartzToggleFullscreen because of rootless mode."); - else if (quartzHasRoot) + else if (XQuartzHasRoot) QuartzHide(); else QuartzShow(); @@ -250,7 +250,7 @@ static void DarwinEventHandler(int screenNum, InternalEvent *ie, DeviceIntPtr de case kXquartzSetRootless: DEBUG_LOG("kXquartzSetRootless\n"); QuartzSetRootless(e->data[0]); - if (!quartzEnableRootless && !quartzHasRoot) + if (!XQuartzIsRootless && !XQuartzHasRoot) QuartzHide(); break; diff --git a/hw/xquartz/quartz.c b/hw/xquartz/quartz.c index a52cac9f0..cd90457ed 100644 --- a/hw/xquartz/quartz.c +++ b/hw/xquartz/quartz.c @@ -66,15 +66,20 @@ #include #include -// Shared global variables for Quartz modes -int quartzUseSysBeep = 0; -int quartzServerVisible = FALSE; DevPrivateKeyRec quartzScreenKeyRec; int aquaMenuBarHeight = 0; QuartzModeProcsPtr quartzProcs = NULL; const char *quartzOpenGLBundle = NULL; -int quartzFullscreenDisableHotkeys = TRUE; -int quartzOptionSendsAlt = FALSE; + +Bool XQuartzFullscreenDisableHotkeys = TRUE; +Bool XQuartzOptionSendsAlt = FALSE; +Bool XQuartzEnableKeyEquivalents = TRUE; +Bool XQuartzHasRoot = FALSE; +Bool XQuartzRootlessDefault = TRUE; +Bool XQuartzIsRootless = TRUE; +Bool XQuartzServerVisible = FALSE; +Bool XQuartzFullscreenMenu = FALSE; +Bool XQuartzUseSysBeep = FALSE; /* =========================================================================== @@ -245,61 +250,61 @@ void QuartzSetFullscreen(Bool state) { DEBUG_LOG("QuartzSetFullscreen: state=%d\n", state); - if(quartzHasRoot == state) + if(XQuartzHasRoot == state) return; - quartzHasRoot = state; + XQuartzHasRoot = state; xp_disable_update (); - if (!quartzHasRoot && !quartzEnableRootless) + if (!XQuartzHasRoot && !XQuartzIsRootless) RootlessHideAllWindows(); - RootlessUpdateRooted(quartzHasRoot); + RootlessUpdateRooted(XQuartzHasRoot); - if (quartzHasRoot && !quartzEnableRootless) + if (XQuartzHasRoot && !XQuartzIsRootless) RootlessShowAllWindows (); - if (quartzHasRoot || quartzEnableRootless) { + if (XQuartzHasRoot || XQuartzIsRootless) { RootlessRepositionWindows(screenInfo.screens[0]); } /* Somehow the menubar manages to interfere with our event stream * in fullscreen mode, even though it's not visible. */ - X11ApplicationShowHideMenubar(!quartzHasRoot); + X11ApplicationShowHideMenubar(!XQuartzHasRoot); xp_reenable_update (); - if (quartzFullscreenDisableHotkeys) - xp_disable_hot_keys(quartzHasRoot); + if (XQuartzFullscreenDisableHotkeys) + xp_disable_hot_keys(XQuartzHasRoot); } void QuartzSetRootless(Bool state) { - if(quartzEnableRootless == state) + if(XQuartzIsRootless == state) return; - quartzEnableRootless = state; + XQuartzIsRootless = state; xp_disable_update(); /* When in rootless, the menubar is not part of the screen, so we need to update our screens on toggle */ QuartzUpdateScreens(); - if(!quartzHasRoot) { - if(!quartzEnableRootless) { + if(!XQuartzHasRoot) { + if(!XQuartzIsRootless) { RootlessHideAllWindows(); } else { RootlessShowAllWindows(); } } - X11ApplicationShowHideMenubar(!quartzHasRoot); + X11ApplicationShowHideMenubar(!XQuartzHasRoot); xp_reenable_update(); - if (!quartzEnableRootless && quartzFullscreenDisableHotkeys) - xp_disable_hot_keys(quartzHasRoot); + if (!XQuartzIsRootless && XQuartzFullscreenDisableHotkeys) + xp_disable_hot_keys(XQuartzHasRoot); } /* @@ -311,17 +316,17 @@ void QuartzSetRootless(Bool state) { void QuartzShow(void) { int i; - if (quartzServerVisible) + if (XQuartzServerVisible) return; - quartzServerVisible = TRUE; + XQuartzServerVisible = TRUE; for (i = 0; i < screenInfo.numScreens; i++) { if (screenInfo.screens[i]) { quartzProcs->ResumeScreen(screenInfo.screens[i]); } } - if (!quartzEnableRootless) + if (!XQuartzIsRootless) QuartzSetFullscreen(TRUE); } @@ -336,7 +341,7 @@ void QuartzHide(void) { int i; - if (quartzServerVisible) { + if (XQuartzServerVisible) { for (i = 0; i < screenInfo.numScreens; i++) { if (screenInfo.screens[i]) { quartzProcs->SuspendScreen(screenInfo.screens[i]); @@ -345,7 +350,7 @@ void QuartzHide(void) } QuartzSetFullscreen(FALSE); - quartzServerVisible = FALSE; + XQuartzServerVisible = FALSE; } @@ -358,7 +363,7 @@ void QuartzSetRootClip( { int i; - if (!quartzServerVisible) + if (!XQuartzServerVisible) return; for (i = 0; i < screenInfo.numScreens; i++) { diff --git a/hw/xquartz/quartz.h b/hw/xquartz/quartz.h index 1b924e7f7..a0a17cb36 100644 --- a/hw/xquartz/quartz.h +++ b/hw/xquartz/quartz.h @@ -35,6 +35,7 @@ #include "screenint.h" #include "window.h" +#include "pixmap.h" /*------------------------------------------ Quartz display mode function types @@ -113,7 +114,20 @@ typedef struct _QuartzModeProcs { } QuartzModeProcsRec, *QuartzModeProcsPtr; extern QuartzModeProcsPtr quartzProcs; -extern int quartzHasRoot, quartzEnableRootless; + +extern Bool XQuartzHasRoot; /* TODO: These two booleans are very similar and */ +extern Bool XQuartzServerVisible; /* the code that uses them needs to be refactored + * XQuartzHasRoot is essentially the "saved" XQuartzServerVisible + * value from when the server was not in rootless mode. + */ + +extern Bool XQuartzEnableKeyEquivalents; +extern Bool XQuartzRootlessDefault; /* Is our default mode rootless? */ +extern Bool XQuartzIsRootless; /* Is our current mode rootless (or FS)? */ +extern Bool XQuartzFullscreenMenu; /* Show the menu bar (autohide) while in FS */ +extern Bool XQuartzFullscreenDisableHotkeys; +extern Bool XQuartzOptionSendsAlt; /* Alt or Mode_switch? */ +extern Bool XQuartzUseSysBeep; /* Sys beep or our own? */ Bool QuartzAddScreen(int index, ScreenPtr pScreen); Bool QuartzSetupScreen(int index, ScreenPtr pScreen); @@ -129,8 +143,8 @@ void QuartzHide(void); void QuartzSetRootClip(BOOL enable); void QuartzSpaceChanged(uint32_t space_id); -void QuartzSetFullscreen(Bool state); void QuartzSetRootless(Bool state); +void QuartzSetFullscreen(Bool state); int server_main(int argc, char **argv, char **envp); #endif diff --git a/hw/xquartz/quartzAudio.c b/hw/xquartz/quartzAudio.c index 708202b5b..d0f7c53e5 100644 --- a/hw/xquartz/quartzAudio.c +++ b/hw/xquartz/quartzAudio.c @@ -42,7 +42,7 @@ #include #endif -#include "quartzCommon.h" +#include "quartz.h" #include "quartzAudio.h" #include @@ -220,7 +220,7 @@ void DDXRingBell( int pitch, // pitch is Hz int duration ) // duration is milliseconds { - if (quartzUseSysBeep) { + if (XQuartzUseSysBeep) { if (volume) NSBeep(); return; diff --git a/hw/xquartz/quartzCommon.h b/hw/xquartz/quartzCommon.h index 718df4b88..fbfe6f843 100644 --- a/hw/xquartz/quartzCommon.h +++ b/hw/xquartz/quartzCommon.h @@ -38,13 +38,7 @@ #include #include "privates.h" -// User preferences used by Quartz modes -extern int quartzUseSysBeep; -extern int quartzFullscreenDisableHotkeys; -extern int quartzOptionSendsAlt; - // Other shared data -extern int quartzServerVisible; extern DevPrivateKeyRec quartzScreenKeyRec; #define quartzScreenKey (&quartzScreenKeyRec) extern int aquaMenuBarHeight; diff --git a/hw/xquartz/quartzKeyboard.c b/hw/xquartz/quartzKeyboard.c index 75cf23ff4..f54c686d1 100644 --- a/hw/xquartz/quartzKeyboard.c +++ b/hw/xquartz/quartzKeyboard.c @@ -48,7 +48,7 @@ #include #include -#include "quartzCommon.h" +#include "quartz.h" #include "darwin.h" #include "darwinEvents.h" @@ -262,7 +262,7 @@ static void DarwinBuildModifierMaps(darwinKeyboardInfo *info) { case XK_Alt_L: info->modifierKeycodes[NX_MODIFIERKEY_ALTERNATE][0] = i; info->modMap[MIN_KEYCODE + i] = Mod1Mask; - if(!quartzOptionSendsAlt) + if(!XQuartzOptionSendsAlt) *k = XK_Mode_switch; // Yes, this is ugly. This needs to be cleaned up when we integrate quartzKeyboard with this code and refactor. break; @@ -272,7 +272,7 @@ static void DarwinBuildModifierMaps(darwinKeyboardInfo *info) { #else info->modifierKeycodes[NX_MODIFIERKEY_ALTERNATE][0] = i; #endif - if(!quartzOptionSendsAlt) + if(!XQuartzOptionSendsAlt) *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; diff --git a/hw/xquartz/quartzRandR.c b/hw/xquartz/quartzRandR.c index 782aa4d76..bbeebdae7 100644 --- a/hw/xquartz/quartzRandR.c +++ b/hw/xquartz/quartzRandR.c @@ -140,7 +140,7 @@ static Bool QuartzRandREnumerateModes (ScreenPtr pScreen, break; } - switch(callback(pScreen, screenId, &pQuartzScreen->fullScreenMode, data)) { + switch(callback(pScreen, screenId, &pQuartzScreen->fullscreenMode, data)) { case CALLBACK_SUCCESS: return TRUE; case CALLBACK_ERROR: @@ -239,7 +239,7 @@ static Bool QuartzRandREnumerateModes (ScreenPtr pScreen, break; } - switch(callback(pScreen, screenId, &pQuartzScreen->fullScreenMode, data)) { + switch(callback(pScreen, screenId, &pQuartzScreen->fullscreenMode, data)) { case CALLBACK_SUCCESS: return TRUE; case CALLBACK_ERROR: @@ -377,7 +377,7 @@ static Bool QuartzRandRGetInfo (ScreenPtr pScreen, Rotation *rotations) { resolution including/excluding the menu bar. */ QuartzRandRRegisterMode(pScreen, &pQuartzScreen->rootlessMode); - QuartzRandRRegisterMode(pScreen, &pQuartzScreen->fullScreenMode); + QuartzRandRRegisterMode(pScreen, &pQuartzScreen->fullscreenMode); return TRUE; } @@ -434,37 +434,37 @@ static Bool _QuartzRandRUpdateFakeModes (ScreenPtr pScreen) { QuartzScreenPtr pQuartzScreen = QUARTZ_PRIV(pScreen); if (pQuartzScreen->displayCount == 1) { - if(pQuartzScreen->fullScreenMode.ref) - CFRelease(pQuartzScreen->fullScreenMode.ref); + if(pQuartzScreen->fullscreenMode.ref) + CFRelease(pQuartzScreen->fullscreenMode.ref); if(pQuartzScreen->currentMode.ref) CFRelease(pQuartzScreen->currentMode.ref); if (!QuartzRandRCopyCurrentModeInfo(pQuartzScreen->displayIDs[0], - &pQuartzScreen->fullScreenMode)) + &pQuartzScreen->fullscreenMode)) return FALSE; - CFRetain(pQuartzScreen->fullScreenMode.ref); /* This extra retain is for currentMode's copy */ + CFRetain(pQuartzScreen->fullscreenMode.ref); /* This extra retain is for currentMode's copy */ } else { - pQuartzScreen->fullScreenMode.width = pScreen->width; - pQuartzScreen->fullScreenMode.height = pScreen->height; - if(quartzEnableRootless) - pQuartzScreen->fullScreenMode.height += aquaMenuBarHeight; + pQuartzScreen->fullscreenMode.width = pScreen->width; + pQuartzScreen->fullscreenMode.height = pScreen->height; + if(XQuartzIsRootless) + pQuartzScreen->fullscreenMode.height += aquaMenuBarHeight; } - pQuartzScreen->fullScreenMode.refresh = FAKE_REFRESH_FULLSCREEN; + pQuartzScreen->fullscreenMode.refresh = FAKE_REFRESH_FULLSCREEN; - pQuartzScreen->rootlessMode = pQuartzScreen->fullScreenMode; + pQuartzScreen->rootlessMode = pQuartzScreen->fullscreenMode; pQuartzScreen->rootlessMode.refresh = FAKE_REFRESH_ROOTLESS; pQuartzScreen->rootlessMode.height -= aquaMenuBarHeight; - if(quartzEnableRootless) { + if(XQuartzIsRootless) { pQuartzScreen->currentMode = pQuartzScreen->rootlessMode; } else { - pQuartzScreen->currentMode = pQuartzScreen->fullScreenMode; + pQuartzScreen->currentMode = pQuartzScreen->fullscreenMode; } DEBUG_LOG("rootlessMode: %d x %d\n", (int)pQuartzScreen->rootlessMode.width, (int)pQuartzScreen->rootlessMode.height); - DEBUG_LOG("fullScreenMode: %d x %d\n", (int)pQuartzScreen->fullScreenMode.width, (int)pQuartzScreen->fullScreenMode.height); + DEBUG_LOG("fullscreenMode: %d x %d\n", (int)pQuartzScreen->fullscreenMode.width, (int)pQuartzScreen->fullscreenMode.height); DEBUG_LOG("currentMode: %d x %d\n", (int)pQuartzScreen->currentMode.width, (int)pQuartzScreen->currentMode.height); return TRUE; diff --git a/hw/xquartz/quartzRandR.h b/hw/xquartz/quartzRandR.h index 4a7990e26..b2d4d098c 100644 --- a/hw/xquartz/quartzRandR.h +++ b/hw/xquartz/quartzRandR.h @@ -45,7 +45,7 @@ typedef struct { // No CG display will be covered by more than one X11 screen. int displayCount; CGDirectDisplayID *displayIDs; - QuartzModeInfo rootlessMode, fullScreenMode, currentMode; + QuartzModeInfo rootlessMode, fullscreenMode, currentMode; } QuartzScreenRec, *QuartzScreenPtr; #define QUARTZ_PRIV(pScreen) \ diff --git a/hw/xquartz/xpr/xprAppleWM.c b/hw/xquartz/xpr/xprAppleWM.c index 4b31e3a11..1a3d427b7 100644 --- a/hw/xquartz/xpr/xprAppleWM.c +++ b/hw/xquartz/xpr/xprAppleWM.c @@ -67,7 +67,7 @@ static int xprSetWindowLevel( if(!winRec) return BadWindow; - if(quartzEnableRootless) + if(XQuartzIsRootless) wc.window_level = normal_window_levels[level]; else wc.window_level = rooted_window_levels[level]; diff --git a/hw/xquartz/xpr/xprCursor.c b/hw/xquartz/xpr/xprCursor.c index a106e7241..216678e24 100644 --- a/hw/xquartz/xpr/xprCursor.c +++ b/hw/xquartz/xpr/xprCursor.c @@ -35,7 +35,7 @@ #include #endif -#include "quartzCommon.h" +#include "quartz.h" #include "xpr.h" #include "darwin.h" #include "darwinEvents.h" @@ -226,7 +226,7 @@ QuartzSetCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor, int x, { QuartzCursorScreenPtr ScreenPriv = CURSOR_PRIV(pScreen); - if (!quartzServerVisible) + if (!XQuartzServerVisible) return; if (pCursor == NULL) @@ -295,7 +295,7 @@ QuartzCrossScreen(ScreenPtr pScreen, Bool entering) static void QuartzWarpCursor(DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y) { - if (quartzServerVisible) + if (XQuartzServerVisible) { int sx, sy; diff --git a/hw/xquartz/xpr/xprFrame.c b/hw/xquartz/xpr/xprFrame.c index c78c5bd31..8ee3a28a6 100644 --- a/hw/xquartz/xpr/xprFrame.c +++ b/hw/xquartz/xpr/xprFrame.c @@ -171,7 +171,7 @@ xprCreateFrame(RootlessWindowPtr pFrame, ScreenPtr pScreen, pFrame->level = !IsRoot (pWin) ? AppleWMWindowLevelNormal : AppleWMNumWindowLevels; - if(quartzEnableRootless) + if(XQuartzIsRootless) wc.window_level = normal_window_levels[pFrame->level]; else wc.window_level = rooted_window_levels[pFrame->level]; @@ -285,7 +285,7 @@ static void xprRestackFrame(RootlessFrameID wid, RootlessFrameID nextWid) { RootlessWindowRec *winRec = x_hash_table_lookup(window_hash, wid, NULL); if(winRec) { - if(quartzEnableRootless) + if(XQuartzIsRootless) wc.window_level = normal_window_levels[winRec->level]; else wc.window_level = rooted_window_levels[winRec->level]; diff --git a/hw/xquartz/xpr/xprScreen.c b/hw/xquartz/xpr/xprScreen.c index f7c8642d4..cba358f8b 100644 --- a/hw/xquartz/xpr/xprScreen.c +++ b/hw/xquartz/xpr/xprScreen.c @@ -158,7 +158,7 @@ displayScreenBounds(CGDirectDisplayID id) (int)frame.origin.x, (int)frame.origin.y); /* Remove menubar to help standard X11 window managers. */ - if (quartzEnableRootless && + if (XQuartzIsRootless && frame.origin.x == 0 && frame.origin.y == 0) { frame.origin.y += aquaMenuBarHeight; frame.size.height -= aquaMenuBarHeight; @@ -274,7 +274,8 @@ xprDisplayInit(void) AppleDRIExtensionInit(); xprAppleWMInit(); - if (!quartzEnableRootless) + XQuartzIsRootless = XQuartzRootlessDefault; + if (!XQuartzIsRootless) RootlessHideAllWindows(); } From c45bea0c044ad37bedb42209f7e6ea8b587999f0 Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Tue, 3 Aug 2010 12:51:51 -0700 Subject: [PATCH 106/125] XQuartz: RandR: Refactor legacy mode-switching to be better integrated with RandR Adds three new functions void QuartzRandRSetFakeRootless (void); void QuartzRandRSetFakeFullscreen (void); void QuartzRandRToggleFullscreen (void); The first two are identical to requesting the fake modes from a RandR client The third responds to cmd-alt-a to leave fullscreen or RandR. Signed-off-by: Jeremy Huddleston --- hw/xquartz/X11Application.m | 2 +- hw/xquartz/darwinEvents.c | 14 +- hw/xquartz/quartz.c | 64 +++++---- hw/xquartz/quartz.h | 10 +- hw/xquartz/quartzRandR.c | 277 ++++++++++++++++++++++-------------- hw/xquartz/quartzRandR.h | 20 +++ 6 files changed, 237 insertions(+), 150 deletions(-) diff --git a/hw/xquartz/X11Application.m b/hw/xquartz/X11Application.m index 781dcccc8..8f4f23ff3 100644 --- a/hw/xquartz/X11Application.m +++ b/hw/xquartz/X11Application.m @@ -370,7 +370,7 @@ static void message_kit_thread (SEL selector, NSObject *arg) { break; case 18: /* ApplicationDidReactivate */ - if (XQuartzHasRoot) for_appkit = NO; + if (XQuartzFullscreenVisible) for_appkit = NO; break; case NSApplicationDeactivatedEventType: diff --git a/hw/xquartz/darwinEvents.c b/hw/xquartz/darwinEvents.c index 4332202cf..74fadf465 100644 --- a/hw/xquartz/darwinEvents.c +++ b/hw/xquartz/darwinEvents.c @@ -241,17 +241,17 @@ static void DarwinEventHandler(int screenNum, InternalEvent *ie, DeviceIntPtr de DEBUG_LOG("kXquartzToggleFullscreen\n"); if(XQuartzIsRootless) ErrorF("Ignoring kXquartzToggleFullscreen because of rootless mode."); - else if (XQuartzHasRoot) - QuartzHide(); - else - QuartzShow(); + else + QuartzRandRToggleFullscreen(); break; case kXquartzSetRootless: DEBUG_LOG("kXquartzSetRootless\n"); - QuartzSetRootless(e->data[0]); - if (!XQuartzIsRootless && !XQuartzHasRoot) - QuartzHide(); + if(e->data[0]) { + QuartzRandRSetFakeRootless(); + } else { + QuartzRandRSetFakeFullscreen(FALSE); + } break; case kXquartzSetRootClip: diff --git a/hw/xquartz/quartz.c b/hw/xquartz/quartz.c index cd90457ed..e21303ccd 100644 --- a/hw/xquartz/quartz.c +++ b/hw/xquartz/quartz.c @@ -74,7 +74,7 @@ const char *quartzOpenGLBundle = NULL; Bool XQuartzFullscreenDisableHotkeys = TRUE; Bool XQuartzOptionSendsAlt = FALSE; Bool XQuartzEnableKeyEquivalents = TRUE; -Bool XQuartzHasRoot = FALSE; +Bool XQuartzFullscreenVisible = FALSE; Bool XQuartzRootlessDefault = TRUE; Bool XQuartzIsRootless = TRUE; Bool XQuartzServerVisible = FALSE; @@ -246,44 +246,58 @@ void QuartzUpdateScreens(void) { quartzProcs->UpdateScreen(pScreen); } -void QuartzSetFullscreen(Bool state) { +void QuartzShowFullscreen(int state) { + int i; - DEBUG_LOG("QuartzSetFullscreen: state=%d\n", state); + DEBUG_LOG("QuartzShowFullscreen: state=%d\n", state); - if(XQuartzHasRoot == state) + if(XQuartzIsRootless) { + ErrorF("QuartzShowFullscreen called while in rootless mode.\n"); + return; + } + + if(XQuartzFullscreenVisible == state) return; - XQuartzHasRoot = state; + XQuartzFullscreenVisible = state; xp_disable_update (); - if (!XQuartzHasRoot && !XQuartzIsRootless) + if (!XQuartzFullscreenVisible) RootlessHideAllWindows(); - RootlessUpdateRooted(XQuartzHasRoot); + RootlessUpdateRooted(XQuartzFullscreenVisible); - if (XQuartzHasRoot && !XQuartzIsRootless) + if (XQuartzFullscreenVisible) { RootlessShowAllWindows (); - - if (XQuartzHasRoot || XQuartzIsRootless) { - RootlessRepositionWindows(screenInfo.screens[0]); + for (i=0; i < screenInfo.numScreens; i++) { + ScreenPtr pScreen = screenInfo.screens[i]; + RootlessRepositionWindows(pScreen); + // JH: I don't think this is necessary, but keeping it here as a reminder + //RootlessUpdateScreenPixmap(pScreen); + } } /* Somehow the menubar manages to interfere with our event stream * in fullscreen mode, even though it's not visible. */ - X11ApplicationShowHideMenubar(!XQuartzHasRoot); + X11ApplicationShowHideMenubar(!XQuartzFullscreenVisible); xp_reenable_update (); if (XQuartzFullscreenDisableHotkeys) - xp_disable_hot_keys(XQuartzHasRoot); + xp_disable_hot_keys(XQuartzFullscreenVisible); } -void QuartzSetRootless(Bool state) { +void QuartzSetRootless(Bool state) { + DEBUG_LOG("QuartzSetRootless state=%d\n", state); + if(XQuartzIsRootless == state) return; + if(state) + QuartzShowFullscreen(FALSE); + XQuartzIsRootless = state; xp_disable_update(); @@ -291,20 +305,17 @@ void QuartzSetRootless(Bool state) { /* When in rootless, the menubar is not part of the screen, so we need to update our screens on toggle */ QuartzUpdateScreens(); - if(!XQuartzHasRoot) { - if(!XQuartzIsRootless) { - RootlessHideAllWindows(); - } else { - RootlessShowAllWindows(); - } + if(XQuartzIsRootless) { + RootlessShowAllWindows(); + } else { + RootlessHideAllWindows(); } - X11ApplicationShowHideMenubar(!XQuartzHasRoot); + X11ApplicationShowHideMenubar(TRUE); xp_reenable_update(); - if (!XQuartzIsRootless && XQuartzFullscreenDisableHotkeys) - xp_disable_hot_keys(XQuartzHasRoot); + xp_disable_hot_keys(FALSE); } /* @@ -327,7 +338,7 @@ void QuartzShow(void) { } if (!XQuartzIsRootless) - QuartzSetFullscreen(TRUE); + QuartzShowFullscreen(TRUE); } @@ -348,8 +359,9 @@ void QuartzHide(void) } } } - - QuartzSetFullscreen(FALSE); + + if(!XQuartzIsRootless) + QuartzShowFullscreen(FALSE); XQuartzServerVisible = FALSE; } diff --git a/hw/xquartz/quartz.h b/hw/xquartz/quartz.h index a0a17cb36..7efb7e09b 100644 --- a/hw/xquartz/quartz.h +++ b/hw/xquartz/quartz.h @@ -115,12 +115,8 @@ typedef struct _QuartzModeProcs { extern QuartzModeProcsPtr quartzProcs; -extern Bool XQuartzHasRoot; /* TODO: These two booleans are very similar and */ -extern Bool XQuartzServerVisible; /* the code that uses them needs to be refactored - * XQuartzHasRoot is essentially the "saved" XQuartzServerVisible - * value from when the server was not in rootless mode. - */ - +extern Bool XQuartzFullscreenVisible; /* Are the windows visible (predicated on !rootless) */ +extern Bool XQuartzServerVisible; /* Is the server visible ... TODO: Refactor to "active" */ extern Bool XQuartzEnableKeyEquivalents; extern Bool XQuartzRootlessDefault; /* Is our default mode rootless? */ extern Bool XQuartzIsRootless; /* Is our current mode rootless (or FS)? */ @@ -144,7 +140,7 @@ void QuartzSetRootClip(BOOL enable); void QuartzSpaceChanged(uint32_t space_id); void QuartzSetRootless(Bool state); -void QuartzSetFullscreen(Bool state); +void QuartzShowFullscreen(Bool state); int server_main(int argc, char **argv, char **envp); #endif diff --git a/hw/xquartz/quartzRandR.c b/hw/xquartz/quartzRandR.c index bbeebdae7..298ec0a52 100644 --- a/hw/xquartz/quartzRandR.c +++ b/hw/xquartz/quartzRandR.c @@ -62,7 +62,7 @@ static Bool ignore_next_fake_mode_update = FALSE; #define CALLBACK_ERROR -1 typedef int (*QuartzModeCallback) - (ScreenPtr, CGDirectDisplayID, QuartzModeInfoPtr, void *); + (ScreenPtr, QuartzModeInfoPtr, void *); #if MAC_OS_X_VERSION_MIN_REQUIRED < 1060 @@ -98,6 +98,7 @@ static void QuartzRandRGetModeInfo (CFDictionaryRef modeRef, if (pMode->refresh == 0) pMode->refresh = DEFAULT_REFRESH; pMode->ref = NULL; + pMode->pSize = NULL; } static Bool QuartzRandRCopyCurrentModeInfo (CGDirectDisplayID screenId, @@ -112,14 +113,13 @@ static Bool QuartzRandRCopyCurrentModeInfo (CGDirectDisplayID screenId, return TRUE; } -static Bool QuartzRandRSetMode (CGDirectDisplayID screenId, +static Bool QuartzRandRSetCGMode (CGDirectDisplayID screenId, QuartzModeInfoPtr pMode) { CFDictionaryRef modeRef = (CFDictionaryRef) pMode->ref; return (CGDisplaySwitchToMode(screenId, modeRef) == kCGErrorSuccess); } static Bool QuartzRandREnumerateModes (ScreenPtr pScreen, - CGDirectDisplayID screenId, QuartzModeCallback callback, void *data) { CFDictionaryRef curModeRef, modeRef; @@ -127,28 +127,9 @@ static Bool QuartzRandREnumerateModes (ScreenPtr pScreen, CFArrayRef modes; QuartzModeInfo modeInfo; int i; - BOOL retval = TRUE; + BOOL retval = FALSE; QuartzScreenPtr pQuartzScreen = QUARTZ_PRIV(pScreen); - - switch(callback(pScreen, screenId, &pQuartzScreen->rootlessMode, data)) { - case CALLBACK_SUCCESS: - return TRUE; - case CALLBACK_ERROR: - return FALSE; - case CALLBACK_CONTINUE: - default: - break; - } - - switch(callback(pScreen, screenId, &pQuartzScreen->fullscreenMode, data)) { - case CALLBACK_SUCCESS: - return TRUE; - case CALLBACK_ERROR: - return FALSE; - case CALLBACK_CONTINUE: - default: - break; - } + CGDirectDisplayID screenId = pQuartzScreen->displayIDs[0]; curModeRef = CGDisplayCurrentMode(screenId); if (!curModeRef) @@ -172,14 +153,37 @@ static Bool QuartzRandREnumerateModes (ScreenPtr pScreen, QuartzRandRGetModeInfo(modeRef, &modeInfo); modeInfo.ref = (void *)modeRef; - cb = callback(pScreen, screenId, &modeInfo, data); - if (cb == CALLBACK_SUCCESS) - break; - if (cb == CALLBACK_ERROR) { - retval = FALSE; - break; - } + cb = callback(pScreen, &modeInfo, data); + if (cb == CALLBACK_CONTINUE) + retval = TRUE; + else if (cb == CALLBACK_SUCCESS) + return TRUE; + else if (cb == CALLBACK_ERROR) + return FALSE; } + + switch(callback(pScreen, &pQuartzScreen->rootlessMode, data)) { + case CALLBACK_SUCCESS: + return TRUE; + case CALLBACK_ERROR: + return FALSE; + case CALLBACK_CONTINUE: + retval = TRUE; + default: + break; + } + + switch(callback(pScreen, &pQuartzScreen->fullscreenMode, data)) { + case CALLBACK_SUCCESS: + return TRUE; + case CALLBACK_ERROR: + return FALSE; + case CALLBACK_CONTINUE: + retval = TRUE; + default: + break; + } + return retval; } @@ -193,6 +197,7 @@ static void QuartzRandRGetModeInfo (CGDisplayModeRef modeRef, if (pMode->refresh == 0) pMode->refresh = DEFAULT_REFRESH; pMode->ref = NULL; + pMode->pSize = NULL; } static Bool QuartzRandRCopyCurrentModeInfo (CGDirectDisplayID screenId, @@ -206,7 +211,7 @@ static Bool QuartzRandRCopyCurrentModeInfo (CGDirectDisplayID screenId, return TRUE; } -static Bool QuartzRandRSetMode (CGDirectDisplayID screenId, +static Bool QuartzRandRSetCGMode (CGDirectDisplayID screenId, QuartzModeInfoPtr pMode) { CGDisplayModeRef modeRef = (CGDisplayModeRef) pMode->ref; if (!modeRef) @@ -216,7 +221,6 @@ static Bool QuartzRandRSetMode (CGDirectDisplayID screenId, } static Bool QuartzRandREnumerateModes (ScreenPtr pScreen, - CGDirectDisplayID screenId, QuartzModeCallback callback, void *data) { CGDisplayModeRef curModeRef, modeRef; @@ -225,29 +229,10 @@ static Bool QuartzRandREnumerateModes (ScreenPtr pScreen, CFArrayRef modes; QuartzModeInfo modeInfo; int i; - Bool retval = TRUE; + Bool retval = FALSE; QuartzScreenPtr pQuartzScreen = QUARTZ_PRIV(pScreen); - - switch(callback(pScreen, screenId, &pQuartzScreen->rootlessMode, data)) { - case CALLBACK_SUCCESS: - return TRUE; - case CALLBACK_ERROR: - return FALSE; - case CALLBACK_CONTINUE: - default: - break; - } - - switch(callback(pScreen, screenId, &pQuartzScreen->fullscreenMode, data)) { - case CALLBACK_SUCCESS: - return TRUE; - case CALLBACK_ERROR: - return FALSE; - case CALLBACK_CONTINUE: - default: - break; - } + CGDirectDisplayID screenId = pQuartzScreen->displayIDs[0]; curModeRef = CGDisplayCopyDisplayMode(screenId); if (!curModeRef) @@ -277,18 +262,45 @@ static Bool QuartzRandREnumerateModes (ScreenPtr pScreen, QuartzRandRGetModeInfo(modeRef, &modeInfo); modeInfo.ref = modeRef; - cb = callback(pScreen, screenId, &modeInfo, data); - if (cb == CALLBACK_SUCCESS) - break; - if (cb == CALLBACK_ERROR) { - retval = FALSE; - break; - } + cb = callback(pScreen, &modeInfo, data); + if (cb == CALLBACK_CONTINUE) { + retval = TRUE; + } else if (cb == CALLBACK_SUCCESS) { + CFRelease(modes); + CFRelease(curPixelEnc); + return TRUE; + } else if (cb == CALLBACK_ERROR) { + CFRelease(modes); + CFRelease(curPixelEnc); + return FALSE; + } } - - CFRelease(modes); + CFRelease(modes); CFRelease(curPixelEnc); + + switch(callback(pScreen, &pQuartzScreen->rootlessMode, data)) { + case CALLBACK_SUCCESS: + return TRUE; + case CALLBACK_ERROR: + return FALSE; + case CALLBACK_CONTINUE: + retval = TRUE; + default: + break; + } + + switch(callback(pScreen, &pQuartzScreen->fullscreenMode, data)) { + case CALLBACK_SUCCESS: + return TRUE; + case CALLBACK_ERROR: + return FALSE; + case CALLBACK_CONTINUE: + retval = TRUE; + default: + break; + } + return retval; } @@ -306,14 +318,15 @@ static Bool QuartzRandRRegisterMode (ScreenPtr pScreen, QuartzModeInfoPtr pMode) { QuartzScreenPtr pQuartzScreen = QUARTZ_PRIV(pScreen); Bool isCurrentMode = QuartzRandRModesEqual(&pQuartzScreen->currentMode, pMode); - RRScreenSizePtr pSize = RRRegisterSize(pScreen, - pMode->width, pMode->height, pScreen->mmWidth, pScreen->mmHeight); - if (pSize) { + + /* TODO: DPI */ + pMode->pSize = RRRegisterSize(pScreen, pMode->width, pMode->height, pScreen->mmWidth, pScreen->mmHeight); + if (pMode->pSize) { //DEBUG_LOG("registering: %d x %d @ %d %s\n", (int)pMode->width, (int)pMode->height, (int)pMode->refresh, isCurrentMode ? "*" : ""); - RRRegisterRate(pScreen, pSize, pMode->refresh); + RRRegisterRate(pScreen, pMode->pSize, pMode->refresh); if (isCurrentMode) - RRSetCurrentConfig(pScreen, RR_Rotate_0, pMode->refresh, pSize); + RRSetCurrentConfig(pScreen, RR_Rotate_0, pMode->refresh, pMode->pSize); return TRUE; } @@ -321,7 +334,6 @@ static Bool QuartzRandRRegisterMode (ScreenPtr pScreen, } static int QuartzRandRRegisterModeCallback (ScreenPtr pScreen, - CGDirectDisplayID screenId, QuartzModeInfoPtr pMode, void *data __unused) { if(QuartzRandRRegisterMode(pScreen, pMode)) { @@ -331,40 +343,53 @@ static int QuartzRandRRegisterModeCallback (ScreenPtr pScreen, } } +static Bool QuartzRandRSetMode(ScreenPtr pScreen, QuartzModeInfoPtr pMode, BOOL doRegister) { + QuartzScreenPtr pQuartzScreen = QUARTZ_PRIV(pScreen); + CGDirectDisplayID screenId = pQuartzScreen->displayIDs[0]; + + if (pQuartzScreen->currentMode.ref && CFEqual(pMode->ref, pQuartzScreen->currentMode.ref)) { + DEBUG_LOG("Requested RandR resolution matches current CG mode\n"); + } if (QuartzRandRSetCGMode(screenId, pMode)) { + ignore_next_fake_mode_update = TRUE; + } else { + DEBUG_LOG("Error while requesting CG resolution change.\n"); + return FALSE; + } + + /* If the client requested the fake rootless mode, switch to rootless. + * Otherwise, force fullscreen mode. + */ + QuartzSetRootless(pMode->refresh == FAKE_REFRESH_ROOTLESS); + if (pMode->refresh != FAKE_REFRESH_ROOTLESS) { + QuartzShowFullscreen(TRUE); + } + + if(pQuartzScreen->currentMode.ref) + CFRelease(pQuartzScreen->currentMode.ref); + pQuartzScreen->currentMode = *pMode; + CFRetain(pQuartzScreen->currentMode.ref); + + return TRUE; +} + static int QuartzRandRSetModeCallback (ScreenPtr pScreen, - CGDirectDisplayID screenId, QuartzModeInfoPtr pMode, void *data) { QuartzModeInfoPtr pReqMode = (QuartzModeInfoPtr) data; - QuartzScreenPtr pQuartzScreen = QUARTZ_PRIV(pScreen); if (!QuartzRandRModesEqual(pMode, pReqMode)) return CALLBACK_CONTINUE; /* continue enumeration */ DEBUG_LOG("Found a match for requested RandR resolution (%dx%d@%d).\n", (int)pMode->width, (int)pMode->height, (int)pMode->refresh); - if (pQuartzScreen->currentMode.ref && CFEqual(pMode->ref, pQuartzScreen->currentMode.ref)) { - DEBUG_LOG("Requested RandR resolution matches current CG mode\n"); - return CALLBACK_SUCCESS; /* We don't need to do anything in CG */ - } - - if (QuartzRandRSetMode(screenId, pMode)) { - if(pQuartzScreen->currentMode.ref) - CFRelease(pQuartzScreen->currentMode.ref); - pQuartzScreen->currentMode = *pMode; - CFRetain(pQuartzScreen->currentMode.ref); - - ignore_next_fake_mode_update = TRUE; + if(QuartzRandRSetMode(pScreen, pMode, FALSE)) return CALLBACK_SUCCESS; - } else { - DEBUG_LOG("Error while requesting CG resolution change.\n"); + else return CALLBACK_ERROR; - } } static Bool QuartzRandRGetInfo (ScreenPtr pScreen, Rotation *rotations) { QuartzScreenPtr pQuartzScreen = QUARTZ_PRIV(pScreen); - CGDirectDisplayID screenId; *rotations = RR_Rotate_0; /* TODO: support rotation */ @@ -381,8 +406,7 @@ static Bool QuartzRandRGetInfo (ScreenPtr pScreen, Rotation *rotations) { return TRUE; } - screenId = pQuartzScreen->displayIDs[0]; - return QuartzRandREnumerateModes(pScreen, screenId, QuartzRandRRegisterModeCallback, NULL); + return QuartzRandREnumerateModes(pScreen, QuartzRandRRegisterModeCallback, NULL); } static Bool QuartzRandRSetConfig (ScreenPtr pScreen, @@ -390,39 +414,20 @@ static Bool QuartzRandRSetConfig (ScreenPtr pScreen, int rate, RRScreenSizePtr pSize) { QuartzScreenPtr pQuartzScreen = QUARTZ_PRIV(pScreen); - CGDirectDisplayID screenId; QuartzModeInfo reqMode; reqMode.width = pSize->width; reqMode.height = pSize->height; reqMode.refresh = rate; - /* If the client requested the fake rootless mode, switch to rootless. - * Otherwise, force fullscreen mode. - * TODO: Refactor all this fullscreen/rootless crap as it is spaghetti - * has redundancies. - */ - QuartzSetRootless(reqMode.refresh == FAKE_REFRESH_ROOTLESS); - QuartzSetFullscreen(reqMode.refresh != FAKE_REFRESH_ROOTLESS); - if(reqMode.refresh != FAKE_REFRESH_ROOTLESS && - reqMode.refresh != FAKE_REFRESH_FULLSCREEN) - QuartzShow(); - if (pQuartzScreen->displayCount == 0) return FALSE; - if (pQuartzScreen->displayCount > 1) { - /* RandR operations are not well-defined for an X11 screen spanning - multiple CG displays. Do not accept any configuations that differ - from the current configuration. */ - return TRUE; - } /* Do not switch modes if requested mode is equal to current mode. */ if (QuartzRandRModesEqual(&reqMode, &pQuartzScreen->currentMode)) return TRUE; - screenId = pQuartzScreen->displayIDs[0]; - if (QuartzRandREnumerateModes(pScreen, screenId, QuartzRandRSetModeCallback, &reqMode)) { + if (QuartzRandREnumerateModes(pScreen, QuartzRandRSetModeCallback, &reqMode)) { return TRUE; } @@ -499,3 +504,57 @@ Bool QuartzRandRInit (ScreenPtr pScreen) { pScrPriv->rrSetConfig = QuartzRandRSetConfig; return TRUE; } + +void QuartzRandRSetFakeRootless (void) { + int i; + + DEBUG_LOG("QuartzRandRSetFakeRootless called.\n"); + + for (i=0; i < screenInfo.numScreens; i++) { + ScreenPtr pScreen = screenInfo.screens[i]; + QuartzScreenPtr pQuartzScreen = QUARTZ_PRIV(pScreen); + + QuartzRandRSetMode(pScreen, &pQuartzScreen->rootlessMode, TRUE); + } +} + +void QuartzRandRSetFakeFullscreen (BOOL state) { + int i; + + DEBUG_LOG("QuartzRandRSetFakeFullscreen called.\n"); + + for (i=0; i < screenInfo.numScreens; i++) { + ScreenPtr pScreen = screenInfo.screens[i]; + QuartzScreenPtr pQuartzScreen = QUARTZ_PRIV(pScreen); + + QuartzRandRSetMode(pScreen, &pQuartzScreen->fullscreenMode, TRUE); + } + + QuartzShowFullscreen(state); +} + +/* Toggle fullscreen mode. If "fake" fullscreen is the current mode, + * this will just show/hide the X11 windows. If we are in a RandR fullscreen + * mode, this will toggles us to the default fake mode and hide windows if + * it is fullscreen + */ +void QuartzRandRToggleFullscreen (void) { + ScreenPtr pScreen = screenInfo.screens[0]; + QuartzScreenPtr pQuartzScreen = QUARTZ_PRIV(pScreen); + + if (pQuartzScreen->currentMode.ref == NULL) { + ErrorF("Ignoring QuartzRandRToggleFullscreen because don't have a current mode set.\n"); + } else if (pQuartzScreen->currentMode.refresh == FAKE_REFRESH_ROOTLESS) { + ErrorF("Ignoring QuartzRandRToggleFullscreen because we are in rootless mode.\n"); + } else if (pQuartzScreen->currentMode.refresh == FAKE_REFRESH_FULLSCREEN) { + /* Legacy fullscreen mode. Hide/Show */ + QuartzShowFullscreen(!XQuartzFullscreenVisible); + } else { + /* RandR fullscreen mode. Return to default mode and hide if it is fullscreen. */ + if(XQuartzRootlessDefault) { + QuartzRandRSetFakeRootless(); + } else { + QuartzRandRSetFakeFullscreen(FALSE); + } + } +} diff --git a/hw/xquartz/quartzRandR.h b/hw/xquartz/quartzRandR.h index b2d4d098c..fb0ce0c44 100644 --- a/hw/xquartz/quartzRandR.h +++ b/hw/xquartz/quartzRandR.h @@ -31,9 +31,12 @@ #ifndef _QUARTZRANDR_H_ #define _QUARTZRANDR_H_ +#include "randrstr.h" + typedef struct { size_t width, height; int refresh; + RRScreenSizePtr pSize; void *ref; /* CGDisplayModeRef or CFDictionaryRef */ } QuartzModeInfo, *QuartzModeInfoPtr; @@ -57,4 +60,21 @@ void QuartzCopyDisplayIDs(ScreenPtr pScreen, Bool QuartzRandRUpdateFakeModes (BOOL force_update); Bool QuartzRandRInit (ScreenPtr pScreen); +/* These two functions provide functionality expected by the legacy + * mode switching. They are equivalent to a client requesting one + * of the modes corresponding to these "fake" modes. + * QuartzRandRSetFakeFullscreen takes an argument which is used to determine + * the visibility of the windows after the change. + */ +void QuartzRandRSetFakeRootless (void); +void QuartzRandRSetFakeFullscreen (BOOL state); + + +/* Toggle fullscreen mode. If "fake" fullscreen is the current mode, + * this will just show/hide the X11 windows. If we are in a RandR fullscreen + * mode, this will toggles us to the default fake mode and hide windows if + * it is fullscreen + */ +void QuartzRandRToggleFullscreen (void); + #endif From 1a9022d3289ff74043112808cc8aa315fd9c40e8 Mon Sep 17 00:00:00 2001 From: Aaron Plattner Date: Tue, 28 Sep 2010 13:59:19 -0700 Subject: [PATCH 107/125] Bump video driver ABI version to 9.0 Signed-off-by: Aaron Plattner Reviewed-by: Keith Packard Signed-off-by: Keith Packard --- hw/xfree86/common/xf86Module.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/xfree86/common/xf86Module.h b/hw/xfree86/common/xf86Module.h index 51b9b16a3..7a8f62f99 100644 --- a/hw/xfree86/common/xf86Module.h +++ b/hw/xfree86/common/xf86Module.h @@ -82,7 +82,7 @@ typedef enum { * mask is 0xFFFF0000. */ #define ABI_ANSIC_VERSION SET_ABI_VERSION(0, 4) -#define ABI_VIDEODRV_VERSION SET_ABI_VERSION(8, 0) +#define ABI_VIDEODRV_VERSION SET_ABI_VERSION(9, 0) #define ABI_XINPUT_VERSION SET_ABI_VERSION(11, 0) #define ABI_EXTENSION_VERSION SET_ABI_VERSION(4, 0) #define ABI_FONT_VERSION SET_ABI_VERSION(0, 6) From 72a9c686d7ecaa68d27687b316dbba92902809b4 Mon Sep 17 00:00:00 2001 From: Jon TURNEY Date: Wed, 29 Sep 2010 17:05:12 +0100 Subject: [PATCH 108/125] Cygwin/X: Fix compilation after "delete pervasively use of DISPATCH_PROC" commit cbd4d5dbb70db62ba1cb79c7b904e6fa11f62d7e removes the static declarations of ProcWindowsWMDispatch and SProcWindowsWMDispatch which precede their first use in winWindowsWMExtensionInit() Move winWindowsWMExtensionInit() to after the definition of those two functions to fix compilation. Signed-off-by: Jon TURNEY Reviewed-by: Tiago Vignatti Signed-off-by: Keith Packard --- hw/xwin/winwindowswm.c | 52 ++++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 27 deletions(-) diff --git a/hw/xwin/winwindowswm.c b/hw/xwin/winwindowswm.c index ca3dbc325..4027539c2 100755 --- a/hw/xwin/winwindowswm.c +++ b/hw/xwin/winwindowswm.c @@ -44,8 +44,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "protocol-versions.h" static int WMErrorBase; - - static unsigned char WMReqCode = 0; static int WMEventBase = 0; @@ -78,31 +76,6 @@ make_box (int x, int y, int w, int h) return r; } -void -winWindowsWMExtensionInit (void) -{ - ExtensionEntry* extEntry; - - ClientType = CreateNewResourceType(WMFreeClient, "WMClient"); - eventResourceType = CreateNewResourceType(WMFreeEvents, "WMEvent"); - eventResource = FakeClientID(0); - - if (ClientType && eventResourceType && - (extEntry = AddExtension(WINDOWSWMNAME, - WindowsWMNumberEvents, - WindowsWMNumberErrors, - ProcWindowsWMDispatch, - SProcWindowsWMDispatch, - NULL, - StandardMinorOpcode))) - { - WMReqCode = (unsigned char)extEntry->base; - WMErrorBase = extEntry->errorBase; - WMEventBase = extEntry->eventBase; - EventSwapVector[WMEventBase] = (EventSwapPtr) SNotifyEvent; - } -} - static int ProcWindowsWMQueryVersion(register ClientPtr client) { @@ -639,3 +612,28 @@ SProcWindowsWMDispatch (register ClientPtr client) return BadRequest; } } + +void +winWindowsWMExtensionInit (void) +{ + ExtensionEntry* extEntry; + + ClientType = CreateNewResourceType(WMFreeClient, "WMClient"); + eventResourceType = CreateNewResourceType(WMFreeEvents, "WMEvent"); + eventResource = FakeClientID(0); + + if (ClientType && eventResourceType && + (extEntry = AddExtension(WINDOWSWMNAME, + WindowsWMNumberEvents, + WindowsWMNumberErrors, + ProcWindowsWMDispatch, + SProcWindowsWMDispatch, + NULL, + StandardMinorOpcode))) + { + WMReqCode = (unsigned char)extEntry->base; + WMErrorBase = extEntry->errorBase; + WMEventBase = extEntry->eventBase; + EventSwapVector[WMEventBase] = (EventSwapPtr) SNotifyEvent; + } +} From c7e4222c9a27094ce4fc2831ac92acbb7b21fb1a Mon Sep 17 00:00:00 2001 From: Tobias Droste Date: Wed, 29 Sep 2010 22:51:48 +0200 Subject: [PATCH 109/125] randr: set error numbers of resource types in RRExtenstionInit() (V2) Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=30367 Currently the ddx calls xf86RandR12Init() (-> RRScreenInit() -> RRInit() -> RRModeInit() -> RRCrtcInit() -> RROutputInit()) before RRExtensionInit() is called. This causes RRErrorBase being 0 while setting resource type error values (resource types: RROutput, RRMode and RRCrtc). The fix moves the setting of error values to own functions which are called in RRExtensionInit() to get the right RRErrorBase. V2: With header file Signed-off-by: Tobias Droste Reviewed-by: Keith Packard Signed-off-by: Keith Packard --- randr/randr.c | 5 +++++ randr/randrstr.h | 18 ++++++++++++++++++ randr/rrcrtc.c | 11 ++++++++++- randr/rrmode.c | 14 +++++++++++++- randr/rroutput.c | 11 ++++++++++- 5 files changed, 56 insertions(+), 3 deletions(-) diff --git a/randr/randr.c b/randr/randr.c index f52a46ac8..607770520 100644 --- a/randr/randr.c +++ b/randr/randr.c @@ -354,6 +354,11 @@ RRExtensionInit (void) SRRScreenChangeNotifyEvent; EventSwapVector[RREventBase + RRNotify] = (EventSwapPtr) SRRNotifyEvent; + + RRModeInitErrorValue(); + RRCrtcInitErrorValue(); + RROutputInitErrorValue(); + #ifdef PANORAMIX RRXineramaExtensionInit(); #endif diff --git a/randr/randrstr.h b/randr/randrstr.h index aad126f80..03652ef09 100644 --- a/randr/randrstr.h +++ b/randr/randrstr.h @@ -700,6 +700,12 @@ RRCrtcTransformSet (RRCrtcPtr crtc, extern _X_EXPORT Bool RRCrtcInit (void); +/* + * Initialize crtc type error value + */ +extern _X_EXPORT void +RRCrtcInitErrorValue (void); + /* * Crtc dispatch */ @@ -762,6 +768,12 @@ RRModesForScreen (ScreenPtr pScreen, int *num_ret); */ extern _X_EXPORT Bool RRModeInit (void); + +/* + * Initialize mode type error value + */ +extern _X_EXPORT void +RRModeInitErrorValue (void); extern _X_EXPORT int ProcRRCreateMode (ClientPtr client); @@ -856,6 +868,12 @@ ProcRRGetOutputPrimary (ClientPtr client); */ extern _X_EXPORT Bool RROutputInit (void); + +/* + * Initialize output type error value + */ +extern _X_EXPORT void +RROutputInitErrorValue (void); /* rrpointer.c */ extern _X_EXPORT void diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c index 14f6e45ac..98206a2b9 100644 --- a/randr/rrcrtc.c +++ b/randr/rrcrtc.c @@ -631,10 +631,19 @@ RRCrtcInit (void) RRCrtcType = CreateNewResourceType (RRCrtcDestroyResource, "CRTC"); if (!RRCrtcType) return FALSE; - SetResourceTypeErrorValue(RRCrtcType, RRErrorBase + BadRRCrtc); + return TRUE; } +/* + * Initialize crtc type error value + */ +void +RRCrtcInitErrorValue(void) +{ + SetResourceTypeErrorValue(RRCrtcType, RRErrorBase + BadRRCrtc); +} + int ProcRRGetCrtcInfo (ClientPtr client) { diff --git a/randr/rrmode.c b/randr/rrmode.c index deddd3c0c..5ffa4006f 100644 --- a/randr/rrmode.c +++ b/randr/rrmode.c @@ -260,6 +260,9 @@ RRModeDestroyResource (pointer value, XID pid) return 1; } +/* + * Initialize mode type + */ Bool RRModeInit (void) { @@ -268,10 +271,19 @@ RRModeInit (void) RRModeType = CreateNewResourceType (RRModeDestroyResource, "MODE"); if (!RRModeType) return FALSE; - SetResourceTypeErrorValue(RRModeType, RRErrorBase + BadRRMode); + return TRUE; } +/* + * Initialize mode type error value + */ +void +RRModeInitErrorValue(void) +{ + SetResourceTypeErrorValue(RRModeType, RRErrorBase + BadRRMode); +} + int ProcRRCreateMode (ClientPtr client) { diff --git a/randr/rroutput.c b/randr/rroutput.c index 937b14df0..5edeb7dd2 100644 --- a/randr/rroutput.c +++ b/randr/rroutput.c @@ -418,10 +418,19 @@ RROutputInit (void) RROutputType = CreateNewResourceType (RROutputDestroyResource, "OUTPUT"); if (!RROutputType) return FALSE; - SetResourceTypeErrorValue(RROutputType, RRErrorBase + BadRROutput); + return TRUE; } +/* + * Initialize output type error value + */ +void +RROutputInitErrorValue(void) +{ + SetResourceTypeErrorValue(RROutputType, RRErrorBase + BadRROutput); +} + #define OutputInfoExtra (SIZEOF(xRRGetOutputInfoReply) - 32) int From a769f4c22a9cfb5ba248c924a66c31ec966bd8a0 Mon Sep 17 00:00:00 2001 From: Adrian Bunk Date: Thu, 30 Sep 2010 13:18:20 +0300 Subject: [PATCH 110/125] remove dolt With libtool 2.2.10 the difference in build time is so small (< 5% with -j8 builds) that it isn't worth having this hack. Signed-off-by: Adrian Bunk Reviewed-by: Daniel Stone Reviewed-by: Dan Nicholson Reviewed-by: Jeremy Huddleston Signed-off-by: Keith Packard --- Makefile.am | 2 - configure.ac | 1 - m4/dolt.m4 | 181 --------------------------------------------------- 3 files changed, 184 deletions(-) delete mode 100644 m4/dolt.m4 diff --git a/Makefile.am b/Makefile.am index 8b7a2c8b4..62c8d9501 100644 --- a/Makefile.am +++ b/Makefile.am @@ -56,8 +56,6 @@ DISTCHECK_CONFIGURE_FLAGS=\ --with-xkb-bin-directory=$(XKB_BIN_DIRECTORY) \ --with-xkb-output='$${datadir}/X11/xkb/compiled' -DISTCLEANFILES = doltcompile doltlibtool - .PHONY: ChangeLog INSTALL INSTALL: diff --git a/configure.ac b/configure.ac index 825eb696e..479f54fe8 100644 --- a/configure.ac +++ b/configure.ac @@ -71,7 +71,6 @@ AC_PROG_LN_S AC_LIBTOOL_WIN32_DLL AC_DISABLE_STATIC AC_PROG_LIBTOOL -DOLT AC_PROG_MAKE_SET PKG_PROG_PKG_CONFIG AC_PROG_LEX diff --git a/m4/dolt.m4 b/m4/dolt.m4 deleted file mode 100644 index 7c62b6c46..000000000 --- a/m4/dolt.m4 +++ /dev/null @@ -1,181 +0,0 @@ -dnl dolt, a replacement for libtool -dnl Copyright © 2007-2008 Josh Triplett -dnl Copying and distribution of this file, with or without modification, -dnl are permitted in any medium without royalty provided the copyright -dnl notice and this notice are preserved. -dnl -dnl To use dolt, invoke the DOLT macro immediately after the libtool macros. -dnl Optionally, copy this file into acinclude.m4, to avoid the need to have it -dnl installed when running autoconf on your project. - -AC_DEFUN([DOLT], [ -AC_REQUIRE([AC_CANONICAL_HOST]) -# dolt, a replacement for libtool -# Josh Triplett -AC_PATH_PROG(DOLT_BASH, bash) -AC_MSG_CHECKING([if dolt supports this host]) -dolt_supported=yes -if test x$DOLT_BASH = x; then - dolt_supported=no -fi -if test x$GCC != xyes; then - dolt_supported=no -fi -case $host in -i?86-*-linux*|x86_64-*-linux*|powerpc-*-linux* \ -|amd64-*-freebsd*|i?86-*-freebsd*|ia64-*-freebsd*) - pic_options='-fPIC' - ;; -i?86-pc-cygwin*) - pic_options='-DDLL_EXPORT' - ;; -i?86-apple-darwin*) - pic_options='-fno-common' - ;; -*) - dolt_supported=no - ;; -esac -if test x$dolt_supported = xno ; then - AC_MSG_RESULT([no, falling back to libtool]) - LTCOMPILE='$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(COMPILE)' - LTCXXCOMPILE='$(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXXCOMPILE)' -else - AC_MSG_RESULT([yes, replacing libtool]) - -dnl Start writing out doltcompile. - cat <<__DOLTCOMPILE__EOF__ >doltcompile -#!$DOLT_BASH -__DOLTCOMPILE__EOF__ - cat <<'__DOLTCOMPILE__EOF__' >>doltcompile -args=("$[]@") -for ((arg=0; arg<${#args@<:@@@:>@}; arg++)) ; do - if test x"${args@<:@$arg@:>@}" = x-o ; then - objarg=$((arg+1)) - break - fi -done -if test x$objarg = x ; then - echo 'Error: no -o on compiler command line' 1>&2 - exit 1 -fi -lo="${args@<:@$objarg@:>@}" -obj="${lo%.lo}" -if test x"$lo" = x"$obj" ; then - echo "Error: libtool object file name \"$lo\" does not end in .lo" 1>&2 - exit 1 -fi -objbase="${obj##*/}" -__DOLTCOMPILE__EOF__ - -dnl Write out shared compilation code. - if test x$enable_shared = xyes; then - cat <<'__DOLTCOMPILE__EOF__' >>doltcompile -libobjdir="${obj%$objbase}.libs" -if test ! -d "$libobjdir" ; then - mkdir_out="$(mkdir "$libobjdir" 2>&1)" - mkdir_ret=$? - if test "$mkdir_ret" -ne 0 && test ! -d "$libobjdir" ; then - echo "$mkdir_out" 1>&2 - exit $mkdir_ret - fi -fi -pic_object="$libobjdir/$objbase.o" -args@<:@$objarg@:>@="$pic_object" -__DOLTCOMPILE__EOF__ - cat <<__DOLTCOMPILE__EOF__ >>doltcompile -"\${args@<:@@@:>@}" $pic_options -DPIC || exit \$? -__DOLTCOMPILE__EOF__ - fi - -dnl Write out static compilation code. -dnl Avoid duplicate compiler output if also building shared objects. - if test x$enable_static = xyes; then - cat <<'__DOLTCOMPILE__EOF__' >>doltcompile -non_pic_object="$obj.o" -args@<:@$objarg@:>@="$non_pic_object" -__DOLTCOMPILE__EOF__ - if test x$enable_shared = xyes; then - cat <<'__DOLTCOMPILE__EOF__' >>doltcompile -"${args@<:@@@:>@}" >/dev/null 2>&1 || exit $? -__DOLTCOMPILE__EOF__ - else - cat <<'__DOLTCOMPILE__EOF__' >>doltcompile -"${args@<:@@@:>@}" || exit $? -__DOLTCOMPILE__EOF__ - fi - fi - -dnl Write out the code to write the .lo file. -dnl The second line of the .lo file must match "^# Generated by .*libtool" - cat <<'__DOLTCOMPILE__EOF__' >>doltcompile -{ -echo "# $lo - a libtool object file" -echo "# Generated by doltcompile, not libtool" -__DOLTCOMPILE__EOF__ - - if test x$enable_shared = xyes; then - cat <<'__DOLTCOMPILE__EOF__' >>doltcompile -echo "pic_object='.libs/${objbase}.o'" -__DOLTCOMPILE__EOF__ - else - cat <<'__DOLTCOMPILE__EOF__' >>doltcompile -echo pic_object=none -__DOLTCOMPILE__EOF__ - fi - - if test x$enable_static = xyes; then - cat <<'__DOLTCOMPILE__EOF__' >>doltcompile -echo "non_pic_object='${objbase}.o'" -__DOLTCOMPILE__EOF__ - else - cat <<'__DOLTCOMPILE__EOF__' >>doltcompile -echo non_pic_object=none -__DOLTCOMPILE__EOF__ - fi - - cat <<'__DOLTCOMPILE__EOF__' >>doltcompile -} > "$lo" -__DOLTCOMPILE__EOF__ - -dnl Done writing out doltcompile; substitute it for libtool compilation. - chmod +x doltcompile - LTCOMPILE='$(top_builddir)/doltcompile $(COMPILE)' - LTCXXCOMPILE='$(top_builddir)/doltcompile $(CXXCOMPILE)' - -dnl automake ignores LTCOMPILE and LTCXXCOMPILE when it has separate CFLAGS for -dnl a target, so write out a libtool wrapper to handle that case. -dnl Note that doltlibtool does not handle inferred tags or option arguments -dnl without '=', because automake does not use them. - cat <<__DOLTLIBTOOL__EOF__ > doltlibtool -#!$DOLT_BASH -__DOLTLIBTOOL__EOF__ - cat <<'__DOLTLIBTOOL__EOF__' >>doltlibtool -top_builddir_slash="${0%%doltlibtool}" -: ${top_builddir_slash:=./} -args=() -modeok=false -tagok=false -for arg in "$[]@"; do - case "$arg" in - --silent) ;; - --mode=compile) modeok=true ;; - --tag=CC|--tag=CXX) tagok=true ;; - *) args@<:@${#args[@]}@:>@="$arg" ;; - esac -done -if $modeok && $tagok ; then - . ${top_builddir_slash}doltcompile "${args@<:@@@:>@}" -else - exec ${top_builddir_slash}libtool "$[]@" -fi -__DOLTLIBTOOL__EOF__ - -dnl Done writing out doltlibtool; substitute it for libtool. - chmod +x doltlibtool - LIBTOOL='$(top_builddir)/doltlibtool' -fi -AC_SUBST(LTCOMPILE) -AC_SUBST(LTCXXCOMPILE) -# end dolt -]) From 533faf7f43cb4b5155a74d78d6144b702e227efa Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Fri, 1 Oct 2010 10:57:48 -0700 Subject: [PATCH 111/125] Bump version to 1.9.99.1 (1.10 development series) Make the 1.10 development series distinguishable from the 1.9 branch. Signed-off-by: Keith Packard --- configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 479f54fe8..c0bf98f30 100644 --- a/configure.ac +++ b/configure.ac @@ -26,8 +26,8 @@ dnl dnl Process this file with autoconf to create configure. AC_PREREQ(2.57) -AC_INIT([xorg-server], 1.9.0, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server) -RELEASE_DATE="2010-08-20" +AC_INIT([xorg-server], 1.9.99.1, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server) +RELEASE_DATE="2010-10-01" AC_CONFIG_SRCDIR([Makefile.am]) AM_INIT_AUTOMAKE([foreign dist-bzip2]) AM_MAINTAINER_MODE From 9a893fe52f1bfd415e9ffd9d2f5aff5c4da7a756 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Sun, 3 Oct 2010 16:56:03 +0100 Subject: [PATCH 112/125] xfree86: Do not call dlclose(NULL) [regression after ab7f057] During unwind following an error when attempting to a load a module, we attempt to call dlclose on a potentially NULL handle. This is a side-effect of removing the abstraction layer in ab7f057. Signed-off-by: Chris Wilson Cc: Adam Jackson Reviewed-by: Adam Jackson Signed-off-by: Keith Packard --- hw/xfree86/loader/loader.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/xfree86/loader/loader.c b/hw/xfree86/loader/loader.c index 89218312a..694c1c2b0 100644 --- a/hw/xfree86/loader/loader.c +++ b/hw/xfree86/loader/loader.c @@ -184,7 +184,8 @@ void LoaderUnload(const char *name, void *handle) { xf86Msg(X_INFO, "Unloading %s\n", name); - dlclose(handle); + if (handle) + dlclose(handle); } unsigned long LoaderOptions = 0; From b2f9ce201cc2a14d5d6ad055b46c9317b040ec2e Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Tue, 27 Jul 2010 17:34:36 -0400 Subject: [PATCH 113/125] edid: Fix the HDTV sync pulse adjustment Simple typo, should have been adjusting the horizontal timings consistently since we're not trying to mangle vertical at all. Signed-off-by: Adam Jackson Reviewed-by: Patrick E. Kane Signed-off-by: Keith Packard --- hw/xfree86/modes/xf86EdidModes.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/xfree86/modes/xf86EdidModes.c b/hw/xfree86/modes/xf86EdidModes.c index c36774953..3d51b1d44 100644 --- a/hw/xfree86/modes/xf86EdidModes.c +++ b/hw/xfree86/modes/xf86EdidModes.c @@ -484,8 +484,8 @@ DDCModesFromStandardTiming(struct std_timings *timing, ddc_quirk_t quirks, (hsize == 1368 && vsize == 769))) { Mode = xf86CVTMode(1366, 768, 60, FALSE, FALSE); Mode->HDisplay = 1366; - Mode->VSyncStart--; - Mode->VSyncEnd--; + Mode->HSyncStart--; + Mode->HSyncEnd--; } else if (hsize && vsize && refresh) { Mode = FindDMTMode(hsize, vsize, refresh, rb); From 853d7ebfa3e2d281d92890a39010ff5787a00ffd Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Tue, 5 Oct 2010 11:24:28 -0400 Subject: [PATCH 114/125] vbe: Fix copying the mode info block MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Just use memcpy, seriously. Reviewed-by: Rémi Cardona Signed-off-by: Adam Jackson Signed-off-by: Keith Packard --- hw/xfree86/vbe/vbe.c | 66 ++------------------------------------------ 1 file changed, 3 insertions(+), 63 deletions(-) diff --git a/hw/xfree86/vbe/vbe.c b/hw/xfree86/vbe/vbe.c index 0b34648e1..7a64a4a71 100644 --- a/hw/xfree86/vbe/vbe.c +++ b/hw/xfree86/vbe/vbe.c @@ -527,69 +527,9 @@ VBEGetModeInfo(vbeInfoPtr pVbe, int mode) if (R16(pVbe->pInt10->ax) != 0x4f) return NULL; - block = calloc(sizeof(VbeModeInfoBlock), 1); - - block->ModeAttributes = *(CARD16*)pVbe->memory; - block->WinAAttributes = ((char*)pVbe->memory)[2]; - block->WinBAttributes = ((char*)pVbe->memory)[3]; - block->WinGranularity = *(CARD16*)(((char*)pVbe->memory) + 4); - block->WinSize = *(CARD16*)(((char*)pVbe->memory) + 6); - block->WinASegment = *(CARD16*)(((char*)pVbe->memory) + 8); - block->WinBSegment = *(CARD16*)(((char*)pVbe->memory) + 10); - block->WinFuncPtr = *(CARD32*)(((char*)pVbe->memory) + 12); - block->BytesPerScanline = *(CARD16*)(((char*)pVbe->memory) + 16); - - /* mandatory information for VBE 1.2 and above */ - block->XResolution = *(CARD16*)(((char*)pVbe->memory) + 18); - block->YResolution = *(CARD16*)(((char*)pVbe->memory) + 20); - block->XCharSize = ((char*)pVbe->memory)[22]; - block->YCharSize = ((char*)pVbe->memory)[23]; - block->NumberOfPlanes = ((char*)pVbe->memory)[24]; - block->BitsPerPixel = ((char*)pVbe->memory)[25]; - block->NumberOfBanks = ((char*)pVbe->memory)[26]; - block->MemoryModel = ((char*)pVbe->memory)[27]; - block->BankSize = ((char*)pVbe->memory)[28]; - block->NumberOfImages = ((char*)pVbe->memory)[29]; - block->Reserved = ((char*)pVbe->memory)[30]; - - /* Direct color fields (required for direct/6 and YUV/7 memory models) */ - block->RedMaskSize = ((char*)pVbe->memory)[31]; - block->RedFieldPosition = ((char*)pVbe->memory)[32]; - block->GreenMaskSize = ((char*)pVbe->memory)[33]; - block->GreenFieldPosition = ((char*)pVbe->memory)[34]; - block->BlueMaskSize = ((char*)pVbe->memory)[35]; - block->BlueFieldPosition = ((char*)pVbe->memory)[36]; - block->RsvdMaskSize = ((char*)pVbe->memory)[37]; - block->RsvdFieldPosition = ((char*)pVbe->memory)[38]; - block->DirectColorModeInfo = ((char*)pVbe->memory)[39]; - - /* Mandatory information for VBE 2.0 and above */ - if (pVbe->version >= 0x200) { - block->PhysBasePtr = *(CARD32*)(((char*)pVbe->memory) + 40); - block->Reserved32 = *(CARD32*)(((char*)pVbe->memory) + 44); - block->Reserved16 = *(CARD16*)(((char*)pVbe->memory) + 48); - - /* Mandatory information for VBE 3.0 and above */ - if (pVbe->version >= 0x300) { - block->LinBytesPerScanLine = *(CARD16*)(((char*)pVbe->memory) + 50); - block->BnkNumberOfImagePages = ((char*)pVbe->memory)[52]; - block->LinNumberOfImagePages = ((char*)pVbe->memory)[53]; - block->LinRedMaskSize = ((char*)pVbe->memory)[54]; - block->LinRedFieldPosition = ((char*)pVbe->memory)[55]; - block->LinGreenMaskSize = ((char*)pVbe->memory)[56]; - block->LinGreenFieldPosition = ((char*)pVbe->memory)[57]; - block->LinBlueMaskSize = ((char*)pVbe->memory)[58]; - block->LinBlueFieldPosition = ((char*)pVbe->memory)[59]; - block->LinRsvdMaskSize = ((char*)pVbe->memory)[60]; - block->LinRsvdFieldPosition = ((char*)pVbe->memory)[61]; - block->MaxPixelClock = *(CARD32*)(((char*)pVbe->memory) + 62); - memcpy(&block->Reserved2, ((char*)pVbe->memory) + 66, 188); - } - else - memcpy(&block->LinBytesPerScanLine, ((char*)pVbe->memory) + 50, 206); - } - else - memcpy(&block->PhysBasePtr, ((char*)pVbe->memory) + 40, 216); + block = malloc(sizeof(VbeModeInfoBlock)); + if (block) + memcpy(block, pVbe->memory, sizeof(*block)); return block; } From c360b3eb1deeac51913e7b1286b2767711c541fc Mon Sep 17 00:00:00 2001 From: Jamey Sharp Date: Tue, 3 Aug 2010 19:40:26 -0700 Subject: [PATCH 115/125] Let CheckPassiveGrabsOnWindow callers check if device is already grabbed. CheckDeviceGrabs checked all the ancestors of the window containing this device's pointer even if no new grabs could possibly apply due to the device already being grabbed. ActivateFocusInGrab and ActivateEnterGrab already checked whether they should break an existing grab, and then set up an event that was completely ignored if they didn't actually break the grab. In both cases, just do what we would have done eventually anyway--return FALSE from CheckPassiveGrabsOnWindow's caller--but do it sooner. Signed-off-by: Jamey Sharp Reviewed-by: Peter Hutterer Signed-off-by: Peter Hutterer --- dix/events.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/dix/events.c b/dix/events.c index 07f7b1f6b..e03e58c02 100644 --- a/dix/events.c +++ b/dix/events.c @@ -2648,11 +2648,11 @@ ActivateFocusInGrab(DeviceIntPtr dev, WindowPtr old, WindowPtr win) BOOL rc = FALSE; DeviceEvent event; - if (dev->deviceGrab.grab && - dev->deviceGrab.fromPassiveGrab && - dev->deviceGrab.grab->type == XI_Enter) + if (dev->deviceGrab.grab) { - if (dev->deviceGrab.grab->window == win || + if (!dev->deviceGrab.fromPassiveGrab || + dev->deviceGrab.grab->type != XI_Enter || + dev->deviceGrab.grab->window == win || IsParent(dev->deviceGrab.grab->window, win)) return FALSE; DoEnterLeaveEvents(dev, dev->id, old, win, XINotifyPassiveUngrab); @@ -2688,11 +2688,11 @@ ActivateEnterGrab(DeviceIntPtr dev, WindowPtr old, WindowPtr win) BOOL rc = FALSE; DeviceEvent event; - if (dev->deviceGrab.grab && - dev->deviceGrab.fromPassiveGrab && - dev->deviceGrab.grab->type == XI_Enter) + if (dev->deviceGrab.grab) { - if (dev->deviceGrab.grab->window == win || + if (!dev->deviceGrab.fromPassiveGrab || + dev->deviceGrab.grab->type != XI_Enter || + dev->deviceGrab.grab->window == win || IsParent(dev->deviceGrab.grab->window, win)) return FALSE; DoEnterLeaveEvents(dev, dev->id, old, win, XINotifyPassiveUngrab); @@ -3403,9 +3403,6 @@ CheckPassiveGrabsOnWindow( #define XI2_MATCH 0x4 int match = 0; - if (device->deviceGrab.grab) - return FALSE; - if (!grab) return FALSE; /* Fill out the grab details, but leave the type for later before @@ -3629,6 +3626,9 @@ CheckDeviceGrabs(DeviceIntPtr device, DeviceEvent *event, int checkFirst) && (device->button->buttonsDown != 1)) return FALSE; + if (device->deviceGrab.grab) + return FALSE; + i = checkFirst; if (focus) From 1c1811ecafc144151630b3588394e2c345c53aa4 Mon Sep 17 00:00:00 2001 From: Jamey Sharp Date: Tue, 3 Aug 2010 19:49:59 -0700 Subject: [PATCH 116/125] CheckDeviceGrabs: Delete redundant pWin->optional test. CheckPassiveGrabsOnWindow returns FALSE if pWin->optional is NULL, because wPassiveGrabs uses wUseDefault, so don't bother checking at the caller. Signed-off-by: Jamey Sharp Reviewed-by: Peter Hutterer Signed-off-by: Peter Hutterer --- dix/events.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/dix/events.c b/dix/events.c index e03e58c02..51a04d526 100644 --- a/dix/events.c +++ b/dix/events.c @@ -3636,8 +3636,7 @@ CheckDeviceGrabs(DeviceIntPtr device, DeviceEvent *event, int checkFirst) for (; i < focus->traceGood; i++) { pWin = focus->trace[i]; - if (pWin->optional && - CheckPassiveGrabsOnWindow(pWin, device, event, sendCore)) + if (CheckPassiveGrabsOnWindow(pWin, device, event, sendCore)) return TRUE; } @@ -3651,8 +3650,7 @@ CheckDeviceGrabs(DeviceIntPtr device, DeviceEvent *event, int checkFirst) for (; i < device->spriteInfo->sprite->spriteTraceGood; i++) { pWin = device->spriteInfo->sprite->spriteTrace[i]; - if (pWin->optional && - CheckPassiveGrabsOnWindow(pWin, device, event, sendCore)) + if (CheckPassiveGrabsOnWindow(pWin, device, event, sendCore)) return TRUE; } From 32de0c19075b886c2fc03f6ad73d9c15df1b2309 Mon Sep 17 00:00:00 2001 From: Jamey Sharp Date: Wed, 4 Aug 2010 11:44:05 -0700 Subject: [PATCH 117/125] Move replay-window check from ComputeFreezes to CheckDeviceGrabs. This just simplifies ComputeFreezes, eliminating some duplicated code and a goto. Signed-off-by: Jamey Sharp Reviewed-by: Peter Hutterer Signed-off-by: Peter Hutterer --- dix/events.c | 46 +++++++++++++++++++--------------------------- include/dix.h | 2 +- 2 files changed, 20 insertions(+), 28 deletions(-) diff --git a/dix/events.c b/dix/events.c index 51a04d526..01cec7bca 100644 --- a/dix/events.c +++ b/dix/events.c @@ -1276,7 +1276,6 @@ static void ComputeFreezes(void) { DeviceIntPtr replayDev = syncEvents.replayDev; - int i; WindowPtr w; GrabPtr grab; DeviceIntPtr dev; @@ -1294,29 +1293,15 @@ ComputeFreezes(void) syncEvents.replayDev = (DeviceIntPtr)NULL; w = XYToWindow(replayDev, event->root_x, event->root_y); - for (i = 0; i < replayDev->spriteInfo->sprite->spriteTraceGood; i++) - { - if (syncEvents.replayWin == - replayDev->spriteInfo->sprite->spriteTrace[i]) - { - if (!CheckDeviceGrabs(replayDev, event, i+1)) { - if (replayDev->focus && !IsPointerEvent((InternalEvent*)event)) - DeliverFocusedEvent(replayDev, (InternalEvent*)event, w); - else - DeliverDeviceEvents(w, (InternalEvent*)event, NullGrab, - NullWindow, replayDev); - } - goto playmore; - } - } - /* must not still be in the same stack */ - if (replayDev->focus && !IsPointerEvent((InternalEvent*)event)) - DeliverFocusedEvent(replayDev, (InternalEvent*)event, w); - else - DeliverDeviceEvents(w, (InternalEvent*)event, NullGrab, - NullWindow, replayDev); + if (!CheckDeviceGrabs(replayDev, event, syncEvents.replayWin)) + { + if (replayDev->focus && !IsPointerEvent((InternalEvent*)event)) + DeliverFocusedEvent(replayDev, (InternalEvent*)event, w); + else + DeliverDeviceEvents(w, (InternalEvent*)event, NullGrab, + NullWindow, replayDev); + } } -playmore: for (dev = inputInfo.devices; dev; dev = dev->next) { if (!dev->deviceGrab.sync.frozen) @@ -3611,7 +3596,7 @@ CheckPassiveGrabsOnWindow( */ Bool -CheckDeviceGrabs(DeviceIntPtr device, DeviceEvent *event, int checkFirst) +CheckDeviceGrabs(DeviceIntPtr device, DeviceEvent *event, WindowPtr ancestor) { int i; WindowPtr pWin = NULL; @@ -3629,7 +3614,15 @@ CheckDeviceGrabs(DeviceIntPtr device, DeviceEvent *event, int checkFirst) if (device->deviceGrab.grab) return FALSE; - i = checkFirst; + i = 0; + if (ancestor) + { + while (i < device->spriteInfo->sprite->spriteTraceGood) + if (device->spriteInfo->sprite->spriteTrace[i++] == ancestor) + break; + if (i == device->spriteInfo->sprite->spriteTraceGood) + return FALSE; + } if (focus) { @@ -3642,8 +3635,7 @@ CheckDeviceGrabs(DeviceIntPtr device, DeviceEvent *event, int checkFirst) if ((focus->win == NoneWin) || (i >= device->spriteInfo->sprite->spriteTraceGood) || - ((i > checkFirst) && - (pWin != device->spriteInfo->sprite->spriteTrace[i-1]))) + (pWin && pWin != device->spriteInfo->sprite->spriteTrace[i-1])) return FALSE; } diff --git a/include/dix.h b/include/dix.h index a282a080f..7485e8ed4 100644 --- a/include/dix.h +++ b/include/dix.h @@ -401,7 +401,7 @@ extern _X_EXPORT void WindowHasNewCursor( extern Bool CheckDeviceGrabs( DeviceIntPtr /* device */, DeviceEvent* /* event */, - int /* checkFirst */); + WindowPtr /* ancestor */); extern void DeliverFocusedEvent( DeviceIntPtr /* keybd */, From 8efa3623f32939ef525926b57fd533f4c01ec4b3 Mon Sep 17 00:00:00 2001 From: Jamey Sharp Date: Wed, 4 Aug 2010 13:48:33 -0700 Subject: [PATCH 118/125] Use GetCurrentRootWindow or equivalent instead of spriteTrace[0]. Signed-off-by: Jamey Sharp Reviewed-by: Peter Hutterer Signed-off-by: Peter Hutterer --- dix/devices.c | 2 +- dix/enterleave.c | 13 ++++--------- dix/events.c | 2 +- 3 files changed, 6 insertions(+), 11 deletions(-) diff --git a/dix/devices.c b/dix/devices.c index e506f6ac1..7a7bbdf79 100644 --- a/dix/devices.c +++ b/dix/devices.c @@ -2430,7 +2430,7 @@ AttachDevice(ClientPtr client, DeviceIntPtr dev, DeviceIntPtr master) WindowPtr currentRoot; if (dev->spriteInfo->sprite) - currentRoot = dev->spriteInfo->sprite->spriteTrace[0]; + currentRoot = GetCurrentRootWindow(dev); else /* new device auto-set to floating */ currentRoot = screenInfo.screens[0]->root; diff --git a/dix/enterleave.c b/dix/enterleave.c index 7a3ecf5b0..b1ee3fb32 100644 --- a/dix/enterleave.c +++ b/dix/enterleave.c @@ -1251,11 +1251,6 @@ CoreFocusEvents(DeviceIntPtr dev, SetFocusIn(dev, to); } -/** - * The root window the given device is currently on. - */ -#define RootWindow(dev) dev->spriteInfo->sprite->spriteTrace[0] - static void DeviceFocusEvents(DeviceIntPtr dev, WindowPtr from, @@ -1284,7 +1279,7 @@ DeviceFocusEvents(DeviceIntPtr dev, if ((from == NullWindow) || (from == PointerRootWin)) { if (from == PointerRootWin) - DeviceFocusOutEvents(dev, sprite->win, RootWindow(dev), mode, + DeviceFocusOutEvents(dev, sprite->win, GetCurrentRootWindow(dev), mode, NotifyPointer); /* Notify all the roots */ for (i = 0; i < nscreens; i++) @@ -1304,19 +1299,19 @@ DeviceFocusEvents(DeviceIntPtr dev, for (i = 0; i < nscreens; i++) DeviceFocusEvent(dev, XI_FocusIn, mode, in, screenInfo.screens[i]->root); if (to == PointerRootWin) - DeviceFocusInEvents(dev, RootWindow(dev), sprite->win, mode, NotifyPointer); + DeviceFocusInEvents(dev, GetCurrentRootWindow(dev), sprite->win, mode, NotifyPointer); } else { if ((from == NullWindow) || (from == PointerRootWin)) { if (from == PointerRootWin) - DeviceFocusOutEvents(dev, sprite->win, RootWindow(dev), mode, + DeviceFocusOutEvents(dev, sprite->win, GetCurrentRootWindow(dev), mode, NotifyPointer); for (i = 0; i < nscreens; i++) DeviceFocusEvent(dev, XI_FocusOut, mode, out, screenInfo.screens[i]->root); if (to->parent != NullWindow) - DeviceFocusInEvents(dev, RootWindow(dev), to, mode, NotifyNonlinearVirtual); + DeviceFocusInEvents(dev, GetCurrentRootWindow(dev), to, mode, NotifyNonlinearVirtual); DeviceFocusEvent(dev, XI_FocusIn, mode, NotifyNonlinear, to); if (IsParent(to, sprite->win)) DeviceFocusInEvents(dev, to, sprite->win, mode, NotifyPointer); diff --git a/dix/events.c b/dix/events.c index 01cec7bca..e8cf8d417 100644 --- a/dix/events.c +++ b/dix/events.c @@ -5055,7 +5055,7 @@ ProcSendEvent(ClientPtr client) /* If the input focus is PointerRootWin, send the event to where the pointer is if possible, then perhaps propogate up to root. */ if (inputFocus == PointerRootWin) - inputFocus = pSprite->spriteTrace[0]; /* Root window! */ + inputFocus = RootWindow(dev); if (IsParent(inputFocus, pSprite->win)) { From 1333e101b4f6ecca72568b7f462884f8b102a5c2 Mon Sep 17 00:00:00 2001 From: Alan Coopersmith Date: Thu, 7 Oct 2010 18:17:02 -0700 Subject: [PATCH 119/125] Remove leftover fbSaveAreas & fbRestoreAreas defines from wfbrename.h The fb functions they try to rename were deleted in 2007 by commit ae7f71a8b3d6756161e55d998d6eec37d2695c98 Signed-off-by: Alan Coopersmith Reviewed-by: Matt Turner Reviewed-by: Jeremy Huddleston Tested-by: Jeremy Huddleston Signed-off-by: Keith Packard --- fb/wfbrename.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/fb/wfbrename.h b/fb/wfbrename.h index 433f286e0..c8e98c85c 100644 --- a/fb/wfbrename.h +++ b/fb/wfbrename.h @@ -155,8 +155,6 @@ #define fbReduceRasterOp wfbReduceRasterOp #define fbReplicatePixel wfbReplicatePixel #define fbResolveColor wfbResolveColor -#define fbRestoreAreas wfbRestoreAreas -#define fbSaveAreas wfbSaveAreas #define fbScreenPrivateKeyRec wfbScreenPrivateKeyRec #define fbSegment wfbSegment #define fbSelectBres wfbSelectBres From febf3e7ead8dbb355622c896ff1744b2ca52a49a Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Mon, 11 Oct 2010 10:49:56 -0400 Subject: [PATCH 120/125] dix: Remove the memory of the multibuffer extension Drop DRAWABLE_BUFFER and related checks, mbuf was the only thing that used them and it was killed in 0ba82562. Signed-off-by: Adam Jackson Reviewed-by: Keith Packard Reviewed-by: Jon TURNEY Signed-off-by: Keith Packard --- dix/dispatch.c | 13 ++----------- hw/xwin/winfillsp.c | 5 ----- hw/xwin/wingetsp.c | 4 ---- hw/xwin/winsetsp.c | 4 ---- include/pixmap.h | 6 ++---- 5 files changed, 4 insertions(+), 28 deletions(-) diff --git a/dix/dispatch.c b/dix/dispatch.c index 17f308cf5..35e7ddd99 100644 --- a/dix/dispatch.c +++ b/dix/dispatch.c @@ -916,23 +916,14 @@ GetGeometry(ClientPtr client, xGetGeometryReply *rep) rep->width = pDraw->width; rep->height = pDraw->height; - /* XXX - Because the pixmap-implementation of the multibuffer extension - * may have the buffer-id's drawable resource value be a pointer - * to the buffer's window instead of the buffer itself - * (this happens if the buffer is the displayed buffer), - * we also have to check that the id matches before we can - * truly say that it is a DRAWABLE_WINDOW. - */ - - if ((pDraw->type == UNDRAWABLE_WINDOW) || - ((pDraw->type == DRAWABLE_WINDOW) && (stuff->id == pDraw->id))) + if (WindowDrawable(pDraw)) { WindowPtr pWin = (WindowPtr)pDraw; rep->x = pWin->origin.x - wBorderWidth (pWin); rep->y = pWin->origin.y - wBorderWidth (pWin); rep->borderWidth = pWin->borderWidth; } - else /* DRAWABLE_PIXMAP or DRAWABLE_BUFFER */ + else /* DRAWABLE_PIXMAP */ { rep->x = rep->y = rep->borderWidth = 0; } diff --git a/hw/xwin/winfillsp.c b/hw/xwin/winfillsp.c index 1e8e3e6f1..00fd77a91 100644 --- a/hw/xwin/winfillsp.c +++ b/hw/xwin/winfillsp.c @@ -854,11 +854,6 @@ winFillSpansNativeGDI (DrawablePtr pDrawable, } break; - case DRAWABLE_BUFFER: - /* DRAWABLE_BUFFER seems to be undocumented. */ - ErrorF ("winFillSpans - DRAWABLE_BUFFER - Unimplemented\n"); - break; - default: ErrorF ("winFillSpans - Unknown drawable type\n"); break; diff --git a/hw/xwin/wingetsp.c b/hw/xwin/wingetsp.c index 03f7f1012..db914c938 100644 --- a/hw/xwin/wingetsp.c +++ b/hw/xwin/wingetsp.c @@ -181,10 +181,6 @@ winGetSpansNativeGDI (DrawablePtr pDrawable, FatalError ("winGetSpans - UNDRAWABLE_WINDOW\n"); break; - case DRAWABLE_BUFFER: - FatalError ("winGetSpans - DRAWABLE_BUFFER\n"); - break; - default: FatalError ("winGetSpans - Unknown drawable type\n"); break; diff --git a/hw/xwin/winsetsp.c b/hw/xwin/winsetsp.c index d1bf90b57..6a90781cf 100644 --- a/hw/xwin/winsetsp.c +++ b/hw/xwin/winsetsp.c @@ -175,10 +175,6 @@ winSetSpansNativeGDI (DrawablePtr pDrawable, FatalError ("\nwinSetSpansNativeGDI - UNDRAWABLE_WINDOW\n\n"); break; - case DRAWABLE_BUFFER: - FatalError ("\nwinSetSpansNativeGDI - DRAWABLE_BUFFER\n\n"); - break; - default: FatalError ("\nwinSetSpansNativeGDI - Unknown drawable type\n\n"); break; diff --git a/include/pixmap.h b/include/pixmap.h index 5cf42d1fb..014a11183 100644 --- a/include/pixmap.h +++ b/include/pixmap.h @@ -55,16 +55,14 @@ SOFTWARE. #define DRAWABLE_WINDOW 0 #define DRAWABLE_PIXMAP 1 #define UNDRAWABLE_WINDOW 2 -#define DRAWABLE_BUFFER 3 /* corresponding type masks for dixLookupDrawable() */ #define M_DRAWABLE_WINDOW (1<<0) #define M_DRAWABLE_PIXMAP (1<<1) #define M_UNDRAWABLE_WINDOW (1<<2) -#define M_DRAWABLE_BUFFER (1<<3) #define M_ANY (-1) #define M_WINDOW (M_DRAWABLE_WINDOW|M_UNDRAWABLE_WINDOW) -#define M_DRAWABLE (M_DRAWABLE_WINDOW|M_DRAWABLE_PIXMAP|M_DRAWABLE_BUFFER) +#define M_DRAWABLE (M_DRAWABLE_WINDOW|M_DRAWABLE_PIXMAP) #define M_UNDRAWABLE (M_UNDRAWABLE_WINDOW) /* flags to PaintWindow() */ @@ -88,7 +86,7 @@ typedef union _PixUnion { ((as) == (bs) && (SamePixUnion (a, b, as))) #define OnScreenDrawable(type) \ - ((type == DRAWABLE_WINDOW) || (type == DRAWABLE_BUFFER)) + (type == DRAWABLE_WINDOW) #define WindowDrawable(type) \ ((type == DRAWABLE_WINDOW) || (type == UNDRAWABLE_WINDOW)) From e418cd332c1f458d028df3fdf684011109d0c183 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Mon, 11 Oct 2010 10:49:57 -0400 Subject: [PATCH 121/125] xwin: Remove some undue paranoia about UNDRAWABLE_WINDOW mi will throw away rendering to input-only windows. Signed-off-by: Adam Jackson Reviewed-by: Jon TURNEY Signed-off-by: Keith Packard --- hw/xwin/winfillsp.c | 30 ------------------------------ hw/xwin/wingetsp.c | 4 ---- hw/xwin/winsetsp.c | 4 ---- 3 files changed, 38 deletions(-) diff --git a/hw/xwin/winfillsp.c b/hw/xwin/winfillsp.c index 00fd77a91..80f53155d 100644 --- a/hw/xwin/winfillsp.c +++ b/hw/xwin/winfillsp.c @@ -824,36 +824,6 @@ winFillSpansNativeGDI (DrawablePtr pDrawable, SelectClipRgn (pGCPriv->hdc, NULL); break; - case UNDRAWABLE_WINDOW: - /* UNDRAWABLE_WINDOW doesn't appear to get called when running xterm */ - switch (pGC->fillStyle) - { - case FillSolid: - ErrorF ("winFillSpans - UNDRAWABLE_WINDOW - FillSolid - " - "Unimplemented\n"); - break; - - case FillStippled: - ErrorF ("winFillSpans - UNDRAWABLE_WINDOW - FillStippled - " - "Unimplemented\n"); - break; - - case FillTiled: - ErrorF ("winFillSpans - UNDRAWABLE_WINDOW - FillTiled - " - "Unimplemented\n"); - break; - - case FillOpaqueStippled: - ErrorF ("winFillSpans - UNDRAWABLE_WINDOW - OpaqueStippled - " - "Unimplemented\n"); - break; - - default: - ErrorF ("winFillSpans - UNDRAWABLE_WINDOW - Unknown fillStyle\n"); - break; - } - break; - default: ErrorF ("winFillSpans - Unknown drawable type\n"); break; diff --git a/hw/xwin/wingetsp.c b/hw/xwin/wingetsp.c index db914c938..82208127b 100644 --- a/hw/xwin/wingetsp.c +++ b/hw/xwin/wingetsp.c @@ -177,10 +177,6 @@ winGetSpansNativeGDI (DrawablePtr pDrawable, DeleteDC (hdcMem); break; - case UNDRAWABLE_WINDOW: - FatalError ("winGetSpans - UNDRAWABLE_WINDOW\n"); - break; - default: FatalError ("winGetSpans - Unknown drawable type\n"); break; diff --git a/hw/xwin/winsetsp.c b/hw/xwin/winsetsp.c index 6a90781cf..e5d33bee4 100644 --- a/hw/xwin/winsetsp.c +++ b/hw/xwin/winsetsp.c @@ -171,10 +171,6 @@ winSetSpansNativeGDI (DrawablePtr pDrawable, SelectClipRgn (pGCPriv->hdc, NULL); break; - case UNDRAWABLE_WINDOW: - FatalError ("\nwinSetSpansNativeGDI - UNDRAWABLE_WINDOW\n\n"); - break; - default: FatalError ("\nwinSetSpansNativeGDI - Unknown drawable type\n\n"); break; From 6274dca9d984ad3c553b4901edc3151e770e6c40 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Mon, 11 Oct 2010 16:37:16 -0400 Subject: [PATCH 122/125] dix: optimize CallCallbacks Move the basic sanity checking to an inline wrapper, which avoids the function call overhead if the callback list is empty. On an XACEful server on a 2.4GHz Core 2 Duo: 1 2 Operation -------- ----------------- ----------------- 20000000.0 25100000.0 ( 1.25) X protocol NoOperation Signed-off-by: Adam Jackson Reviewed-by: Keith Packard Signed-off-by: Keith Packard --- dix/dixutils.c | 9 +-------- include/callback.h | 9 ++++++++- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/dix/dixutils.c b/dix/dixutils.c index 470bb5dd7..104363b72 100644 --- a/dix/dixutils.c +++ b/dix/dixutils.c @@ -729,7 +729,7 @@ _DeleteCallback( return FALSE; } -static void +void _CallCallbacks( CallbackListPtr *pcbl, pointer call_data) @@ -870,13 +870,6 @@ DeleteCallback(CallbackListPtr *pcbl, CallbackProcPtr callback, pointer data) return _DeleteCallback(pcbl, callback, data); } -void -CallCallbacks(CallbackListPtr *pcbl, pointer call_data) -{ - if (!pcbl || !*pcbl) return; - _CallCallbacks(pcbl, call_data); -} - void DeleteCallbackList(CallbackListPtr *pcbl) { diff --git a/include/callback.h b/include/callback.h index 632ed4f32..9a1da73e8 100644 --- a/include/callback.h +++ b/include/callback.h @@ -75,10 +75,17 @@ extern _X_EXPORT Bool DeleteCallback( CallbackProcPtr /*callback*/, pointer /*data*/); -extern _X_EXPORT void CallCallbacks( +extern _X_EXPORT void _CallCallbacks( CallbackListPtr * /*pcbl*/, pointer /*call_data*/); +static inline void +CallCallbacks(CallbackListPtr *pcbl, pointer call_data) +{ + if (!pcbl || !*pcbl) return; + _CallCallbacks(pcbl, call_data); +} + extern _X_EXPORT void DeleteCallbackList( CallbackListPtr * /*pcbl*/); From da4eebe58ec81e2297cc1773af1fb622fb392bbd Mon Sep 17 00:00:00 2001 From: Jon TURNEY Date: Wed, 13 Oct 2010 17:34:31 +0100 Subject: [PATCH 123/125] event_size is currently never assigned to in mieqProcessInputEvents(). event_size is never assigned to in mieqProcessInputEvents(), so realloc() is always called. This is benign, but I'm guessing not intended. Signed-off-by: Jon TURNEY Reviewed-by: Keith Packard Signed-off-by: Keith Packard --- mi/mieq.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mi/mieq.c b/mi/mieq.c index fa60b405b..d1441e285 100644 --- a/mi/mieq.c +++ b/mi/mieq.c @@ -439,7 +439,11 @@ mieqProcessInputEvents(void) evlen = e->events->evlen; if(evlen > event_size) + { event = realloc(event, evlen); + event_size = evlen; + } + if (!event) FatalError("[mi] No memory left for event processing.\n"); From ff82f724e4ed24d73f15fa9c35a1d0c2c7d8cef7 Mon Sep 17 00:00:00 2001 From: Colin Harrison Date: Wed, 13 Oct 2010 10:20:06 -0700 Subject: [PATCH 124/125] Comparison between pointer and integer in latest dix/dispatch.c Signed-off-by: Keith Packard --- dix/dispatch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dix/dispatch.c b/dix/dispatch.c index 35e7ddd99..b66861f78 100644 --- a/dix/dispatch.c +++ b/dix/dispatch.c @@ -916,7 +916,7 @@ GetGeometry(ClientPtr client, xGetGeometryReply *rep) rep->width = pDraw->width; rep->height = pDraw->height; - if (WindowDrawable(pDraw)) + if (WindowDrawable(pDraw->type)) { WindowPtr pWin = (WindowPtr)pDraw; rep->x = pWin->origin.x - wBorderWidth (pWin); From 23229c7ce5970516b97a1cc12e65257ff65ab9a7 Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Wed, 13 Oct 2010 16:28:14 -0700 Subject: [PATCH 125/125] test: Fix make distcheck when not building unit tests Signed-off-by: Jeremy Huddleston Reviewed-by: Peter Hutterer Signed-off-by: Keith Packard --- test/Makefile.am | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/Makefile.am b/test/Makefile.am index 7c4467161..456221e46 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -33,10 +33,9 @@ libxservertest_la_LIBADD = \ $(top_builddir)/mi/libmi.la \ $(top_builddir)/os/libos.la \ @XORG_LIBS@ +endif CLEANFILES=libxservertest.c libxservertest.c: touch $@ - -endif