summaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorKaleb Keithley <kaleb@freedesktop.org>2003-12-04 22:03:38 +0000
committerKaleb Keithley <kaleb@freedesktop.org>2003-12-04 22:03:38 +0000
commita84f16a9ad2ed0f874d2c1816aedee96725d2657 (patch)
tree26a8489882186f081d8ec88d4d194e531fa30050 /hw
parent33fdd50a94baab1db342bfce442907db8f8ad03e (diff)
XFree86 4.3.99.901 (RC 1)xf86-4_3_99_901
Diffstat (limited to 'hw')
-rw-r--r--hw/darwin/bundle/English.lproj/Credits.rtf20
-rw-r--r--hw/darwin/darwin.c6
-rw-r--r--hw/darwin/quartz/XServer.h5
-rw-r--r--hw/darwin/quartz/XServer.m48
-rw-r--r--hw/darwin/quartz/cr/crFrame.m4
-rw-r--r--hw/darwin/quartz/cr/crScreen.m3
-rw-r--r--hw/darwin/quartz/fullscreen/fullscreen.c3
-rw-r--r--hw/darwin/quartz/quartz.c6
-rw-r--r--hw/darwin/quartz/quartz.h4
-rw-r--r--hw/darwin/quartz/xpr/xpr.h3
-rw-r--r--hw/darwin/quartz/xpr/xprFrame.c46
-rw-r--r--hw/darwin/quartz/xpr/xprScreen.c3
-rw-r--r--hw/vfb/Xvfb.man.pre4
-rw-r--r--hw/xfree86/common/xf86Date.h4
-rw-r--r--hw/xfree86/common/xf86Events.c4
-rw-r--r--hw/xfree86/common/xf86Version.h4
-rw-r--r--hw/xfree86/doc/README.fonts8
-rw-r--r--hw/xfree86/doc/changelogs/CHANGELOG102
-rw-r--r--hw/xfree86/loader/dixsym.c6
-rw-r--r--hw/xfree86/loader/hash.c6
-rw-r--r--hw/xfree86/os-support/linux/lnx_init.c79
-rw-r--r--hw/xfree86/os-support/xf86_libc.h2
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.
*