diff options
Diffstat (limited to 'hw')
-rw-r--r-- | hw/darwin/bundle/English.lproj/Credits.rtf | 20 | ||||
-rw-r--r-- | hw/darwin/darwin.c | 6 | ||||
-rw-r--r-- | hw/darwin/quartz/XServer.h | 5 | ||||
-rw-r--r-- | hw/darwin/quartz/XServer.m | 48 | ||||
-rw-r--r-- | hw/darwin/quartz/cr/crFrame.m | 4 | ||||
-rw-r--r-- | hw/darwin/quartz/cr/crScreen.m | 3 | ||||
-rw-r--r-- | hw/darwin/quartz/fullscreen/fullscreen.c | 3 | ||||
-rw-r--r-- | hw/darwin/quartz/quartz.c | 6 | ||||
-rw-r--r-- | hw/darwin/quartz/quartz.h | 4 | ||||
-rw-r--r-- | hw/darwin/quartz/xpr/xpr.h | 3 | ||||
-rw-r--r-- | hw/darwin/quartz/xpr/xprFrame.c | 46 | ||||
-rw-r--r-- | hw/darwin/quartz/xpr/xprScreen.c | 3 | ||||
-rw-r--r-- | hw/vfb/Xvfb.man.pre | 4 | ||||
-rw-r--r-- | hw/xfree86/common/xf86Date.h | 4 | ||||
-rw-r--r-- | hw/xfree86/common/xf86Events.c | 4 | ||||
-rw-r--r-- | hw/xfree86/common/xf86Version.h | 4 | ||||
-rw-r--r-- | hw/xfree86/doc/README.fonts | 8 | ||||
-rw-r--r-- | hw/xfree86/doc/changelogs/CHANGELOG | 102 | ||||
-rw-r--r-- | hw/xfree86/loader/dixsym.c | 6 | ||||
-rw-r--r-- | hw/xfree86/loader/hash.c | 6 | ||||
-rw-r--r-- | hw/xfree86/os-support/linux/lnx_init.c | 79 | ||||
-rw-r--r-- | hw/xfree86/os-support/xf86_libc.h | 2 |
22 files changed, 285 insertions, 85 deletions
diff --git a/hw/darwin/bundle/English.lproj/Credits.rtf b/hw/darwin/bundle/English.lproj/Credits.rtf index 4e2fad42c..7d9a594e6 100644 --- a/hw/darwin/bundle/English.lproj/Credits.rtf +++ b/hw/darwin/bundle/English.lproj/Credits.rtf @@ -1,10 +1,26 @@ -{\rtf1\mac\ansicpg10000\cocoartf100 +{\rtf1\mac\ansicpg10000\cocoartf102 {\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;\f1\fswiss\fcharset77 Helvetica;\f2\fswiss\fcharset77 Helvetica-Oblique; } {\colortbl;\red255\green255\blue255;} +\vieww9000\viewh9000\viewkind0 \pard\tx1440\tx2880\tx4320\tx5760\tx7200\qc -\f0\b\fs24 \cf0 XonX Contributors to XFree86 4.2.99.x: +\f0\b\fs24 \cf0 Contributors to XFree86 4.4: +\f1\b0 \ +\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural +\cf0 John Harper\ + +\f2\i Rootless acceleration and Apple-WM extension +\f1\i0 \ +Torrey T. Lyons\ + +\f2\i Project Lead +\f1\i0 \ +\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural + +\f0\b \cf0 \ +\pard\tx1440\tx2880\tx4320\tx5760\tx7200\qc +\cf0 Additional XonX Contributors to XFree86 4.3: \f1\b0 \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural \cf0 Fabr\'92cio Luis de Castro\ diff --git a/hw/darwin/darwin.c b/hw/darwin/darwin.c index a7a0d839c..bf0975769 100644 --- a/hw/darwin/darwin.c +++ b/hw/darwin/darwin.c @@ -29,7 +29,7 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/darwin.c,v 1.55 2003/11/15 00:07:09 torrey Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/darwin.c,v 1.56 2003/11/24 05:39:01 torrey Exp $ */ #include "X.h" #include "Xproto.h" @@ -518,9 +518,7 @@ void InitInput( int argc, char **argv ) darwinKeyboard = AddInputDevice(DarwinKeybdProc, TRUE); RegisterKeyboardDevice( darwinKeyboard ); - if (serverGeneration == 1) { - DarwinEQInit( (DevicePtr)darwinKeyboard, (DevicePtr)darwinPointer ); - } + DarwinEQInit( (DevicePtr)darwinKeyboard, (DevicePtr)darwinPointer ); DarwinModeInitInput(argc, argv); } diff --git a/hw/darwin/quartz/XServer.h b/hw/darwin/quartz/XServer.h index 58c7ff748..01b8ec55e 100644 --- a/hw/darwin/quartz/XServer.h +++ b/hw/darwin/quartz/XServer.h @@ -29,7 +29,7 @@ * sale, use or other dealings in this Software without prior written * authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/XServer.h,v 1.15 2003/11/14 20:27:58 torrey Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/XServer.h,v 1.17 2003/11/24 05:39:01 torrey Exp $ */ #define BOOL xBOOL #include "Xproto.h" @@ -46,6 +46,7 @@ BOOL rootlessMenuBarVisible; BOOL queueShowServer; BOOL quitWithoutQuery; + BOOL pendingAppQuitReply; UInt32 mouseState; BOOL sendServerEvents; BOOL x11Active; @@ -90,7 +91,7 @@ - (void)sendShowHide:(BOOL)show; - (void)clientProcessDone:(int)clientStatus; - (void)activateX11:(BOOL)state; -- (void)windowBecameKey:(NSWindow *)window; +- (void)windowBecameKey:(NSNotification *)notification; - (void)setX11WindowList:(NSArray *)list; - (void)setX11WindowCheck:(NSNumber *)nn; diff --git a/hw/darwin/quartz/XServer.m b/hw/darwin/quartz/XServer.m index 1be22f82c..56e672204 100644 --- a/hw/darwin/quartz/XServer.m +++ b/hw/darwin/quartz/XServer.m @@ -34,7 +34,7 @@ * sale, use or other dealings in this Software without prior written * authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/XServer.m,v 1.17 2003/11/14 20:27:58 torrey Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/XServer.m,v 1.20 2003/11/27 01:59:53 torrey Exp $ */ #include "quartzCommon.h" @@ -126,6 +126,7 @@ static io_connect_t root_port; rootlessMenuBarVisible = YES; queueShowServer = YES; quartzServerQuitting = NO; + pendingAppQuitReply = NO; mouseState = 0; // set up a port to safely send messages to main thread from server thread @@ -141,11 +142,6 @@ static io_connect_t root_port; [[NSRunLoop currentRunLoop] addPort:signalPort forMode:NSModalPanelRunLoopMode]; - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(windowBecameKey:) - name:NSWindowDidBecomeKeyNotification - object:nil]; - return self; } @@ -191,6 +187,7 @@ static io_connect_t root_port; // At this point the X server is either running or starting. if (serverState == server_Starting) { // Quit will be queued later when server is running + pendingAppQuitReply = YES; return NSTerminateLater; } else if (serverState == server_Running) { [self quitServer]; @@ -490,6 +487,15 @@ static io_connect_t root_port; if (![self loadDisplayBundle]) [NSApp terminate:nil]; + // In rootless mode register to receive notification of key window changes + if (quartzRootless) { + [[NSNotificationCenter defaultCenter] + addObserver:self + selector:@selector(windowBecameKey:) + name:NSWindowDidBecomeKeyNotification + object:nil]; + } + // Start the X server thread serverState = server_Starting; [NSThread detachNewThreadSelector:@selector(run) toTarget:self @@ -537,7 +543,7 @@ static io_connect_t root_port; // Finish starting the X server thread // This includes anything that must be done after the X server is -// ready to process events. +// ready to process events after the first or subsequent generations. - (void)finishStartX { sendServerEvents = YES; @@ -551,7 +557,8 @@ static io_connect_t root_port; if (quartzServerQuitting) { [self quitServer]; - [NSApp replyToApplicationShouldTerminate:YES]; + if (pendingAppQuitReply) + [NSApp replyToApplicationShouldTerminate:YES]; return; } @@ -1001,21 +1008,6 @@ static io_connect_t root_port; // This field should be filled in for every event xe->u.keyButtonPointer.time = GetTimeInMillis(); -#if 0 - // FIXME: Really? - if (quartzRootless && - (ev->type == NSLeftMouseDown || ev->type == NSLeftMouseUp || - (ev->type == NSSystemDefined && ev->data.compound.subType == 7))) - { - // mouse button event - send mouseMoved to this position too - // X gets confused if it gets a click that isn't at the last - // reported mouse position. - xEvent moveEvent = *ev; - xe.u.u.type = NSMouseMoved; - [self sendXEvent:&moveEvent]; - } -#endif - DarwinEQEnqueue(xe); } @@ -1194,8 +1186,10 @@ static io_connect_t root_port; } // Some NSWindow became the key window -- (void)windowBecameKey:(NSWindow *)window +- (void)windowBecameKey:(NSNotification *)notification { + NSWindow *window = [notification object]; + if (quartzProcs->IsX11Window(window, [window windowNumber])) { if (!x11Active) [self activateX11:YES]; @@ -1322,7 +1316,8 @@ static io_connect_t root_port; QuartzMessageServerThread(kXDarwinControllerNotify, 1, AppleWMHideAll); } else { - // FIXME: We need to hide Xplugin windows here + if (quartzProcs->HideWindows) + quartzProcs->HideWindows(YES); } } @@ -1332,7 +1327,8 @@ static io_connect_t root_port; QuartzMessageServerThread(kXDarwinControllerNotify, 1, AppleWMShowAll); } else { - [NSApp arrangeInFront:nil]; + if (quartzProcs->HideWindows) + quartzProcs->HideWindows(NO); } } diff --git a/hw/darwin/quartz/cr/crFrame.m b/hw/darwin/quartz/cr/crFrame.m index e3e83ebc4..305d42aa6 100644 --- a/hw/darwin/quartz/cr/crFrame.m +++ b/hw/darwin/quartz/cr/crFrame.m @@ -27,7 +27,7 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/cr/crFrame.m,v 1.5 2003/11/13 20:26:31 torrey Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/cr/crFrame.m,v 1.7 2003/11/27 01:53:39 torrey Exp $ */ #include "quartzCommon.h" #include "cr.h" @@ -163,7 +163,7 @@ CRResizeFrame(RootlessFrameID wid, ScreenPtr pScreen, { CRWindowPtr crWinPtr = (CRWindowPtr) wid; NSRect bounds = NSMakeRect(newX, NSHeight([[NSScreen mainScreen] frame]) - - newY - newH, newW, newH); + newY - newH, newW, newH); [crWinPtr->window setFrame:bounds display:NO]; } diff --git a/hw/darwin/quartz/cr/crScreen.m b/hw/darwin/quartz/cr/crScreen.m index d259d0bac..ab27e8eb8 100644 --- a/hw/darwin/quartz/cr/crScreen.m +++ b/hw/darwin/quartz/cr/crScreen.m @@ -27,7 +27,7 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/cr/crScreen.m,v 1.5 2003/11/12 20:21:52 torrey Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/cr/crScreen.m,v 1.6 2003/11/27 01:59:53 torrey Exp $ */ #include "quartzCommon.h" #include "cr.h" @@ -300,6 +300,7 @@ static QuartzModeProcsRec crModeProcs = { NULL, // No capture or release in rootless mode NULL, CRIsX11Window, + NULL, // Cocoa NSWindows hide themselves RootlessFrameForWindow, TopLevelParent, NULL, // No support for DRI surfaces diff --git a/hw/darwin/quartz/fullscreen/fullscreen.c b/hw/darwin/quartz/fullscreen/fullscreen.c index fc390e87f..bbea46cab 100644 --- a/hw/darwin/quartz/fullscreen/fullscreen.c +++ b/hw/darwin/quartz/fullscreen/fullscreen.c @@ -25,7 +25,7 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/fullscreen/fullscreen.c,v 1.2 2003/11/12 20:21:52 torrey Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/fullscreen/fullscreen.c,v 1.3 2003/11/27 01:59:53 torrey Exp $ */ #include "quartzCommon.h" #include "darwin.h" @@ -549,6 +549,7 @@ static QuartzModeProcsRec fsModeProcs = { NULL, // No rootless code in fullscreen NULL, NULL, + NULL, NULL, // No support for DRI surfaces NULL }; diff --git a/hw/darwin/quartz/quartz.c b/hw/darwin/quartz/quartz.c index 4643886f3..91ca9fa28 100644 --- a/hw/darwin/quartz/quartz.c +++ b/hw/darwin/quartz/quartz.c @@ -29,7 +29,7 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/quartz.c,v 1.13 2003/11/12 20:21:51 torrey Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/quartz.c,v 1.14 2003/11/24 05:39:02 torrey Exp $ */ #include "quartzCommon.h" #include "quartz.h" @@ -156,9 +156,7 @@ void DarwinModeInitInput( int argc, char **argv ) { - if (serverGeneration == 1) { - QuartzMessageMainThread(kQuartzServerStarted, NULL, 0); - } + QuartzMessageMainThread(kQuartzServerStarted, NULL, 0); // Do final display mode specific initialization before handling events if (quartzProcs->InitInput) diff --git a/hw/darwin/quartz/quartz.h b/hw/darwin/quartz/quartz.h index 849e10cef..2cec61d66 100644 --- a/hw/darwin/quartz/quartz.h +++ b/hw/darwin/quartz/quartz.h @@ -30,7 +30,7 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/quartz.h,v 1.7 2003/11/12 20:21:51 torrey Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/quartz.h,v 1.8 2003/11/27 01:59:53 torrey Exp $ */ #ifndef _QUARTZ_H #define _QUARTZ_H @@ -70,6 +70,7 @@ typedef void (*ReleaseScreensProc)(void); * Rootless helper functions */ typedef Bool (*IsX11WindowProc)(void *nsWindow, int windowNumber); +typedef void (*HideWindowsProc)(Bool hide); /* * Rootless functions for optional export to GLX layer @@ -103,6 +104,7 @@ typedef struct _QuartzModeProcs { ReleaseScreensProc ReleaseScreens; // Only called in fullscreen IsX11WindowProc IsX11Window; + HideWindowsProc HideWindows; FrameForWindowProc FrameForWindow; TopLevelParentProc TopLevelParent; diff --git a/hw/darwin/quartz/xpr/xpr.h b/hw/darwin/quartz/xpr/xpr.h index 3d447b226..b3091f8e1 100644 --- a/hw/darwin/quartz/xpr/xpr.h +++ b/hw/darwin/quartz/xpr/xpr.h @@ -26,7 +26,7 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/xpr.h,v 1.4 2003/11/12 20:21:52 torrey Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/xpr.h,v 1.5 2003/11/27 01:59:53 torrey Exp $ */ #ifndef XPR_H #define XPR_H @@ -39,6 +39,7 @@ void AppleDRIExtensionInit(void); void xprAppleWMInit(void); Bool xprInit(ScreenPtr pScreen); Bool xprIsX11Window(void *nsWindow, int windowNumber); +void xprHideWindows(Bool hide); Bool QuartzInitCursor(ScreenPtr pScreen); void QuartzSuspendXCursor(ScreenPtr pScreen); diff --git a/hw/darwin/quartz/xpr/xprFrame.c b/hw/darwin/quartz/xpr/xprFrame.c index ae24bc42a..552153852 100644 --- a/hw/darwin/quartz/xpr/xprFrame.c +++ b/hw/darwin/quartz/xpr/xprFrame.c @@ -27,10 +27,10 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/xprFrame.c,v 1.4 2003/11/12 20:21:52 torrey Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/xprFrame.c,v 1.5 2003/11/27 01:59:53 torrey Exp $ */ #include "xpr.h" -#include "rootless.h" +#include "rootlessCommon.h" #include "Xplugin.h" #include "x-hash.h" #include "x-list.h" @@ -437,3 +437,45 @@ xprIsX11Window(void *nsWindow, int windowNumber) return ret; } + + +/* + * xprHideWindows + * Hide or unhide all top level windows. This is called for application hide/ + * unhide events if the window manager is not Apple-WM aware. Xplugin windows + * do not hide or unhide themselves. + */ +void +xprHideWindows(Bool hide) +{ + int screen; + WindowPtr pRoot, pWin; + + for (screen = 0; screen < screenInfo.numScreens; screen++) { + pRoot = WindowTable[screenInfo.screens[screen]->myNum]; + RootlessFrameID prevWid = NULL; + + for (pWin = pRoot->firstChild; pWin; pWin = pWin->nextSib) { + RootlessWindowRec *winRec = WINREC(pWin); + + if (winRec != NULL) { + if (hide) { + xprUnmapFrame(winRec->wid); + } else { + BoxRec box; + + xprRestackFrame(winRec->wid, prevWid); + prevWid = winRec->wid; + + box.x1 = 0; + box.y1 = 0; + box.x2 = winRec->width; + box.y2 = winRec->height; + + xprDamageRects(winRec->wid, 1, &box, 0, 0); + RootlessQueueRedisplay(screenInfo.screens[screen]); + } + } + } + } +} diff --git a/hw/darwin/quartz/xpr/xprScreen.c b/hw/darwin/quartz/xpr/xprScreen.c index 8090a27b1..771b7c9f4 100644 --- a/hw/darwin/quartz/xpr/xprScreen.c +++ b/hw/darwin/quartz/xpr/xprScreen.c @@ -27,7 +27,7 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/xprScreen.c,v 1.8 2003/11/12 20:21:52 torrey Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/xprScreen.c,v 1.9 2003/11/27 01:59:53 torrey Exp $ */ #include "quartzCommon.h" #include "quartz.h" @@ -358,6 +358,7 @@ static QuartzModeProcsRec xprModeProcs = { NULL, // No capture or release in rootless mode NULL, xprIsX11Window, + xprHideWindows, RootlessFrameForWindow, TopLevelParent, DRICreateSurface, diff --git a/hw/vfb/Xvfb.man.pre b/hw/vfb/Xvfb.man.pre index e3e255298..6bd24e9b4 100644 --- a/hw/vfb/Xvfb.man.pre +++ b/hw/vfb/Xvfb.man.pre @@ -23,7 +23,7 @@ .\" other dealings in this Software without prior written authorization .\" from The Open Group. .\" -.\" $XFree86: xc/programs/Xserver/hw/vfb/Xvfb.man,v 1.9 2001/12/14 19:59:45 dawes Exp $ +.\" $XFree86: xc/programs/Xserver/hw/vfb/Xvfb.man,v 1.10 2003/11/23 05:40:36 dawes Exp $ .\" .TH XVFB 1 __xorgversion__ .SH NAME @@ -49,7 +49,7 @@ that don't really need an X server but insist on having one anyway. .SH BUILDING To build \fIXvfb\fP, put the following in your host.def and remake. .PP -\&#define BuildServer YES /* if you aren't already building other servers */ +\&#define BuildServer YES /\(** if you aren't already building other servers */ .br \&#define XVirtualFramebufferServer YES diff --git a/hw/xfree86/common/xf86Date.h b/hw/xfree86/common/xf86Date.h index 754e20d18..bb0a565bf 100644 --- a/hw/xfree86/common/xf86Date.h +++ b/hw/xfree86/common/xf86Date.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/xf86Date.h,v 1.52 2003/11/21 06:01:44 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/xf86Date.h,v 1.53 2003/12/03 05:02:25 dawes Exp $ */ /* * Copyright (c) 2003 by The XFree86 Project, Inc. * @@ -28,6 +28,6 @@ #ifndef XF86_DATE -#define XF86_DATE "20 November 2003" +#define XF86_DATE " 2 December 2003" #endif diff --git a/hw/xfree86/common/xf86Events.c b/hw/xfree86/common/xf86Events.c index 1c3f3a34f..07dd88741 100644 --- a/hw/xfree86/common/xf86Events.c +++ b/hw/xfree86/common/xf86Events.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Events.c,v 3.158 2003/11/03 05:11:02 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Events.c,v 3.159 2003/11/22 04:22:11 dawes Exp $ */ /* * Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany. * @@ -347,7 +347,7 @@ xf86ProcessActionEvent(ActionEvent action, void *arg) } break; #if !defined(__SOL8__) && !defined(__UNIXOS2__) && !defined(sgi) && \ - (!defined(sun) || defined(i386)) + (!defined(sun) || defined(i386)) && defined(VT_ACTIVATE) case ACTION_SWITCHSCREEN: if (VTSwitchEnabled && !xf86Info.dontVTSwitch && arg) { int vtno = *((int *) arg); diff --git a/hw/xfree86/common/xf86Version.h b/hw/xfree86/common/xf86Version.h index 07253bace..d65bb76ca 100644 --- a/hw/xfree86/common/xf86Version.h +++ b/hw/xfree86/common/xf86Version.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/xf86Version.h,v 3.563 2003/11/21 06:01:44 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/xf86Version.h,v 3.565 2003/12/03 05:06:00 dawes Exp $ */ /* * Copyright (c) 1994-2003 by The XFree86 Project, Inc. @@ -32,7 +32,7 @@ #define XF86_VERSION_MAJOR 4 #define XF86_VERSION_MINOR 3 #define XF86_VERSION_PATCH 99 -#define XF86_VERSION_SNAP 16 +#define XF86_VERSION_SNAP 901 /* This has five arguments for compatibilty reasons */ #define XF86_VERSION_NUMERIC(major,minor,patch,snap,dummy) \ diff --git a/hw/xfree86/doc/README.fonts b/hw/xfree86/doc/README.fonts index 7563c1c56..230e29c78 100644 --- a/hw/xfree86/doc/README.fonts +++ b/hw/xfree86/doc/README.fonts @@ -269,8 +269,8 @@ structure should be as follows: CID/fonts.scale After creating this directory structure and copying the relevant files, you -should create a <`tt/fonts.scale/' file. This file has the same format as in -the case of (non-CID) scalable fonts, except that its first column contains +should create a `fonts.scale' file. This file has the same format as in the +case of (non-CID) scalable fonts, except that its first column contains PostScript font names with the extension `.cid' appended rather than actual filenames: @@ -1176,7 +1176,7 @@ The IANA RFC documents, available from a number of sites throughout the world, often provide interesting information about character set issues; see for example RFC 373. - Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/fonts.sgml,v 1.22 dawes Exp $ + Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/fonts.sgml,v 1.23 dawes Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.fonts,v 1.26 2003/11/19 01:44:58 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.fonts,v 1.27 2003/11/24 01:57:56 dawes Exp $ diff --git a/hw/xfree86/doc/changelogs/CHANGELOG b/hw/xfree86/doc/changelogs/CHANGELOG index 78f7f2e84..9833a0813 100644 --- a/hw/xfree86/doc/changelogs/CHANGELOG +++ b/hw/xfree86/doc/changelogs/CHANGELOG @@ -1,4 +1,99 @@ -XFree86 4.3.99.17 (xx November 2003) +XFree86 4.3.99.902 (xx December 2003) + +XFree86 4.3.99.901 ( 2 December 2003) + 645. Update xterm's checking of modifiers to match change 635, and handle + the case of keys like Meta_L being in more than one modifier. This + addresses an issue arising from Bugzilla #924 (David Dawes). + 644. When XDM-AUTHORIZATION-1 is used with IPv6 IPv4-mapped addresses, + (which should not happen with change 643, but can be done with other + xdm implementations) send the IPv4 address in the auth data; otherwise + send fake data for alignement purposes. (Matthieu Herrb). + 643. Don't generate XDM-AUTHORIZATION-1 authentification data for + IPv6 connections (Matthieu Herrb). + 642. Fix fontconfig timestamp checking problem that shows up on JFS + (Bugzilla #932, Frank Giessler). + 641. Restore VT ownership at XFree86 server exit on Linux. Should do the + same for other platforms that change change VT ownership at startup + (Bugzilla #927, Andrew Bevitt). + 640. Fix Mesa/GL problem on Linux with -mcpu=ultrasparc (reported by + Ferris McCormick). + 639. Fix a problem connecting to an IPv4-only X server running on a + machine which happens to have an AAAA DNS record from a NetBSD or + OpenBSD host with IPv6 configured (Matthieu Herrb). + 638. Don't use IPv6 sockets with IPv4-mapped addresses (::FFFF:w.x.y.z) + when making IPv4 connections with the "tcp" transport type. This + fixes problems on platforms (such as FreeBSD 5.1) which disable + IPv4-mapped addresses by default. It also fixes a problem with + XDM-AUTHORIZATION-1 for IPv4 connections with the default "tcp" + transport as reported in Bugzilla #903 (David Dawes). + 637. Fix backward compatibility of Xlib+IPv6 for apps linked against a libc + without IPv6 support (David Dawes). + 636. Restore the behaviour of scalable fonts.dir entries in directories with + the ":unscaled" attribute (Chisato Yamauchi, David Dawes, reported by + Mike Fabian). + 635. Fix xmodmap's output of the modifiers map when the first column keysym + is empty (Ivan Pascal). + 634. Fixes for XKB keyboard maps: + - fix Meta, Super, Hyper keysyms interpretation + - fix typo in rules/xfree86.xml (Ivan Pascal). + 633. DRI updates. + - Latest kernel drivers from the DRI trunk. + - Fix FB_LOCATION in radeon driver (Michel Daenzer). + - Texture managment code consolidation (Ian Romanick) + - i830 stencil fix (Keith Whitwell) + - mga blend fixes (Ville Syrjala) + 632. Fix a problem that prevented the i810 driver from using dot clocks less + than 12MHz (which appear to work) (Bugzilla #925, Richard Dengler). + 631. Fix a server crash that can happen when loading some CID fonts + (Bugzilla #906, David Dawes). + 630. Restructured version of the wacom driver, with support for TwinView, + fixed bugs and added filters (Bugzilla #537, Ping Cheng). + 629. Fix libfontenc link failure on OS/2 (Bugzilla #921, Frank Giessler). + 628. OS/2 fixes: + - Unable to connect to a font server. + - SIGFPE in GLX. + (Bugzila #920, Frank Giessler). + 627. Add a missing entry to big5hkscs-0.enc (Bugzilla #917, Jungshik Shin). + 626. Update libfreetype-xtt2 to version 1.1a: + - Fixed erroneous method of making up italic bitmap. + (Chisato Yamauchi, After X-TT Project). + 625. OS/2 build fixes: + - Cleanup of bootstrap leftovers in xc/config/imake. + - Explicitly define int32_t and int64_t in Mesa. + - Missing Xft/Imakefile patch. + (Bugzilla #915, Frank Giessler). + 624. Fix hide/unhide of XDarwin application with xpr when an AppleWM-aware + window manager is not present (Torrey T. Lyons). + 623. Fix generic rootless code bug which caused the wrong region to be + damaged on window resize (Torrey T. Lyons). + 622. Fix server crash when doing 'listwithinfo' of an outline font in + a directory marked ":unscaled" (Bugzilla #911, David Dawes). + 621. Fix a key truncation problem with 'xauth add' (Bugzilla #903, + David Dawes). + 620. With AppleDRI, don't use APPLE_fence as a replacement for NV_fence + calls (John Harper). + 619. Fix intermittent XDarwin crash when quitting (Torrey T. Lyons). + 618. Build fixes and updates for GNU/Hurd and GNU/K*BSD systems (Bugzilla + #907, #908, Robert Millan). + 617. Xterm fixes (Bugzilla #893, #905, Thomas Dickey). + 616. XDarwin fixes: + - Fix intermittent crash on XDarwin startup. + - Fix failure to redraw after resizing with cr implementation. + - Fix install failure when DESTDIR is specified (Reported by + Benjamin Reed). + (Torrey T. Lyons). + 615. Add command line options to mkfontscale to enable/disable generation + of iso10646-1 lines (Bugzilla #885, Roland Mainz). + 614. Add a more complete set of the encodings we support to mkfontscale + (Bugzilla #884, Roland Mainz). + 613. Add ansi-1251 encoding file (Bugzilla #884, Roland Mainz). + 612. Update XDMCP to use the IPv6 multicast address that has been assigned + by IANA. Draft XDMCP 1.1 specs updated accordingly (Bugzilla #895, + Alan Coopersmith). + 611. Add 'defined(VT_ACTIVATE)' to the test for platforms that support VT + switching (based on Bugzilla #894, Robert Millan). + 610. Make several tests for glibc features glibc-specific rather than + specific to the underlying OS (Bugzila #890, 891, Robert Millan). XFree86 4.3.99.16 (20 November 2003) 609. Fix 'constype' for modern framebuffers on Solaris (Bugzilla #890, @@ -461,7 +556,8 @@ XFree86 4.3.99.14 (10 October 2003) Frank Giessler). 458. Import Mesa 5.0.2 (Alan Hourihane). 457. DRI merge (DRI Project) - * details to follow.......... + - Update the SiS driver to use Mesa 5.0 + - 456. Fixes and updates for XKB keyboard maps: - Update xkb geometry files (Alexander Pohoyda). - Fix German-Romanian maps (Manfred Pohler). @@ -18230,7 +18326,7 @@ XFree86 3.0a (28 April 1994) XFree86 3.0 (26 April 1994) -$XFree86: xc/programs/Xserver/hw/xfree86/CHANGELOG,v 3.2982 2003/11/21 06:01:42 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/CHANGELOG,v 3.3014 2003/12/03 05:05:57 dawes Exp $ diff --git a/hw/xfree86/loader/dixsym.c b/hw/xfree86/loader/dixsym.c index 3808cf3e3..da920dc5f 100644 --- a/hw/xfree86/loader/dixsym.c +++ b/hw/xfree86/loader/dixsym.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/dixsym.c,v 1.61 2003/11/10 18:22:35 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/dixsym.c,v 1.62 2003/11/25 05:26:38 dawes Exp $ */ /* * Copyright 1995-1998 by Metro Link, Inc. @@ -114,6 +114,10 @@ LOOKUP dixLookupTab[] = { SYMFUNC(InitFocusClassDeviceStruct) SYMFUNC(InitLedFeedbackClassDeviceStruct) SYMFUNC(InitPtrFeedbackClassDeviceStruct) + SYMFUNC(InitKbdFeedbackClassDeviceStruct) + SYMFUNC(InitIntegerFeedbackClassDeviceStruct) + SYMFUNC(InitStringFeedbackClassDeviceStruct) + SYMFUNC(InitBellFeedbackClassDeviceStruct) SYMFUNC(InitValuatorClassDeviceStruct) SYMFUNC(InitKeyClassDeviceStruct) SYMFUNC(InitKeyboardDeviceStruct) diff --git a/hw/xfree86/loader/hash.c b/hw/xfree86/loader/hash.c index f8ddd45a4..03f415c22 100644 --- a/hw/xfree86/loader/hash.c +++ b/hw/xfree86/loader/hash.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/hash.c,v 1.24 2003/11/17 22:20:40 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/hash.c,v 1.25 2003/11/23 00:57:56 dawes Exp $ */ /* * @@ -41,9 +41,7 @@ /* Prototypes for static functions. */ static unsigned int hashFunc(const char *); -static itemPtr LoaderHashFindNearest( - unsigned long - ); +static itemPtr LoaderHashFindNearest(unsigned long); static itemPtr LoaderhashTable[HASHSIZE]; diff --git a/hw/xfree86/os-support/linux/lnx_init.c b/hw/xfree86/os-support/linux/lnx_init.c index 0ac8c6a8b..cbc926bc0 100644 --- a/hw/xfree86/os-support/linux/lnx_init.c +++ b/hw/xfree86/os-support/linux/lnx_init.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_init.c,v 3.14 2001/10/31 22:50:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_init.c,v 3.15 2003/12/02 20:45:13 dawes Exp $ */ /* * Copyright 1992 by Orest Zborowski <obz@Kodak.com> * Copyright 1993 by David Wexelblat <dwex@goblin.org> @@ -7,19 +7,19 @@ * 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 names of Orest Zborowski and David Wexelblat - * not be used in advertising or publicity pertaining to distribution of + * documentation, and that the names of Orest Zborowski and David Wexelblat + * not be used in advertising or publicity pertaining to distribution of * the software without specific, written prior permission. Orest Zborowski - * and David Wexelblat make no representations about the suitability of this - * software for any purpose. It is provided "as is" without express or + * and David Wexelblat make no representations about the suitability of this + * software for any purpose. It is provided "as is" without express or * implied warranty. * - * OREST ZBOROWSKI AND DAVID WEXELBLAT DISCLAIMS ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS, IN NO EVENT SHALL OREST ZBOROWSKI OR DAVID WEXELBLAT 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 + * OREST ZBOROWSKI AND DAVID WEXELBLAT DISCLAIMS ALL WARRANTIES WITH REGARD + * TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS, IN NO EVENT SHALL OREST ZBOROWSKI OR DAVID WEXELBLAT 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. * */ @@ -35,6 +35,8 @@ #include "xf86_OSlib.h" #include "lnx.h" +#include <sys/stat.h> + #ifdef USE_DEV_FB extern char *getenv(const char *); #include <linux/fb.h> @@ -45,13 +47,44 @@ static Bool KeepTty = FALSE; static int VTnum = -1; static int activeVT = -1; +static int vtPermSave[4]; +static char vtname[11]; + +static int +saveVtPerms(void) +{ + /* We need to use stat to get permissions. */ + struct stat svtp; + + /* Do them numerically ordered, hard coded tty0 first. */ + if (stat("/dev/tty0", &svtp) != 0) + return 0; + vtPermSave[0] = (int)svtp.st_uid; + vtPermSave[1] = (int)svtp.st_gid; + + /* Now check the console we are dealing with. */ + if (stat(vtname, &svtp) != 0) + return 0; + vtPermSave[2] = (int)svtp.st_uid; + vtPermSave[3] = (int)svtp.st_gid; + + return 1; +} + +static void +restoreVtPerms(void) +{ + /* Set the terminal permissions back to before we started. */ + chown("/dev/tty0", vtPermSave[0], vtPermSave[1]); + chown(vtname, vtPermSave[2], vtPermSave[3]); +} + void xf86OpenConsole(void) { int i, fd = -1; int result; struct vt_mode VT; - char vtname[11]; struct vt_stat vts; MessageType from = X_PROBED; #ifdef USE_DEV_FB @@ -61,7 +94,7 @@ xf86OpenConsole(void) char *tty0[] = { "/dev/tty0", "/dev/vc/0", NULL }; char *vcs[] = { "/dev/vc/%d", "/dev/tty%d", NULL }; - if (serverGeneration == 1) + if (serverGeneration == 1) { /* check if we're run with euid==0 */ if (geteuid() != 0) @@ -124,6 +157,15 @@ xf86OpenConsole(void) xf86Info.vtno, strerror(errno)); } + /* + * Grab the vt ownership before we overwrite it. + * Hard coded /dev/tty0 into this function as well for below. + */ + if (!saveVtPerms()){ + xf86Msg(X_WARNING, + "xf86OpenConsole: Could not save ownership of VT\n"); + } + /* change ownership of the vt */ chown(vtname, getuid(), getgid()); @@ -171,7 +213,7 @@ xf86OpenConsole(void) xf86Msg(X_WARNING, "xf86OpenConsole: VT_WAITACTIVE failed\n"); } SYSCALL(result = ioctl(xf86Info.consoleFd, VT_GETMODE, &VT)); - if (result < 0) + if (result < 0) { FatalError("xf86OpenConsole: VT_GETMODE failed\n"); } @@ -181,7 +223,7 @@ xf86OpenConsole(void) VT.mode = VT_PROCESS; VT.relsig = SIGUSR1; VT.acqsig = SIGUSR1; - if (ioctl(xf86Info.consoleFd, VT_SETMODE, &VT) < 0) + if (ioctl(xf86Info.consoleFd, VT_SETMODE, &VT) < 0) { FatalError("xf86OpenConsole: VT_SETMODE VT_PROCESS failed\n"); } @@ -202,7 +244,7 @@ xf86OpenConsole(void) close(fbfd); #endif } - else + else { /* serverGeneration != 1 */ /* @@ -247,6 +289,9 @@ xf86CloseConsole() activeVT = -1; } close(xf86Info.consoleFd); /* make the vt-manager happy */ + + restoreVtPerms(); /* restore the permissions */ + return; } @@ -254,7 +299,7 @@ int xf86ProcessArgument(int argc, char *argv[], int i) { /* - * Keep server from detaching from controlling tty. This is useful + * Keep server from detaching from controlling tty. This is useful * when debugging (so the server can receive keyboard signals. */ if (!strcmp(argv[i], "-keeptty")) diff --git a/hw/xfree86/os-support/xf86_libc.h b/hw/xfree86/os-support/xf86_libc.h index 61eb93d8b..cd895eea0 100644 --- a/hw/xfree86/os-support/xf86_libc.h +++ b/hw/xfree86/os-support/xf86_libc.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/xf86_libc.h,v 3.60 2003/10/26 12:17:17 herrb Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/xf86_libc.h,v 3.62 2003/12/02 22:29:23 dawes Exp $ */ /* * Copyright (c) 1997-2003 by The XFree86 Project, Inc. * |