ChangeLog   [plain text]

2006-09-08  John Harper  <>


2006-09-06  John Harper  <>

	* xc/lib/GL/apple/dri_dispatch.h,
	xc/lib/GL/apple/dri_dispatch.defs: removed glPointParameteri[v]

	* xc/programs/Xserver/hw/apple/rootless-window.c,
	xc/programs/Xserver/hw/apple/X11Application.m: use shared
	version of AppleWM headers

	* make-host-def,, Makefile: removed Xplugin/quartz-wm
	references; attempt to support x86_64

2006-07-07  John Harper  <>


	* xc/programs/Xserver/hw/apple/x-hash.c: fix compiler warning

	* xc/programs/xterm/main.c: fix xterm build failure (4607761)

2006-02-12  John Harper  <>

	* xc/programs/Xserver/GL/apple/indirect.c
	(glAquaInitVisualConfigs): add stereo visuals (4377346)

2006-01-16  John Harper  <>


	* xc/programs/Xserver/hw/apple/bundle-main.c: added /sbin and
	/usr/sbin to the default PATH value (4408133)

	* xc/programs/Xserver/hw/apple/quartz.c (do_exec): use same
	default PATH and MANPATH values as bundle-main.c (4408133)

2005-11-29  John Harper  <>

	Fix xscreensaver-demo crash and make its cross-process GL
	surfaces work correctly (4356702):

	* xc/programs/Xserver/hw/apple/dri-surface.c: don't compile the
	code to draw on surfaces (that was always disables but was
	causing a crash - I've fixed the crash, but the code is never
	used so best to just remove it from the binary)

2005-10-25  John Harper  <>


	* xc/lib/xtrans/Xtranssock.c: fix Leopard build failure

2005-10-24  John Harper  <>

	* xc/programs/Xserver/hw/apple/bundle-main.c: fix default
	MANPATH (4312329)

2005-08-29  John Harper  <>

	* xc/extras/freetype2/src/base/ftmac.c: merged endian changes
	from 3477131

2005-06-22  John Harper  <>

	* xc/extras/Xpm/lib/scan.c, xc/extras/Xpm/lib/create.c: merged
	fix for CAN-2005-0605 from xfree86 cvs (4031381)

2005-05-24  John Harper  <>

	* xc/programs/Xserver/hw/apple/bundle-main.c
	(install_ipaddr_source): changed the way we listen for network
	/ hostname changes, hopefully to be more reliable

	* xc/programs/Xserver/hw/apple/X11Application.m (sendEvent):
	change fix for bring-all-to-front not to require private
	headers - hardcode enum value we need :-(  (4075093)

2005-05-23  John Harper  <>

	* Makefile, make-host-def,,
	xc/config/cf/, xc/config/cf/,
	xc/config/cf/darwinLib.tmpl, xc/include/Xmd.h,
	xc/lib/Xt/TMaction.c, xc/lib/Xt/Xtos.h,
	xc/lib/freetype2/Imakefile: checked in changes to
	support building fat libraries when ppc64 is in RC_ARCHS

	* xc/programs/Xserver/hw/apple/X11.pbproj/project.pbxproj:
	bumped short version number to 1.2 so we don't fail to verify

	* xc/programs/Xserver/hw/apple/X11Application.m: handle scroll
	wheel events with delta < 1 correctly (4109092)

2005-05-20  John Harper  <>

	* xc/programs/Xserver/hw/apple/rootless.h,
	xc/programs/Xserver/hw/apple/X11Application.m: recognize the
	bfCPSOrderAllWindowsForward bit in activation events and
	respond to it appropriately (4075093)

2005-03-09  John Harper  <>

	* Tagged: TIGER_SUBMISSION_0_40

	* xc/programs/Xserver/hw/apple/darwin.c
	(DarwinUpdateModifiers): handle AlphaShift (caps lock) as a
	normal modifier, now that we disabled XKB (when merging with
	XFree86 4.4) that's the correct thing to do (4015381)

2005-03-03  John Harper  <>

	* Tagged: TIGER_SUBMISSION_0_39

2005-03-01  John Harper  <>

	* xc/extras/Xpm/lib/scan.c, xc/extras/Xpm/lib/create.c: more
	Xpm fixes, from, attachment
	1909. (4031381)

	* xc/lib/Xpm/Imakefile: doh, forgot Imakefile portion of
	original patch

	* xc/extras/Xpm/lib/scan.c, xc/extras/Xpm/lib/s_popen.c,
	xc/extras/Xpm/lib/parse.c, xc/extras/Xpm/lib/misc.c,
	xc/extras/Xpm/lib/hashtab.c, xc/extras/Xpm/lib/data.c,
	xc/extras/Xpm/lib/create.c, xc/extras/Xpm/lib/XpmI.h,
	xc/extras/Xpm/lib/WrFFrI.c, xc/extras/Xpm/lib/WrFFrBuf.c,
	xc/extras/Xpm/lib/RdFToI.c, xc/extras/Xpm/lib/RdFToBuf.c,
	xc/extras/Xpm/lib/Imakefile, xc/extras/Xpm/lib/CrDatFrI.c,
	xc/extras/Xpm/lib/CrBufFrI.c, xc/extras/Xpm/lib/Attrib.c:
	merged changes from XFree86 HEAD branch (4022757)

2005-02-15  John Harper  <>

	* Tagged: TIGER_SUBMISSION_0_38

	* xc/programs/Xserver/hw/apple/quartz-server.c: request that
	deferred updates are disabled. Otherwise we lose 25%
	performance on the "cat file in xterm" test (3985081)

	Fix 3494176 (deadlock while closing OpenGL window):

	* xc/lib/GL/glx/glxext.c: make __glXLock a recursive mutex

	* xc/lib/GL/apple/dri_driver.h, xc/lib/GL/apple/dri_driver.c:
	make the screen mutex a pthread_mutex and make it recursive

2005-01-04  John Harper  <>

	* Tagged: TIGER_SUBMISSION_0_37

	* xc/programs/Xserver/hw/apple/X11Controller.m: fixed several
	bugs in the customization dialog for the applications menu

2004-11-24  John Harper  <>

	* Tagged: TIGER_SUBMISSION_0_36_1

	* Makefile: strip-libraries target doesn't strip libXplugin

2004-11-23  John Harper  <>

	* Tagged: TIGER_SUBMISSION_0_36

2004-11-16  John Harper  <>

	* xc/programs/Xserver/hw/apple/bundle-main.c: added a signal
	handler to catch SIGTERM etc and exit cleanly, killing the X
	server and xinit (3879878)

2004-10-25  John Harper  <>

	* xc/programs/Xserver/hw/apple/English.lproj/InfoPlist.strings:
	removed CFBundleShortVersionString and CFBundleGetInfoString

2004-10-21  John Harper  <>

	* Tagged: TIGER_SUBMISSION_0_35

2004-10-19  John Harper  <>

	* xc/programs/Xserver/hw/apple/English.lproj/Localizable.strings:
	added "Terminal" to the strings file	

	* xc/programs/Xserver/hw/apple/X11Application.m (prefs_get):
	added code to call NSLocalizedString on each name in the
	default applications menu

	* xc/programs/Xserver/hw/apple/rootless-window.c
	(RootlessKnowsWindowNumber): added check for zero window id

2004-10-15  John Harper  <>

	* xc/programs/Xserver/hw/apple/English.lproj/Localizable.strings:
	Expanded backslash escape sequences since .strings files don't
	seem to handle them correctly. (3833239)

2004-10-15  John Harper  <>

	* Tagged: TIGER_SUBMISSION_0_34_1

	* xc/programs/Xserver/hw/vfb/InitOutput.c: workaround 3834723
	by rearranging include order

2004-10-13  John Harper  <>

	* Tagged: TIGER_SUBMISSION_0_34

2004-10-10  John Harper  <>

	* xc/programs/Xserver/hw/apple/quartz.h,
	xc/programs/Xserver/hw/apple/X11Controller.m: QuartzRunClient
	function now has a second arg - whether or not to quote the
	command (3816789, 3572554)

2004-10-08  John Harper  <>

	* xc/extras/Xpm/lib/scan.c, xc/extras/Xpm/lib/parse.c,
	xc/extras/Xpm/lib/hashtab.c, xc/extras/Xpm/lib/data.c,
	xc/extras/Xpm/lib/create.c, xc/extras/Xpm/lib/XpmI.h,
	xc/extras/Xpm/lib/WrFFrI.c, xc/extras/Xpm/lib/CrDatFrI.c,
	xc/extras/Xpm/lib/Attrib.c: merged Xpm changes from XFree86
	HEAD branch (3744542, 3778302)

2004-09-29  John Harper  <>

	* xc/programs/Xserver/hw/apple/English.lproj/main.nib/: fixed
	typo (3820725)

2004-09-16  John Harper  <>

	* xc/programs/xterm/main.c: call openpty() to scan for a pseudo
	terminal (3768572)

	* xc/programs/xterm/ fix documentation of -ls option

2004-09-09  John Harper  <>

	* Tagged: TIGER_SUBMISSION_0_33

2004-09-08  John Harper  <>

	* xc/programs/Xserver/hw/apple/English.lproj/main.nib/: nib
	changes for 3313133 and 3316468

2004-09-03  John Harper  <>

	* xc/programs/Xserver/hw/apple/English.lproj/main.nib/: gave
	applications dialog window a minimum size

	* xc/programs/Xserver/hw/apple/English.lproj/Localizable.strings:
	new file - ran genstrings on the .m files

	* xc/programs/Xserver/hw/apple/X11.pbproj/project.pbxproj:
	added Localizable.strings

	* xc/programs/Xserver/hw/apple/X11Controller.m,
	xc/programs/Xserver/hw/apple/X11Application.m: added comments
	for translators

	* xc/programs/Xserver/hw/apple/Imakefile: set OBJROOT and
	SYMROOT when calling xcodebuild

2004-08-23  John Harper  <>

	* xc/programs/Xserver/hw/apple/bundle-main.c: fix typo in
	$XINITRC code (from Ronnie Misra, 3621248)

2004-07-20  John Harper  <>

	* Tagged: TIGER_SUBMISSION_0_32_1

	* added man page for open-x11 script

	* Makefile: use lndir again, the cpp bug was fixed

	* xc/config/cf/ fix fat builds

2004-07-19  John Harper  <>

	* Tagged: TIGER_SUBMISSION_0_32

2004-07-16  John Harper  <>

	* merged changes from XFree86 4.4.0 and fixed resulting
	brokenness (3570235, 3612446, 3548675, 3404805)

2004-06-10  John Harper  <>

	* xinitrc: quote shell expanded filenames to support home
	directories with spaces (3674992)

2004-03-29  John Harper  <>

	* FS/FSFontInfo.c, FS/FSFtNames.c, FS/FSGetCats.c,
	FS/FSListCats.c, FS/FSListExt.c, FS/FSOpenServ.c,
	FS/FSQGlyphs.c, FS/FSQXExt.c, FS/FSQXInfo.c, FS/FSlibint.h,
	FS/FSlibos.h, font/fc/fsconvert.c, font/fc/fserve.c,
	font/fc/fslibos.h, font/fontfile/dirfile.c,
	font/fontfile/encparse.c, font/fontfile/fontdir.c,
	font/fontfile/fontfile.c: merged font security fixes from
	XFree86 4.3 branch

2004-03-11  John Harper  <>

	* xc/programs/Xserver/hw/apple/quartz.c (QuartzRunClient):
	added cheesy command quoting hack to fix 3572554

	* xc/programs/Xserver/hw/apple/bundle-main.c (define_named):
	fix from Ronnie Misra for 3571829 (writing bad address size
	into xauth item)

2004-02-09  John Harper  <>

	* xc/programs/Xserver/hw/apple/bundle-main.c (start_client):
	respect value of $XINITRC. Also default to xinitrc in
	/etc/X11/xinit not the one under /usr/X11R6

2004-01-09  John Harper  <>

	* xc/programs/xterm/charproc.c: revert the part of the fix for
	3449284 to make `-ls' be the default behavior (3524388)

2004-01-08  John Harper  <>

	* xc/programs/xkbcomp/symbols/by,
	xc/programs/xkbcomp/symbols/pc/by: grabbed these files from
	XFree86 4.3.0 (3405807)

	* xc/lib/GL/GL/Imakefile: don't link `-sub_umbrella OpenGL',
	this brings in an extra copy of libGLU and all the CGL symbols.
	Instead link against the native GL's libGL.dylib and specify
	`-sub_library libGL' as well as `-framework OpenGL' (3465397)

2004-01-05  John Harper  <>

 	* Tagged: MERLOT_SUBMISSION_0_31

2003-12-20  John Harper  <>

	* xc/lib/GL/apple/dri_driver.h, xc/lib/GL/apple/dri_driver.c:
	include OpenGL.framework headers before any X11 stuff - ensures
	we get the correct gl.h and glext.h

2003-12-12  John Harper  <>

	* xc/programs/Xserver/hw/apple/quartz.c,
	xc/programs/Xserver/hw/apple/bundle-main.c: replicated code to
	add /usr/X11R6/bin to PATH and edited it to set MANPATH as well

2003-11-04  John Harper  <>

	* xc/lib/GL/apple/dri_driver.h, xc/lib/GL/apple/dri_driver.c:
	threading fixes (3470313)

2003-11-03  John Harper  <>

	* xc/programs/Xserver/hw/apple/English.lproj/main.nib/: changes
	for HIG compliance: use Command-? for help (3405320); use
	Command-Option-H for hide others (3405321); added separator
	before Preferences menu item (3405322); reorganized Window menu

	* xc/config/cf/Imake.rules: added "-e '/^#pragma GCC .*$$/d'"
	to CppSedMagic to delete crud left by cpp (3445652)

2003-10-09  John Harper  <>

	* make-host-def: applied patch from Alexei Kosut to fix build
	failure (3386185)

	* xc/programs/xterm/, xc/programs/xterm/main.c,
	xc/programs/xterm/charproc.c: applied patch from Jordan Hubbard
	to fix 3449284 (xterm's -ls option does not work)

2003-08-31  John Harper  <>

	* xc/programs/Xserver/hw/apple/bundle-main.c
	(generate_mit_magic_cookie): don't forget to close the
	/dev/random fd

2003-09-12  John Harper  <>


	* xc/programs/Xserver/hw/apple/X11Application.m: revert fix for
	3363492 and add another check for RootlessKnowsWindowNumber ()
	to fix the original bug (3420745)

2003-09-10  John Harper  <>


	* xc/programs/Xserver/hw/apple/bundle-main.c (sigchld_handler):
	loop until no more zombies exist (3414442)

2003-08-08  John Harper  <>


	* xc/programs/Xserver/hw/apple/quartz.c,
	xc/programs/Xserver/hw/apple/X11Application.h: move calling
	HideMenuBar and ShowMenuBar onto the main UI thread (3359753)

	* xc/lib/GL/apple/dri_driver.h, xc/lib/GL/apple/dri_driver.c:
	few more MT changes, be even more careful about when contexts
	are updated

2003-08-07  John Harper  <>

	* xc/lib/GL/apple/dri_driver.h, xc/lib/GL/apple/dri_driver.c:
	Large set of changes to make this code handle multiple threads
	sanely. Changes include adding a mutex for each screen, and
	only ever touching CGL contexts when we know they're bound to
	the current thread or no thread. This involves patching gli
	dispatch table to cause glViewport to call back into DRI code
	so that contexts can be updated on their own thread. May be
	occasions where glXSwapBuffers fails if no suitable context can
	be found to issue the swap on (3340377) 

	* xc/programs/Xserver/hw/apple/quartz.c: quartzServerVisible
	variable needs to start out as false (3366845)

2003-08-04  John Harper  <>

	* xc/programs/Xserver/hw/apple/X11Application.m: move the call
	to RootlessKnowsWindowNumber () into the event handler so that
	we don't activate X on the broken menu-mouse-down event

	* RELEASE-NOTES: updated to reflect that X11 is now part of the
	OS and no longer a preview release (3361286)

2003-08-01  John Harper  <>


2003-07-29  John Harper  <>

	* xc/lib/GL/glx/glxext.c (glXMakeCurrent): unlock display after
	sending GLXMakeCurrent request when changing from indirect to
	direct context (3351489, sent upstream via Torrey)

2003-07-28  John Harper  <>


2003-07-25  John Harper  <>

	* xc/programs/Xserver/hw/apple/X11Application.m (sendEvent):
	when in fullscreen mode, don't pass ApplicationDidReactivate
	events through to AppKit (3341360)

2003-07-24  John Harper  <>

	* xc/programs/Xserver/hw/apple/X11Controller.m: added back the
	code to control the security preferences

	* xc/programs/Xserver/hw/apple/X11Controller.m: fixed compiler

2003-07-23  John Harper  <>

	* xc/lib/GL/apple/dri_dispatch.c (XAppleDRIGetIndirectContext):
	make the context we allocate 1k bigger than we think it needs
	to be, in case GL changes

2003-07-22  John Harper  <>

	* xc/lib/GL/apple/dri_dispatch.c (XAppleDRIGetIndirectContext):
	allocate the CGLContext used for dispatch indirect rendering
	ourselves, avoids ever needing to contact the window server

2003-07-18  John Harper  <>

	* xc/programs/Xserver/hw/apple/dri-surface.c: fixed use of
	pixmap private index

	* xc/programs/Xserver/hw/apple/quartz.c (QuartzSetFullscreen):
	use xp_disable_hot_keys instead of CG spi (3221162)

	* xc/programs/Xserver/hw/apple/rootless-screen.c,
	xc/programs/Xserver/hw/apple/rootless-common.c: use
	RootlessFinishedDrawing () to call new function
	RootlessMayRedisplay (). After a certain amount of time since
	the last update it will cause a flush (3270678)

	* xc/programs/Xserver/hw/apple/rootless-screen.c: clean-up

2003-07-17  John Harper  <>

	* xc/programs/Xserver/hw/apple/rootless-window.c
	(RootlessPaintWindowBackground): prevent trying to draw in
	surfaces here

	* xc/programs/Xserver/hw/apple/rootless-gc.c: call
	RootlessFinishedDrawing at the end of each rendering primitive

	* xc/programs/Xserver/hw/apple/rootless-common.h,
	xc/programs/Xserver/hw/apple/rootless-common.c: use the
	DRIStartDrawing functions etc to test if the drawable is a
	(RootlessFinishedDrawing): new function, should be called after
	drawing has finished

	* xc/programs/Xserver/hw/apple/dristruct.h,
	xc/programs/Xserver/hw/apple/dri-surface.c (DRIStartDrawing,
	DRIStopDrawing, DRIDamageRegion, DRISynchronizeDrawable,
	DRISynchronize): functions to support Xlib rendering on
	accelerated surfaces. Only supported on 10.3, and they won't do
	anything by default

	* xc/programs/Xserver/hw/apple/dri-surface.c
	(DRICreateSurface): support Pixmap drawables (3122756, 10.3

	* xc/programs/Xserver/hw/apple/dri-surface.c: removed check for
	cg from SUJagGreen

	* xc/programs/Xserver/GL/apple/indirect.c: support offscreen
	drawables (by removing the code that stopped them being
	supported, dri-surface.c does the real work) (3122756)

	* xc/programs/Xserver/hw/apple/quartz.h,
	xc/programs/Xserver/hw/apple/X11Application.h: added xp_options
	default, lets you pass extra init options to Xplugin

	* xc/programs/Xserver/hw/apple/*: fixed gcc 3.3 warnings

2003-07-16  John Harper  <>

	* xc/programs/Xserver/hw/apple/x-list.c,
	xc/programs/Xserver/hw/apple/x-list.h (x_list_pop): new

	* xc/programs/Xserver/hw/apple/x-hash.c: fix gcc 3.3 warning

2003-07-10  John Harper  <>


	* xc/programs/Xserver/hw/apple/English.lproj/main.nib/:
	reverted last changes, ccc denied

2003-07-07  John Harper  <>

	* xc/programs/Xserver/hw/apple/X11Application.m: don't pass
	flags changed events to X11 when Appkit is active (3316333)

2003-07-02  John Harper  <>

	* xc/programs/Xserver/hw/apple/quartz.c (QuartzRunClient):
	don't quote commands, it stops multi-word commands working

	* xc/programs/Xserver/hw/apple/English.lproj/main.nib/: changes
	from Ernie / Ron Brannan (3313133)

	* xc/programs/Xserver/hw/apple/X11Controller.m: updated quit
	alert text (3313133)

	* xc/programs/Xserver/hw/apple/ added more defaults

	* xc/programs/Xserver/hw/apple/bundle-main.c (main): detach
	from the controlling terminal when we have one (avoids bash
	suspending the process when we try to launch problems!?)

2003-06-24  John Harper  <>

	* xc/programs/Xserver/hw/apple/applewm-impl.c
	(ProcAppleWMSetWindowLevel): removed the code to call
	xp_configure_window inline - it should have been removed when
	the call to RootlessSetWindowLevel () was added!

	* xc/programs/Xserver/hw/apple/quartz.c (QuartzSetFullscreen):
	hide and show menubar when entering and leaving fullscreen
	mode. Otherwise it steals our pointer events (3303080)

2003-06-23  John Harper  <>

	* xc/programs/Xserver/hw/apple/rootless-window.c: ensure that
	window is unlocked before trying to configure/destroy it. Fixes
	the problem where the root window can be left on top of
	everything (3302694)

2003-06-18  John Harper  <>

	* Makefile: added a rule to empty host.def after installing,
	the normal host.def is set up for fat builds, but only the
	thinned versions get installed on user systems (3290527)

2003-06-17  John Harper  <>

	* xc/programs/Xserver/hw/apple/X11Controller.m (x11_help): open
	Apple Help page, not X11 web page (3281002)

2003-05-30  John Harper  <>


	* xc/programs/Xserver/hw/apple/X11Controller.m,
	xc/programs/Xserver/hw/apple/X11Application.m: changed rooted
	mode UI per discussion with Ernie and Haroon (#3221150)

	* xc/programs/Xserver/hw/apple/English.lproj/main.nib/: changes
	for above

2003-05-28  John Harper  <>


2003-05-27  John Harper  <>

	* xc/programs/Xserver/hw/apple/rootless-window.c,
	xc/programs/Xserver/hw/apple/Imakefile: implement and use new
	Apple-WM extension for window manager interfacing

	* xc/lib/GL/apple/appledristr.h, xc/lib/GL/apple/appledri.h,
	xc/lib/GL/apple/appledri.c: removed all window-manager related

2003-05-19  John Harper  <>

	* xc/programs/Xserver/hw/apple/bundle-main.c: use getifaddrs ()
	instead of gethostbyname (hostname) so that we get all AF_INET
	addresses used by the system. Also, after receiving the
	"something may have changed" notification, delay one second
	before updating .Xauthority (I was seeing the wrong addresses

2003-05-16  John Harper  <>

	* xc/programs/Xserver/hw/apple/English.lproj/InfoPlist.strings:
	fixed typo in copyright string (#3260643)

2003-05-14  John Harper  <>

	* xc/programs/Xserver/hw/apple/bundle-main.c: clean-up

2003-05-13  John Harper  <>

	* xc/programs/Xserver/hw/apple/bundle-main.c: use SIGCHLD to
	catch client/server deaths (do the reaping inside the signal
	handler since it's safe and easiest, longjmp back to main ()
	when both processes are dead). Use SystemConfiguration
	framework to create a runloop source to tell us when either a
	local ip address or hostname changes, in the callback for this,
	delete old Xauthority entries and install new ones reflecting
	the current configuration. All this should fix #3141699

	* xc/programs/Xserver/hw/apple/X11.pbproj/project.pbxproj: link against SystemConfiguration.framework

2003-05-12  John Harper  <>

	* xc/programs/Xserver/hw/apple/quartz-cursor.c,
	xc/programs/Xserver/hw/apple/darwin.c: revised last change -
	now install a new function DarwinEnqueuePointerEvent in the mi
	screen funcs table. This just calls the pointer device. Then
	remove the call to the pointer device from ProcessInputEvents

	* xc/programs/Xserver/hw/apple/quartz-cursor.c: install
	DarwinEnqueueEvent in the mipointer screen functions table.
	This makes warping the pointer generate events correctly

2003-05-09  John Harper  <>

	* xc/programs/Xserver/hw/apple/bundle-main.c: added
	"interesting" code to dynamically choose an unused display
	number for the server (#3253935). It works, though there is a
	race condition in the unlikely event that two servers are
	started roughly simultaneously..

	* Xquartz.plist: removed vim, it's not going to link against
	X11 (#3253136)

2003-05-08  John Harper  <>

	* xc/programs/Xserver/hw/apple/English.lproj/main.nib/: added
	"Next Window" and "Previous Window" menuitems (similar to in

	* xc/programs/Xserver/hw/apple/X11Controller.m (next_window,
	previous_window): new methods

	* xc/lib/GL/apple/appledri.h (AppleDRINextWindow,
	AppleDRIPreviousWindow): added

	* xc/programs/Xserver/hw/apple/X11Controller.m,
	xc/programs/Xserver/hw/apple/X11Application.m: don't crash
	while updating window menu when some items don't have shortcuts
	associated with them (#3210884)

2003-05-07  John Harper  <>

	Fixed some issues with fullscreen mode:

	* xc/programs/Xserver/hw/apple/quartz.c (QuartzSetFullscreen,
	QuartzSetRootless): disable updates while frobbing windows.
	Also, only call QuartzUpdateScreens () if windows are left

	* xc/programs/Xserver/hw/apple/rootless-window.c: be sure to
	remove the _NATIVE_SCREEN_ID property from windows that have no
	physical window

	* xc/programs/Xserver/hw/apple/quartz.c (QuartzAddScreen): be
	more selective about when to remove the menubar from the
	screen/head shapes

2003-05-06  John Harper  <>

	* xc/extras/freetype2/src/base/ftmac.c: merged double free fix
	fixes #3246069

2003-04-30  John Harper  <>


	* xc/programs/Xserver/hw/apple/quartz.c
	(addPseudoramiXScreens): start from null rect not zero rect
	when creating screen bounds (patch from Torrey Lyons)

	* xc/programs/Xserver/hw/apple/quartz.c (do_exec): force stdin
	to /dev/null

2003-04-29  John Harper  <>

	Work to support key equivalents in applications menu

	* xc/programs/Xserver/hw/apple/X11Controller.m,
	xc/programs/Xserver/hw/apple/X11Application.m: changed
	apps-menu array format from [TITLE CMD TITLE CMD ...] to
	[[TITLE CMD SHORTCUT] ...]. Added code to edit and use the
	shortcuts, and to convert from the old format when necessary

	* xc/programs/Xserver/hw/apple/English.lproj/main.nib/: added
	third column to applications table

	* Xquartz.plist: updated for new apps-menu format, "Terminal"
	item has Command-n shortcut

2003-04-29  John Harper  <>

	Work to add numeric window menu shortcuts to match the rest of
	the system:

	* xc/programs/Xserver/hw/apple/appledri.c,
	xc/programs/Xserver/hw/apple/X11Application.h: setting window
	menu can now specify numeric shortcuts for each window

	* xc/lib/GL/apple/appledri.c, xc/lib/GL/apple/appledri.h
	(XAppleDRISetWindowMenuWithShortcuts): new function

2003-04-28  John Harper  <>

	* Xquartz.plist: added vim, xman and xlogo (#3227682)

2003-04-23  John Harper  <>

	* xc/programs/Xserver/hw/apple/bundle-main.c (define_named):
	check for null h_addr before trying to copy it (may fix

2003-04-18  John Harper  <>

	* xc/lib/X11/lcPrTxt.c (_XTextPropertyToTextList): fixed double
	allocation bug (already fixed in xc HEAD)

	* xc/programs/Xserver/hw/apple/bundle-main.c (make_auth_keys):
	free the display number before returning (#3232717)

2003-04-17  John Harper  <>

	* xc/programs/Xserver/hw/apple/x-list.c (x_list_free_1,
	x_list_prepend): made the x-list allocator thread-safe

	* xc/programs/Xserver/hw/apple/quartz.c (QuartzRunClient):
	launch programs using "$SHELL -i -c 'PROG'" instead of "sh -c
	PROG". This way we will load the user's environment before
	invoking the program (meaning that e.g. fink-installed programs
	can be put in the applications menu without their full paths)

	* open-x11: rewrote to launch things using "open -a X11 PROG".
	This means that the X server will be launched if not already
	running (#3141737)

	* xc/programs/Xserver/hw/apple/darwin.c,
	xc/programs/Xserver/hw/apple/X11Application.h: when asked to
	launch programs before the X server has finished initializing
	itself, push the request on a queue until the X server is ready

2003-04-16  John Harper  <>

	* xc/programs/Xserver/hw/apple/darwin.h,
	xc/programs/Xserver/hw/apple/X11Application.h: added
	-swapAltMeta option and swap_alt_meta default. When true, the
	meaning of the Alt and Meta modifier keys are swapped

	* Xquartz.plist, Makefile: install this file in
	/etc/X11/xserver. It contains the default applications menu

	* xc/programs/Xserver/hw/apple/X11Controller.m: removed
	hardcoded default applications menu

	* xc/programs/Xserver/hw/apple/X11Application.m (prefs_get):
	new method for looking up preferences. If the given key doesn't
	exist in the user's plist, look in /etc/X11/xserver/Xquartz.plist

	* xc/programs/Xserver/hw/apple/X11Application.m: removed

2003-04-15  John Harper  <>

	* xc/lib/GL/apple/dri_driver.c (XAppleDRIUseIndirectDispatch),
	* xc/lib/GL/apple/dri_dispatch.c (XAppleDRIGetIndirectContext):
	marked as __private_extern__

	* xc/programs/Xserver/hw/apple/x-list.h,
	xc/programs/Xserver/hw/apple/x-hash.c: all exported symbols are
	now __private_extern__ to avoid polluting global namespace

2003-04-14  John Harper  <>

	Work to fix #3157501 ( presents quit warning even when
	all windows closed):

	* xc/programs/Xserver/hw/apple/X11Controller.m,
	xc/programs/Xserver/hw/apple/X11Controller.h (set_can_quit):
	new method. Value used by applicationShouldTerminate to decide
	whether to put up a dialog or not

	* xc/programs/Xserver/hw/apple/X11Application.m,
	(X11ApplicationSetCanQuit): new function

	* xc/programs/Xserver/hw/apple/appledri.c: implemented

	* xc/lib/GL/apple/appledristr.h, xc/lib/GL/apple/appledri.h,
	xc/lib/GL/apple/appledri.c: new extension function

2003-04-11  John Harper  <>

	* xc/lib/GL/apple/appledri.h: removed #if
	NeedFunctionPrototypes junk

	* xc/programs/Xserver/hw/apple/Imakefile: #3227677, install in /Applications/Utilities, not /Applications

2003-04-11  John Harper  <>

	Made display-changes work better: (#3210250, #3159228)

	* xc/programs/Xserver/hw/apple/rootless-window.c
	(RootlessResizeWindow): when resizing the root window, don't
	call down to the next ResizeWindow function. The mi/dix code
	isn't able to resize the root window so it just returns
	immediately. So we'll "resize" the root ourselves by updating
	its bounds and the various regions..

	* xc/programs/Xserver/hw/apple/quartz.c (QuartzUpdateScreens):
	after resizing the root paint its background

2003-04-10  John Harper  <>

	* xc/programs/Xserver/hw/apple/X11Controller.m,
	xc/programs/Xserver/hw/apple/X11Controller.h: don't try to
	launch anything until we've finished launching - avoids trying
	to launch the display number..

	* xc/programs/Xserver/hw/apple/quartz.c,

	Moved all xinit code out of the X server and into the launcher
	process where it belongs. Also, by default we now SIGTERM the X
	server when the xinitrc script exits (typically this is when
	the window manager exits). This is the standard xinit
	behaviour. To get the old behaviour (not killing the server),
	do "defaults write xinit_kills_server -boolean
	false". This should fix #3145038

2003-04-09  John Harper  <>

	* xc/programs/Xserver/hw/apple/X11.pbproj/project.pbxproj:
	claim the .x11app file extension

	* xc/programs/Xserver/hw/apple/X11Controller.m: implemented
	application:openFile: delegate method

2003-04-07  John Harper  <>

	* xc/programs/Xserver/hw/apple/rootless.h,
	xc/programs/Xserver/hw/apple/X11Application.h: added support
	for "rooted" operation (by ordering-in a root window beneath
	all other X windows and using high window levels so no other
	windows are visible). It's also possible to enable and disable
	"rootless" operation

	* xc/programs/Xserver/hw/apple/English.lproj/main.nib/: added
	"View" menu with "Toggle Root" and "Enable Rootless" items

2003-04-03  John Harper  <>

	* xc/programs/Xserver/hw/apple/rootless-gc.c: only skip drawing
	on root if it has no RootlessWindowRec structure

	* xc/programs/Xserver/hw/apple/quartz-cursor.h,
	(QuartzIgnoreNextWarpCursor): new function

	* xc/lib/GL/apple/appledri.h: define a fixed set of window
	levels by id, not by value

2003-03-28  John Harper  <>

	* xc/programs/Xserver/hw/apple/rootless-window.c
	(RootlessReorderWindow): if _APPLE_NO_ORDER_IN property is set
	on the window, don't do anything

2003-03-28  John Harper  <>


	* xc/lib/GL/mesa/src/OSmesa/Imakefile: added $(XLIB) to
	REQUIREDLIBS. This is needed to successfully link before libX11
	is installed in /usr/X11R6

2003-03-27  John Harper  <>

	* xc/programs/Xserver/hw/apple/English.lproj/main.nib/: added
	"256 colors" mode to depth control

	* xc/programs/Xserver/hw/apple/darwin.c (DarwinAddScreen):
	disable mixed truecolor/pseudocolor until I can work out how to
	make it work when pc subwindows are inside tc top-level windows

	* Makefile: workaround 3210889 (cpp ignoring symlinked header
	files) by using ditto to create objroot instead of lndir

	* Makefile: merged changes from 4.3 "make World"

2003-03-14  John Harper  <>

	* merged changes from XFree86 4.3.0. Change to disable hinting
	has been lost, so we'll need to look at that..

2003-03-17  John Harper  <>

	* Released: third public beta (0.3)

	* Tagged: X11_BETA_3

2003-03-10  John Harper  <>


	* RELEASE-NOTES: s/direct 3d rendering/direct rendering/

	* xc/lib/GL/apple/dri_driver.c (driCreatePixelFormat): don't
	disable direct rendering if any pixel format can't be created,
	only if all formats fail. This avoids disabling DRI when we
	have a single non-rgba visual (doh)

2003-03-07  John Harper  <>


	* xc/programs/Xserver/hw/apple/x-list.c (list_sort_1): couple
	of minor tweaks

2003-03-06  John Harper  <>

	* xc/programs/Xserver/hw/apple/X11Application.m: added hack to
	replace "0." by "Beta" in version string in about panel

2003-03-04  John Harper  <>

	* xc/config/imake/imakemdep.h: add -traditional to cpp_argv on
	__APPLE__ systems (fixes build breakage)

2003-03-03  John Harper  <>

	* xc/programs/Xserver/hw/apple/appledri.c
	(ProcAppleDRISetWindowLevel): made this actually work

	* xc/programs/Xserver/hw/apple/x-list.c,
	xc/programs/Xserver/hw/apple/x-list.h (x_list_filter,
	x_list_map): two new functions

	* xc/programs/Xserver/hw/apple/x-list.c,
	xc/programs/Xserver/hw/apple/x-list.h (x_list_sort): new
	function, a destructive list sort (it uses merge sort, and so
	is stable)

2003-03-03  John Harper  <>


	* xc/programs/Xserver/hw/apple/appledri.c,
	xc/lib/GL/apple/appledristr.h, xc/lib/GL/apple/appledri.h,
	xc/lib/GL/apple/appledri.c: added SetWindowLevel extension

2003-03-03  John Harper  <>

	Work to support eight-bit PseudoColor visuals concurrently with
	existing TrueColor visuals. Fixes #3146168:

	* xc/programs/Xserver/render/picture.c
	(PictureCreateDefaultFormats): fixed bugs when creating
	pseudocolor formats with large visual ids. Patch sent to Keith

	* xc/programs/Xserver/GL/apple/indirect.c (init_visuals): don't
	delete non-rgb visuals. Instead just pass them through with a
	null glX config

	* xc/programs/Xserver/hw/apple/rootless-window.c: support
	indexed windows

	* xc/programs/Xserver/hw/apple/rootless-window.c
	(RootlessFlushWindowColormap): new function

	* xc/programs/Xserver/hw/apple/rootless-screen.c: wrap colormap
	functions so we know when to update indexed windows

	* xc/programs/Xserver/hw/apple/rootless-common.c
	(RootlessDamageRegion): intersect reported region with the clip
	of the window being drawn in. Now that xp may use client side
	backing stores we shouldn't report modifying something that we
	didn't actually draw in

	* xc/programs/Xserver/hw/apple/rootless-common.c
	(RootlessFlushScreenColormaps, RootlessResolveColormap): new

	* xc/programs/Xserver/hw/apple/darwin.c (DarwinAddScreen):
	always add an eight bit PseudoColor visual

	* xc/programs/Xserver/hw/apple/quartz.c (QuartzAddScreen):
	added support for -depth 8

2003-02-27  John Harper  <>

	* xc/programs/Xserver/hw/apple/rootless-window.c
	(FinishFrameResize): removed unused code

2003-02-27  John Harper  <>

	* xinitrc: s|XINITDIR|/etc/X11/xinit|

2003-02-26  John Harper  <>

	* xc/programs/Xserver/hw/apple/English.lproj/main.nib/: removed
	AboutPanel, About menu item is now connected to NSApp
	orderFrontStandardAboutPanel method

	* xc/programs/Xserver/hw/apple/X11.pbproj/project.pbxproj:
	removed CFBundleVersion string - it appeared in the About
	panel, but was redundant. Perhaps we can use a build version.
	Also added a NSHumanReadableCopyright string

	* xc/programs/Xserver/hw/apple/X11Application.m: override
	orderFrontStandardAboutPanel so it can create a dictionary with
	some custom strings

2003-02-26  John Harper  <>

	* Tagged: FENSTER_SUBMISSION_0_17_2

	* Makefile: fixed last change (doh)

	* Tagged: FENSTER_SUBMISSION_0_17_1

	* Makefile: strip libraries in $(DSTROOT)/usr/lib as well as
	under X11R6 (now that Xplugin lib is installed there)

2003-02-25  John Harper  <>


	* xc/programs/Xserver/hw/apple/English.lproj/InfoPlist.strings, 
	* xc/programs/Xserver/hw/apple/X11.pbproj/project.pbxproj: 

	bumped version to 0.3

2003-02-24  John Harper  <>

	* xc/programs/Xserver/hw/apple/bundle-main.c (main): fixed
	logic that decides the exit value

	* xc/programs/Xserver/hw/apple/darwin-keyboard.c
	(DarwinKeyboardInit): load the keyboard layout seed at startup
	to make sure it's initialized

2003-02-21  John Harper  <>

	* xc/programs/Xserver/hw/apple/darwin-new-keymap.c
	(DarwinReadSystemKeymap): fixed dead key detection in KCHR
	mode. Need to translate key down event to find if it's dead or
	not, and if so then translate the up event to find the actual
	character. Fixes #3172997

	* xc/programs/Xserver/hw/apple/English.lproj/main.nib/:
	connected Command-Q to quit and Command-, to preferences

	* xc/programs/Xserver/hw/apple/X11Controller.m
	(applicationShouldTerminate): before displaying the alert,
	activate the application. Fixes #3177855

2003-02-20  John Harper  <>

	* xc/programs/Xserver/hw/apple/rootless-screen.c
	(RootlessGetImage): clip input rect to bounds of the relevant
	top-level window (XGetImage manpage states that anything
	outside the visible region is undefined. Fixes #3177623 crash

	* xc/config/cf/ changed APPLE_XP_ macro names to
	XPLUGIN_, removed _INCDIR macro, replaced by XPLUGIN_INCLUDE

	* Makefile, xc/config/cf/darwinLib.tmpl,
	xc/lib/GL/GL/Imakefile, xc/lib/GL/apple/Imakefile,
	xc/lib/GL/apple/dri_driver.h, xc/programs/Xserver/Imakefile,
	xc/programs/Xserver/hw/apple/rootless.h: updated for Xplugin
	name changes

2003-02-19  John Harper  <>

	* xc/programs/Xserver/hw/apple/rootless-window.c,
	xc/programs/Xserver/hw/apple/rootless-common.c: updated for xp

	* xc/programs/Xserver/fb/fbpict.c,
	xc/programs/Xserver/fb/fbblt.c: changes for new xp compositing

2003-02-18  John Harper  <>

	* xc/lib/GL/apple/dri_driver.h, xc/lib/GL/apple/dri_driver.c:
	added a "destroyed" bit to the drawable private data, it gets
	set in the garbage collection function when we know the
	drawable has gone. Then when destroying the drawable, only tell
	the X server to destroy the physical surface if we don't think
	it's already been destroyed. This avoids the dri client getting
	an error (and aborting) when the X server can't find the window

	* xc/lib/GL/apple/appledristr.h, xc/lib/GL/apple/appledri.h,
	xc/lib/GL/apple/appledri.c: added a new request
	AppleDRISetFrontProcess that brings the X server frontmost

	* xc/programs/Xserver/hw/apple/appledri.c,
	xc/programs/Xserver/hw/apple/X11Application.h: implement

	* xc/programs/Xserver/hw/apple/darwin.c (ProcessInputEvents):
	moved fake button code (back) inline to this function. Split
	the press and release parts apart so that we get the correct
	event ordering (mod-release, button-press, button-release,
	mod-press), #3174622. Also, don't generate the mod-press if it
	was already physically released

2003-02-17  John Harper  <>

	* xc/programs/Xserver/hw/apple/rootless.h,

	don't let mi create the screen pixmap - it leaves us with an
	incorrectly sized pixmap with an uninitialized data pointer!

	Instead wrap CreateScreenResources and setup our own pixmap to
	be a piece of memory the width of the screen with zero
	rowbytes. Update this whenever the screen dimensions change.
	Fixes #3170754

	* xc/programs/Xserver/hw/apple/quartz-cursor.c
	(QuartzWarpCursor): add in offset of given screen. Fixes

	* xc/programs/Xserver/fb/fbblt.c (fbBlt): when calling
	xp_copy_bytes find the byte addresses of the src and dest, not
	the word addresses. Fixes #3174305
	* xc/programs/Xserver/fb/fbsolid.c (fbSolid): similar change

	* xc/lib/GL/apple/dri_dispatch.h,
	xc/lib/GL/apple/dri_dispatch.defs: added more aliases, we
	should have all gl prefixed in XFree86 4.2 libGL now

	* xc/lib/GL/apple/build-dispatch: output both internal entry
	points and aliases for each item if necessary

2003-02-14  John Harper  <>

	Changes to allow X to build fat:

	* xc/config/cf/ avoid generating any definitions
	specific to the target processor - this will require X to use
	only the macros defined by cpp to work out where it's being
	compiled for

	* xc/include/Xarch.h: for __APPLE__ and __MACH__, define
	__powerpc__ if __ppc__ is defined. Also define byte order

	* xc/programs/Xserver/include/servermd.h: define __powerpc__ if
	__ppc__ is defined

	* xc/programs/Xserver/hw/apple/Imakefile: add DarwinArchEnv
	before pbxbuild to pickup RC_ARCHS settings

	* make-host-def: new script to build a host.def file for
	building fat

	* Makefile (build-xc): use make-host-def to create host.def

2003-02-14  John Harper  <>

	* xc/programs/Xserver/hw/apple/rootless-window.c,
	xc/lib/GL/apple/dri_driver.c: updated for xp renaming

2003-02-13  John Harper  <>

	* xc/lib/GL/apple/dri_dispatch.h,
	xc/lib/GL/apple/dri_dispatch.defs (BindTextureEXT,
	DeleteTexturesEXT): added aliases for these entry-points

	* xc/lib/GL/apple/build-dispatch (strip-args): handle things
	like "void *foo" where the '*' is immediately next to the
	parameter name

2003-02-12  John Harper  <>

	* xc/programs/Xserver/hw/apple/quartz-server.c,

	fixed termination behaviour. X11ApplicationMain and
	X11ControllerMain no longer return, the NSApp delegate defines
	applicationWillTerminate and does everything in there (messages
	the X server thread to exit, then exits itself after ten

2003-02-11  John Harper  <>

	* xc/lib/GL/apple/dri_dispatch.defs,
	xc/lib/GL/apple/dri_dispatch.h (GetColorTableEXT,
	GetColorTableParameterivEXT, GetColorTableParameterfvEXT):
	commented out the definitions causing aliases to be created --
	OpenGL.framework does define stubs for these functions, even
	though it doesn't have dispatch table slots for them, so we
	were shadowing their symbols causing (harmless) compiler

2003-02-11  John Harper  <>

	* xc/programs/Xserver/hw/apple/keysym2ucs.c: removed mapping
	from keysym 0x13a4 to Unicode 0x20ac (EuroSign). As far as I
	can tell there is no keysym 0x13a4, and it blocks the working
	identity mapping in the reversed table

	* xc/programs/Xserver/hw/apple/darwin.c (GetTimeInMillis):
	implement this locally using Microseconds (). Avoids a kernel
	trap to gettimeofday () for every input event we process. Note
	that this is currently using microseconds / 1024, not 1000, so
	we have a 2% error, but it should be good enough..

	* xc/config/cf/ added -DDDXTIME to ServerExtraDefines

2003-02-10  John Harper  <>


	* xc/programs/Xserver/hw/apple/English.lproj/main.nib/: 
	* xc/programs/Xserver/hw/apple/X11.pbproj/project.pbxproj: 

	bumped version strings to 0.2.1

2003-02-10  John Harper  <>

	* Released: second public beta (0.2)

	* Tagged: X11_BETA_2

2003-02-04  John Harper  <>


	* RELEASE-NOTES: updated again


	* RELEASE-NOTES: updated

	* Makefile (install-misc): create relative symlinks for
	/usr/include/X11 and /usr/lib/X11 (and changed the destination
	of the include link, to point to <X11> include directory)

2003-02-03  John Harper  <>

	* xc/lib/GL/apple/build-dispatch,
	xc/lib/GL/apple/dri_dispatch.defs: each entry can only have one
	alias. If a function which doesn't have a CGL vector has an
	alias, don't generate an EXTERN stub

	* xc/lib/GL/apple/dri_dispatch.h,
	xc/lib/GL/apple/dri_dispatch.defs: don't have any duplicate
	entries in generated dri_dispatch.h (i.e. only set each element
	in the CGL dispatch table zero or one times). Generate aliases
	for the functions we were adding incorrectly

	* xc/config/cf/darwinLib.tmpl: link libXfont using
	-flat_namespace since its interface relies on clients being
	able to override some of the functions it defines (similar to
	the problem libXt). Pointed out by Torrey Lyons in email

	* xc/programs/Xserver/hw/apple/ described some more
	options (and defaults)

2003-01-31  John Harper  <>

	* xc/programs/Xserver/hw/apple/English.lproj/main.nib/: text
	changes in prefs panel from Katherine Wenc

	* xc/programs/Xserver/hw/apple/darwin.h,
	xc/programs/Xserver/hw/apple/X11Application.h: added defaults
	for fake buttons modifier strings: fake_button2 and

	* xc/programs/Xserver/hw/apple/darwin-keyboard.c: deleted some
	NX key/modifier translation functions that are no longer used

	* xc/programs/Xserver/hw/apple/darwin.c
	(DarwinForeachLibraryFile): deleted

	* xc/programs/Xserver/hw/apple/English.lproj/main.nib/: fixed
	some typos in prefs panel

2003-01-30  John Harper  <>

	* xc/lib/X11/lcSjis.c, xc/lib/X11/lcJis.c, xc/lib/X11/lcEuc.c:
	merged changes between XFree86 and HEAD. (The changes
	that Toshimitsu Tanaka asked us to add in #3144505.) May allow
	Japanese X11 input methods to work correctly

	* xc/programs/Xserver/hw/apple/darwin.c: maintain a bitmap of
	which keys we've told X are currently down. Use this to release
	all non-modifier keys when X becomes inactive. Also use it to
	keep X's and system's modifiers in sync (I had seen Caps-Lock
	get out of sync in some circumstances with old code)

	* xc/programs/Xserver/hw/apple/X11Application.m: removed
	"saw_key_down" hack

	* xc/programs/Xserver/fb/fbwindow.c,
	xc/programs/Xserver/hw/rootless-window.c: applied Torrey's
	patch to support x/y offsets with fbTile ()

2003-01-29  John Harper  <>


	* xc/programs/Xserver/hw/apple/English.lproj/InfoPlist.strings:
	bumped version number

2003-01-28  John Harper  <>

	* xc/programs/Xserver/hw/apple/X11Controller.m
	(applicationShouldTerminate): implement the NSApplication
	delegate method. Put up an alert panel (unless no_quit_alert
	default is true)

	* xc/programs/Xserver/hw/apple/English.lproj/main.nib/: removed
	Quit and RunProgram panels; set window auto-save names

	* xc/programs/Xserver/hw/apple/X11Application.m,
	xc/programs/Xserver/hw/apple/X11Application.h: when run for the
	first time, check for a ~/.xinitrc file. If one exists, ask if
	the user would like to move it aside allowing the standard
	script to run. Fixes #3154871

	* xc/programs/Xserver/hw/apple/quartz.c (xinit_callback): if
	user has no .xinitrc, look for xinitrc in usr/X11R6/lib/xinit
	before falling back to hardcoded programs

	* xinitrc: new file, the default xinitrc
	* Makefile: install xinitrc in /etc/X11/xinit

	* xc/programs/Xserver/hw/apple/rootless-common.h,
	SetPixmapBaseToScreen macro is now a function called
	TranslatePixmapBase, and the meaning of the x,y arguments have
	been negated. It also ensures 32-bit alignment of the pixmap by
	adjusting the pointer and drawable x position as required

	* xc/programs/Xserver/hw/apple/rootless-window.c: updated
	callers of SetPixmapBaseToScreen

	* xc/programs/Xserver/fb/fb.h: removed my __fbAlignBaseAddress
	change. Use Torrey's method of enabling __fbPixOriginX and
	fixing the alignment in the rootless code

	* xc/programs/Xserver/fb/fbfill.c (fbFill): applied Torrey's
	patch to include src[XY]off

2003-01-27  John Harper  <>

	* xc/programs/Xserver/hw/apple/rootless-screen.c
	(RootlessGetImage): don't crash in fbBlt () when trying to
	GetImage from a window that has no underlying data (e.g. the
	root). Fixes #3147209

	Work to fix #3144995 (CodeTek virtual desktop moves windows
	without X realizing):

	* xc/programs/Xserver/hw/apple/rootless-window.c,
	xc/programs/Xserver/hw/apple/quartz-server.c: added code to
	listen for WINDOW_MOVED events and respond by updating X's idea
	of where the window is. Be sure never to actually move the
	physical window in response to a WINDOW_MOVED event

2003-01-27  John Harper  <>

	* Makefile: create symlinks /usr/include/X11 and /usr/lib/X11.
	Fixes #3140798

	* xc/programs/Xserver/hw/apple/bundle-main.c (main): scan argv
	for the :N display number instead of assuming we always use
	display :0

2003-01-24  John Harper  <>

	* xc/programs/Xserver/hw/apple/darwin.c (ProcessInputEvents):
	also check for keymap update on flags-changed events

	* xc/programs/Xserver/hw/apple/darwin-new-keymap.c
	(DarwinReadSystemKeymap): when reading kchr data, only try
	first 128 keycodes

	* xc/programs/Xserver/hw/apple/darwin-new-keymap.c
	(DarwinReadSystemKeymap): added code to recognize dead keys and
	translate them to their dead_foo keysym

	* xc/programs/Xserver/hw/apple/X11Application.m (activateX):
	create a TSM document that supports full Unicode input, and
	have it activated while X is active (unless using the old
	keymapping files). Fixes the problem that the input menu only
	displays "western-ish" scripts while X is active. Tested by
	selecting Arabic and checking the keymap using xmodmap,
	everything looked sane

	* xc/programs/Xserver/hw/apple/darwin-new-keymap.c
	(DarwinReadSystemKeymap): realized that when using KeyTranslate
	to read kchr resources the returned character is in MacRoman
	encoding, so need to convert it to Unicode. This makes French
	character input exactly match what KeyCaps says it should be

	* xc/programs/Xserver/hw/apple/X11Application.m (sendEvent): 
	changed how app-activate events are handled. Now we never send
	them to appkit or X, but activate X unconditionally and set
	NSApp's bit telling it it's active

	* xc/programs/Xserver/hw/apple/English.lproj/main.nib/:
	reconnect the hide/unhide menu items to their standard outlets.
	Mark X11Controller as the delegate of NSApp

	* xc/programs/Xserver/hw/apple/X11Controller.m: when modifying
	the window menu, replicate all changes in the dock menu

	* xc/programs/Xserver/hw/apple/X11Controller.m: removed hide
	and unhide methods, use the standard NSApplication methods now.
	Implement applicationDidHide and applicationDidUnhide methods
	to message the wm. Fixes all known issues regarding hiding and
	showing (and clicking on the dock icon)

2003-01-23  John Harper  <>

	* xc/programs/Xserver/hw/apple/X11Controller.m (x11_help): new
	method, opens

	* xc/programs/Xserver/hw/apple/English.lproj/main.nib/: added
	"Help/X11 Help" menu item

	* xc/programs/Xserver/hw/apple/quartz-server.c,
	xc/programs/Xserver/hw/apple/X11Application.h: added code to
	handle three new UI preferences: xauth/no-tcp options and color

	* xc/programs/Xserver/hw/apple/English.lproj/main.nib/: added
	above mentioned UI items. (Also split the panel into three tabs
	to accomodate them: Input, Output and Security)

	* xc/programs/Xserver/hw/apple/appledri.c
	(ProcAppleDRICreateSurface, surface_notify): pass the client
	index to the callback, not the pointer. This allows us to be
	safer in the callback, testing if the client still exists. We
	also check for the clientGone bit being set, and if so, don't
	send any events. #3154751

2003-01-22  John Harper  <>

	* xc/programs/Xserver/hw/apple/X11Application.m (send_nsevent):
	ignore any key repeat or key release events unless we saw a
	matching key down first. (Fixes the problem where using
	Command-Q to quit an application can result in "q" events being
	generated by X if it becomes frontmost)
2003-01-22  John Harper  <>

	* xc/programs/Xserver/hw/apple/darwin-new-keymap.c
	(DarwinSystemKeymapSeed): fixed a stupid bug which meant this
	returned a new seed each time

	* xc/programs/Xserver/hw/apple/darwin-new-keymap.c
	(DarwinReadSystemKeymap): in KeyTranslate case, mask out all
	but the bottom eight bits of the returned value

	* xc/programs/Xserver/hw/apple/X11Application.m: added hidden
	"depth" default to control X server color depth

2003-01-21  John Harper  <>

	Work to make X11 keymap follow the system keymap. Removed the
	UI keymap item I'd added last week:

	* xc/programs/Xserver/hw/apple/X11Controller.m,
	xc/programs/Xserver/hw/apple/X11Application.h: added code for
	new sync_keymap option

	* xc/programs/Xserver/hw/apple/English.lproj/main.nib/: added
	sync_keymap checkbox

	* xc/programs/Xserver/hw/apple/darwin.c: added -synckeymap and
	+synckeymap command line options
	(ProcessInputEvents): when needed, check if the system keymap
	has changed each unmodified KeyPress event, and reload it if it

	* xc/programs/Xserver/hw/apple/darwin-keyboard.h,
	xc/programs/Xserver/hw/apple/darwin-keyboard.c: this now just
	chooses whether to use an old style .keymapping file (only if
	the user default "keymap_file" is set) or to read the system
	keymap. Also added code to reload the keymap when requested and
	to build the needed modifier tables from the keymap

	* xc/programs/Xserver/hw/apple/darwin-new-keymap.c: new code to
	convert the current system keyboard layout into a mapping from
	X keycodes to X keysyms. Has to make some leaps of faith in a
	few places to guarantee a usable map (some special keys can't
	be deduced from the system mappings?)

	* xc/programs/Xserver/hw/apple/darwin-old-keymap.c: abstracted
	all the groty code to read .keymapping files into this separate

	* xc/programs/Xserver/hw/apple/keysym2ucs.h,
	xc/programs/Xserver/hw/apple/keysym2ucs.c: functions to convert
	between Unicode characters and X keysyms (and back). Originally
	by Markus G. Kuhn, source code was placed in the public domain

2003-01-20  John Harper  <>

	* Makefile: made it even harder to use outside B&I

	* Makefile: fixed some issues, removed "all" shortcut to, may be confusing with "install" working for the other
	build method..

2003-01-17  John Harper  <>

	* xc/programs/Xserver/fb/fbsolid.c,
	xc/programs/Xserver/fb/fbblt.c, xc/programs/Xserver/fb/fb.h:
	include x-plugin.h only in files where it's needed, not in fb.h

	* xc/programs/Xserver/hw/apple/English.lproj/main.nib/,
	xc/programs/Xserver/hw/apple/X11.pbproj/project.pbxproj: bumped
	version to 0.2

2003-01-17  John Harper  <>

	Work to add UI to set keymap default:

	* xc/programs/Xserver/hw/apple/English.lproj/main.nib/: added
	keymap combo box

	* xc/programs/Xserver/hw/apple/X11Controller.m,
	xc/programs/Xserver/hw/apple/X11Controller.h: hook up the new
	keymap combox box

	* xc/programs/Xserver/hw/apple/X11Application.m
	(X11ApplicationSetWindowMenuCheck): don't autorelease (since we
	don't have a pool in scope)

	* xc/programs/Xserver/hw/apple/X11Application.m,
	(prefs_set_string): new method

	* xc/programs/Xserver/hw/apple/darwin-keyboard.c: locate the
	keymap file in here, instead of in OsVendorInit ()

	* xc/programs/Xserver/hw/apple/darwin.h,
	(DarwinForeachLibraryFile): new function
	(DarwinFindLibraryFile): made extern

2003-01-16  John Harper  <>

	* xc/lib/GL/apple/dri_dispatch.h,
	xc/lib/GL/apple/dri_dispatch.c, xc/lib/GL/apple/build-dispatch:
	updated again, and added the ability to create aliases if
	native gl functions are named differently to glx functions with
	the same semantics

	* xc/lib/GL/apple/dri_dispatch.h,
	xc/lib/GL/apple/dri_dispatch.c, xc/lib/GL/apple/build-dispatch:
	generate glXXX stubs for the functions that are in a normal
	Mesa-derived libGL, but not in OpenGL.framework. In indirect
	mode they marshall as normal, in direct mode they are no-ops

	* xc/lib/Xaw/Vendor.c: removed some meaningless changes I'd
	made and then not reverted totally

	* xc/lib/freetype2/freetype/Imakefile,
	xc/lib/freetype2/freetype/config/Imakefile: removed references
	to InstallFreetype2Library

	* xc/config/cf/X11.tmpl: removed unused InstallFreetype2Library
	definition that I'd added

	* xc/programs/Xserver/hw/apple/appledri.c,
	xc/programs/Xserver/hw/apple/X11Application.h: implemented the
	AppleDRISetWindowMenuCheck request

	* xc/lib/GL/apple/appledristr.h, xc/lib/GL/apple/appledri.h,
	xc/lib/GL/apple/appledri.c: added AppleDRISetWindowMenuCheck
	request, changed the names of a few constants

	* xc/programs/Xserver/hw/apple/dri-surface.h,
	xc/programs/Xserver/hw/apple/dri-surface.c: removed unused code

	* xc/lib/GL/apple/dri_driver.c: added code to recreate surfaces
	that got destroyed before we wanted (e.g. if they were
	reparented out of a window). This doesn't work for apps that
	don't call into glx while running (e.g. glxgears), but it's a
	simple change and should fix most apps

	* xc/lib/GL/apple/appledri.c, xc/lib/GL/apple/appledri.h
	(XAppleDRISetSurfaceNotifyHandler): new function, sets the
	function that will be called with AppleDRISurfaceNotify events,
	instead of hardcoding a function name (that stops appledri.o
	being linked in some cases)

	* xc/lib/GL/apple/dri_driver.c (__driCreateScreen): when first
	called, setup the surface notify event handler

2003-01-15  John Harper  <>

	* xc/lib/GL/apple/dri_driver.c (driMesaDestroyDrawable):
	remember to tell the server to destroy the surface

	* xc/programs/Xserver/hw/apple/x-hash.c (hash_table_modify):
	fixed stupid bug

	* xc/programs/Xserver/hw/apple/quartz-server.c,
	xc/programs/Xserver/hw/apple/appledri.c: listen for the new
	surface events and propagate them to the surface creator.
	This may involve sending them over the wire to DRI clients
	using a new event typep

	* xc/programs/Xserver/GL/apple/indirect.c,
	xc/programs/Xserver/GL/apple/Imakefile: register for surface
	notifications when creating surfaces, use them to invalidate
	surfaces that disappear and update contexts pointing at
	surfaces that changed somehow. Removed both other calls to

	* xc/lib/GL/apple/appledristr.h, xc/lib/GL/apple/appledri.h,
	xc/lib/GL/apple/appledri.c: handle the new SurfaceNotify event
	type. But don't pass it up to the app, call into the DRI driver
	code instead

	* xc/lib/GL/apple/dri_driver.h, xc/lib/GL/apple/dri_driver.c:
	handle surface notify events by invalidating or updating the
	necessary drawable and contexts. Added more code to track where
	contexts are bound to allow this. Removed existing calls to

2003-01-15  John Harper  <>

	* xc/programs/Xserver/GL/apple/indirect.c: catch when the
	surface is destroyed abnormally and unset the surface id field
	in the private data. That way next time attach () is called it
	will try to recreate the surface. This fixes the problem of
	losing surfaces when reparenting windows upwards (not for
	direct rendering, though)

	* xc/programs/Xserver/hw/apple/dristruct.h,
	xc/programs/Xserver/hw/apple/appledri.c: DRICreateSurface and
	DRIDestroySurface now take closures (function,data pair) to
	call when the surface is destroyed abnormally

	* xc/programs/Xserver/hw/apple/appledri.c
	(ProcAppleDRIDisableUpdate, ProcAppleDRIReenableUpdate): use
	_async versions of xp disable update functions

	* xc/programs/Xserver/hw/apple/x-hook.h,
	xc/programs/Xserver/hw/apple/x-hook.c: new utility class

2003-01-10  John Harper  <>

	* xc/lib/GL/apple/dri_driver.c (driMesaSwapBuffers):
	* xc/programs/Xserver/GL/apple/indirect.c (glAquaSwapBuffers): 

	Call xp_update_gl_context () after flushing the context. This
	is needed in case there's only one context and it's never made
	current again (the other place update_gl_context is called)

2003-01-14  John Harper  <>

	* xc/programs/Xserver/fb/fb.h (fbGetDrawable,
	fbGetStipDrawable): ensure that the returned pointers are
	always 32-bit aligned, by adjusting the base address and X
	offset if necessary. This fixes a crash in 16-bit mode when
	trying to access the 32 bit quantity beginning two bytes before
	the start of the backing store

2003-01-13  John Harper  <>

	* xc/programs/Xserver/dix/window.c (MoveWindowInStack): fixed
	bug in change I'd made for rootless server, only call
	RestackWindow function vector if it's non-null

	* xc/programs/Xserver/hw/apple/quartz-cursor.c (load_cursor):
	cursor data should be big-endian

	* xc/programs/Xserver/hw/apple/x-list.c,
	xc/programs/Xserver/hw/apple/x-hash.c: added some assertions to
	check for bad input parameters

	* xc/lib/GL/apple/dri_driver.c: check that the drawHash field
	in the screen private data is initialized before using it.
	Fixes #3143726 (crashing while trying to look up a drawable
	before any have been created)

2003-01-10  John Harper  <>

	* xc/programs/Xserver/hw/apple/darwin.c (ProcessInputEvents):
	when receiving motion events while we're not the foreground
	app, check if the pointer is over one of our windows. If not,
	drop the event on the floor. Goes some way to fixing the
	pointer tracking issues

	* xc/programs/Xserver/hw/apple/rootless-window.c: removed code
	to garbage collect unrealized windows - it breaks minimizing
	windows to the Dock, and in a way that's non-trivial to fix.
	And since the feature was only marginally beneficial in the
	first place..

	* xc/programs/Xserver/hw/apple/X11Application.m,
	xc/programs/Xserver/hw/apple/X11Application.h: load
	darwinKeymapFile variable from "keymap" key in user defaults

	* xc/programs/Xserver/hw/apple/quartz.c: added code to remove
	the menubar rect from the main screen/display

2003-01-09  John Harper  <>

	* xc/programs/Xserver/GL/apple/indirect.c (glAquaCreateContext):
	* xc/lib/GL/apple/dri_driver.c (driCreatePixelFormat): 
	Removed code to turn on vbl syncing of GL flushes

2003-01-07  John Harper  <>

	* Released: first public beta (0.1)

	* Tagged: X11_BETA_1

2002-12-17  John Harper  <>


	* xc/lib/GL/apple/dri_dispatch.c: don't need to include
	<OpenGL/CGLMacro.h> anymore

	* xc/programs/Xserver/hw/apple/rootless-window.c: removed
	reference to <CoreGraphics/blt.h> (unused private header)

	* RELEASE-NOTES: updated

2002-12-17  John Harper  <>


	* xc/programs/Xserver/GL/apple/indirect.c:
	* xc/lib/GL/apple/dri_driver.c (driCreatePixelFormat):

	Set kCGLPFAAlphaSize = 1 when creating pixel formats, this will
	give us the correct alpha size

2002-12-16  John Harper  <>


	* RELEASE-NOTES: updated

	* xc/programs/Xserver/GL/apple/indirect.c: integrated patch
	from Geoff Stahl to create suitable glx visuals on startup,
	instead of using the "fallback" visual configs

	* ACKNOWLEDGEMENTS, Makefile: new file, installed in /usr/X11R6

	* xc/programs/Xserver/Imakefile: when linking Xquartz, move
	libXQuartz.a before fb and postFb libs

	* xc/lib/GL/apple/dri_driver.c (__driMesaRemoveDrawable): check
	return from xp_bind_gl_context ()

	* xc/lib/GL/apple/dri_dispatch.h, xc/lib/GL/apple/dri_dispatch.defs,
	xc/lib/GL/apple/dri_dispatch.c, xc/lib/GL/apple/build-dispatch:
	use offsets into the CGL dispatch table instead of referencing
	the entry points by name. The names may (and do) change between
	OS revisions, but the indices remain the same for binary

	* xc/lib/xtrans/Xtransutil.c (trans_mkdir): if __DARWIN__ is
	defined, disable the five second pauses that happen when
	printing a warning about the directory permissions (since our X
	server isn't running suid, /tmp/.X11-unix will never be owned
	by root, so we always hit a five second delay, but the warning
	normally just goes to a log file anyway..)

2002-12-13  John Harper  <>


	Work to make menuitem key equivalents work under X11:

	* xc/programs/Xserver/hw/apple/English.lproj/main.nib/:
	restored most menu key equivalents, and added an "enable key
	equivalents" preference

	* xc/programs/Xserver/hw/apple/X11Controller.m: added "enable
	key equivalents" prefs code

	* xc/programs/Xserver/hw/apple/X11Controller.m (close_window:,
	minimize_window:, zoom_window:): if X isn't active, send the
	necessary message to the appkit key window

	* xc/programs/Xserver/hw/apple/X11Application.m (sendEvent:):
	send KeyDown events to the menubar's performKeyEquivalent
	method if X11EnableKeyEquivalents is true. If we get a hit,
	swallow the matching KeyUp event

	* xc/programs/Xserver/hw/apple/X11Application.h: added x_active
	method. Added X11EnableKeyEquivalents variable. Added X11App

2002-12-13  John Harper  <>

	* Makefile: install RELEASE-NOTES file as /usr/X11R6/README
	* RELEASE-NOTES: new file

	*, README: new script - handles building and
	installing everything in the correct order
	* Makefile: "all" rule just invokes now

2002-12-12  John Harper  <>

	* xc/programs/Xserver/hw/apple/quartz.c (QuartzUpdateScreens):
	fixed typo of x for y when updating screen origin

	* xc/programs/Xserver/hw/apple/X11Application.m
	(message_kit_thread): call [super dealloc]

	* LICENSE-TEXT: file containing the copyright notice template

	* xc/programs/Xserver/hw/apple/x-list.h,
	xc/programs/Xserver/hw/apple/X11Application.h: updated
	copyright notices

	* xc/programs/Xserver/GL/apple/indirect.c: updated copyright

	* xc/lib/GL/apple/dri_glx.h, xc/lib/GL/apple/dri_glx.c,
	xc/lib/GL/apple/dri_driver.h, xc/lib/GL/apple/dri_driver.c,
	xc/lib/GL/apple/dri_dispatch.c, xc/lib/GL/apple/build-dispatch,
	xc/lib/GL/apple/appledristr.h, xc/lib/GL/apple/appledri.h,
	xc/lib/GL/apple/appledri.c: updated copyright notices

	* xc/lib/GL/apple/dri_dispatch.c (XAppleDRIGetIndirectContext):
	don't crash if can't allocate a dummy CGLContextObj, print an
	error message

	* xc/programs/Xserver/hw/apple/quartz.c (QuartzUpdateScreens):
	call DefineInitialRootWindow () to update the cursor
	constraints among other things

2002-12-10  John Harper  <>


	* xc/programs/Xserver/hw/apple/dristruct.h,
	xc/programs/Xserver/hw/apple/dri-surface.c: store the surface
	key in the DRIDrawablePrivRec, remember to return it even when
	we didn't just create the surface

	* xc/programs/Xserver/GL/apple/indirect.c (attach): 
	* xc/lib/GL/apple/dri_driver.c (__driMesaRemoveDrawable): only
	update the context when we didn't bind it

	* xc/programs/Xserver/GL/apple/indirect.c: record the id of
	the bound surface in the __GLcontextRec structure. Then when
	attaching a context to a drawable, check if it's being
	reattached to a different surface

2002-12-09  John Harper  <>


	* xc/programs/Xserver/hw/apple/English.lproj/main.nib/:
	disabled Run menu item for now, set version number in about box
	to 0.1

	* Moved xc/programs/quartz-wm to top-level; fixed Makefile

	* xc/lib/xaw/Vendor.c: removed the hacks to avoid generating
	duplicate symbols, they were what was causing xterm's focus
	model to be broken. Also, libXt is always built with
	-flat_namespace anyway..

	* xc/programs/Xserver/hw/apple/quartz.c (xinit_callback): spawn
	an xterm process as well as the wm if no .xinitrc

	* Makefile (build-src-xc): remove the symlink tree under
	programs/Xserver/hw/apple and replace it with a physical copy
	of the data. Need this to prevent pbxbuild installing the
	symlinks themselves, not the files they point to

	* xc/programs/Xserver/GL/apple/indirect.c: fixed a couple more
	bugs (including the stupidity that prevented more than one
	indirect client to render correctly at once)

	* xc/programs/Xserver/hw/apple/dri-surface.c
	(DRIDestroySurface): check if the drawable private data is
	non-null before trying to unref it

2002-12-09  John Harper  <>

	* xc/lib/GL/apple/appledristr.h, xc/lib/GL/apple/appledri.h,
	xc/lib/GL/apple/appledri.c: split up ControllerNotify events
	into three event types

	* xc/programs/Xserver/hw/apple/quartz.h,
	xc/programs/Xserver/hw/apple/X11Application.m: split up
	ControllerNotify events into three event types

	* xc/programs/Xserver/hw/apple/rootless-gc.c: arcs were broken

	* xc/programs/Xserver/hw/apple/rootless-common.c: some changes
	to how we reenable updates and reorder windows

	* xc/programs/Xserver/hw/apple/dri-surface.c
	(DRICreateSurface): fixed a bug where we could free the surface
	but not return false when failing to initially configure a
	surface (this meant that the freed data structure was left
	attached to the window)

2002-12-06  John Harper  <>

	* xc/programs/Xserver/GL/apple/indirect.c:

	Removed some redundant code. Remembered that we don't care
	about window dimensions here, dri-surface.c takes care of all
	that. Also, explicitly specify whether attaching or detaching,
	instead of testing if the rect is empty or not. This fixes the
	bug where glblur doesn't show up until its window is moved
	(happens because when it's created the gl window has size 0x0)

2002-12-06  John Harper  <>


	* xc/programs/Xserver/hw/apple/make-seg-addr-table,
	xc/programs/Xserver/hw/apple/seg_addr_table: deleted

	* xc/programs/Xserver/hw/apple/darwin-input.c
	(DarwinEnqueueEvent): coalesce adjacent MotionNotify events

	* xc/config/cf/darwinLib.rules: -install_name should refer to
	library with the full version number, not just the major number

	* xc/config/cf/, xc/config/cf/darwinLib.rules

	* xc/programs/Xserver/hw/apple/rootless-window.c
	(RootlessReorderWindow): handle unrealized windows that have
	frames; handle the window above the one being reordered having
	a reorder pending

	* xc/programs/Xserver/hw/apple/rootless-window.c
	(RootlessUnrealizeWindow): reenable update

	* xc/programs/Xserver/hw/apple/rootless-common.c
	(RootlessDisableUpdate): don't disable update if window isn't

2002-12-06  John Harper  <>

	* xc/programs/Xserver/hw/apple/rootless-window.c,

	Use _async functions where possible

	* xc/programs/Xserver/hw/apple/quartz-server.c (event_handler):
	changed type to match xp change

	* xc/programs/Xserver/hw/apple/darwin-input.c: moved the calls
	to read () and write () outside the mutex-protected sections

2002-12-05  John Harper  <>


	* xc/programs/Xserver/hw/apple/English.lproj/InfoPlist.strings:
	updated short version name

2002-12-04  John Harper  <>


	* xc/programs/Xserver/hw/apple/X11Application.m
	(X11ApplicationMain): disabled debugging code

	* xc/programs/Xserver/hw/apple/X11Application.m (send_nsevent):
	added code to translate NS scrollwheel events to clicks on
	buttons 4 and 5

	* Makefile, make-pkg-lists: install open-x11 in /usr/bin

	* open-x11: first attempt at the script to launch X programs
	with the correct environment

2002-12-04  John Harper  <>

	* xc/config/cf/, xc/config/cf/Imake.tmpl,
	xc/config/cf/, xc/doc/specs/Xext/,

	Applied 4.2.1-mit-shm-security.patch from

2002-12-04  John Harper  <>

	* xc/programs/Xserver/hw/apple/Imakefile: install in
	/Applications not /usr/X11R6/Applications (unless
	NothingOutsideProjectRoot is set)

	* make-pkg-lists: new script, scans a root and creates four
	lists of files and directories, one for each package

	* xc/programs/Xserver/hw/apple/rootless-window.c
	(RootlessCollectWindows): added code to garbage collect
	unmapped windows after they've been inactive for a minute or so

	* Makefile: remembered to install X manual pages

2002-12-04  John Harper  <>

	* xc/programs/Xserver/hw/apple/rootless-window.c,

	cleaned up code structure a bit

2002-12-03  John Harper  <>


	* Makefile:
	* xc/config/cf/darwinLib.tmpl, xc/config/cf/ 

	build fixes. Also revert to building shared libfreetype2 (avoid
	bincompat issues)

2002-12-03  John Harper  <>

	* xc/programs/Xserver/hw/apple/bundle-main.c: adapted large
	chunks of code from xdm to setup Xauthority file before
	spawning the X server, then pass "-auth FILE" to the X server.

	If for some reason the Xauthority file can't be updated, then
	the X server is started without any authentication, but with
	the "-nolisten tcp" option. (Note that there are user defaults
	controlling this in the plist, nolisten_tcp and
	no_auth. The second disables auth)

	* xc/programs/Xserver/hw/apple/rootless-screen.c,
	xc/programs/Xserver/hw/apple/rootless-common.h: removed the
	sliding flush throttle, it made some things (e.g. smooth
	scrolling) to ugly. Now we flush in the block handler again,
	but only if 10ms have passed since the last flush (basically
	this means, try to flush just greater than 60Hz)

	* xc/programs/Xserver/hw/apple/quartz.c (do_exec): no longer
	redirects input or output

2002-12-02  John Harper  <>

	* xc/programs/Xserver/hw/apple/rootless-screen.c: reduced
	REDISPLAY_MAX_DELAY from 40 to 30ms. (which means that we
	should never intentionally have a frame rate less than 30fps.
	With the max delay at 40, scrolling could look very jittery)

2002-12-02  John Harper  <>

	* xc/config/cf/X11.tmpl: added InstallFreetype2Library
	definition, defaults to value BuildFreetype2Library

	* xc/config/cf/ set InstallFreetype2Library to NO

	* xc/lib/freetype2/Imakefile, freetype/Imakefile,
	freetype/cache/Imakefile, freetype/config/Imakefile,
	freetype/internal/Imakefile: if InstallFreetype2Library is set
	to NO, then don't install anything

2002-12-02  John Harper  <>

	* xc/lib/Xft/xftglyphs.c (XftGlyphLoad): pass
	FREETYPE_LOAD_NO_HINTING to FT_Load_Glyph (). Turns off (auto-)
	hinter. So we're now using unhinted rendering throughout

	* xc/lib/Xft/Imakefile: include frameworks necessary for
	unshared freetype

	* xc/lib/Xft/XftConfig.cpp: add /Library/Fonts and
	/System/Library/Fonts to Xft's default font path

	* xc/lib/freetype2/Imakefile: turn on use of ftmac.c code to
	load fonts from Macintosh style font files

	* xc/extras/freetype2/src/base/ftmac.c (file_spec_from_path):
	changed to use FSPathMakeRef () then FSGetCatalogInfo ()
	instead of constructing the FSSpec by hand (which doesn't work
	with POSIX paths?)

	* xc/extras/freetype2/include/freetype/config/ftoption.h: turn
	off bytecode interpreter (i.e. hinting)

	* xc/config/cf/ don't build a shared libfreetype,
	only static, to avoid conflicting with other installations

2002-12-02  John Harper  <>

	* xc/programs/Xserver/dix/window.c,

	if ROOTLESS is defined, XYToWindow () checks rootlessUnhittable
	window bit, if set it will never choose that window (used to
	avoid offscreen windows screwing up hit-testing)

	Also, when configuring stacking order, always call through to
	ddx, even if the ordering didn't change. This allows the
	rootless code to ensure that a raised window is on top of _all_
	windows, not just those owned by X

	* xc/programs/Xserver/include/windowstr.h (WindowRec): added
	rootlessUnhittable bit when ROOTLESS is defined

2002-12-02  John Harper  <>

	* xc/lib/GL/apple/appledri.h: removed BringOneToFront event,
	added CopyToPasteboard event

	* xc/programs/Xserver/hw/apple/rootless-window.c: fixed some
	bugs, set new rootlessUnhittable bit in the dix window
	structure when a window is offscreen

	* xc/programs/Xserver/hw/apple/rootless-gc.c,
	xc/programs/Xserver/hw/apple/rootless-window.c: don't create
	physical windows for root windows; never try to draw on root

	* xc/programs/Xserver/hw/apple/rootless-common.h
	(RootlessWindowRec): two new fields, is_offscreen and
	* xc/programs/Xserver/hw/apple/rootless-window.c
	(RootlessNativeWindowStateChanged): update new properties

	* xc/programs/Xserver/hw/apple/quartz-server.c: listen for xp

	* xc/programs/Xserver/hw/apple/quartz-cursor.h,
	xc/programs/Xserver/hw/apple/quartz.c: reload cursor when X
	becomes active. But use different code to what XDarwin does,
	since that didn't seem to work too well for me

	* xc/programs/Xserver/hw/apple/darwin.h,
	xc/programs/Xserver/hw/apple/darwin-input.c: added a new input
	queue abstraction layer. Means we can call SetInputCheck and
	avoid DIX polling for events when there aren't any available
	(which totally kills performance of some x11perf NoOperation

	* xc/programs/Xserver/hw/apple/darwin-keyboard.c: made
	Left-Option key generate Alt_L keysym, not Mode_switch (will
	this cause problems? If so we should probably put Mode_switch
	somewhere else..)

	* xc/programs/Xserver/hw/apple/X11Application.m: minor
	activation changes

	* xc/programs/Xserver/hw/apple/quartz-pasteboard.h,
	xc/programs/Xserver/hw/apple/X11Application.h: removed
	pasteboard code, not handled by the X server any longer. Hook
	Edit/Copy menuitem's last responder to a ControllerNotify event

	* xc/programs/Xserver/hw/apple/X11Controller.m: fixed some bugs
	in the Applications menu implementation

2002-12-02  John Harper  <>

	* xc/programs/Xserver/fb/fbpict.c: updated for xp renaming

2002-11-27  John Harper  <>

	* xc/programs/Xserver/hw/apple/quartz.c,

	* xc/programs/Xserver/hw/apple/English.lproj/main.nib/objects.nib,

	* xc/programs/Xserver/hw/apple/X11.pbproj/project.pbxproj: 

	Working on the front-end (i.e. menubar).

	Connected preferences dialog and added "use sysbeep" option.
	Added "Applications" menu. Has an editable list of apps to run,
	and a "Run..." item to run an arbitrary program (seems to have
	issues the second time you open it?)

	Preferences now get saved to the plist

	Some improvements to the schizophrenic appkit vs x11 focus

	Implemented menu auto-validation protocol for X11 and Window
	menus (greys out certain items if no client has selected our
	ControllerNotify events)

2002-11-26  John Harper  <>

	* xc/programs/Xserver/hw/apple/quartz.c (quartzUseSysBeep): set
	to true now

2002-11-26  John Harper  <>

	* Makefile: first attempt at a B&I compliant top-level makefile
	for the project. Doesn't allow building fat. (But that would
	take more time than I have to spend on it, if it's even

	* xc/config/cf/ don't prebind libraries by default;
	added APPLE_XP_LIBDIR variable

	* xc/programs/Xserver/Imakefile, xc/lib/GL/GL/Imakefile: use

2002-11-26  John Harper  <>

	* xc/programs/Xserver/hw/apple/X11.icns: new icon, fixes

	* xc/programs/Xserver/hw/apple/rootless-gc.c: updated for xp

	* xc/programs/Xserver/fb/fbsolid.c,
	xc/programs/Xserver/fb/fbblt.c: updated for xp changes

	* xc/programs/Xserver/hw/apple/rootless-window.c
	(RootlessCopyWindow): only do xp_scroll_window () when the area
	we're scrolling is over the threshold. (Scrolling has high
	enough latency that it can kill our performance when moving
	lots of little windows)

2002-11-25  John Harper  <>

	* xc/programs/Xserver/hw/apple/rootless-window.c,

	Don't redisplay everything in the block handler. The problem
	with that is that new input often comes in before the flush
	finishes, which means that we get blocked when locking the
	window before drawing.

	So I'm experimenting with adding a sliding delay between
	marking a window damaged and flushing it. It definitely speeds
	up xterm scrolling, but may make things feel a little jerky..

	* xc/programs/Xserver/hw/apple/rootless-picture.c:

	Added back the code to choose optimized fbComposite functions
	for various src/dst/mask combinations (Performance totally
	loses otherwise, and so far I've not found anything that's
	broken. But I also added a hack to prevent fb clearing
	destination alpha)

	* xc/programs/Xserver/fb/fbpict.c
	(fbCompositeSolidMask_nx8x8888): callout to xp_composite_bytes
	when possible
	(fbCompositeSrcAdd_8000x8000): be branchless, is faster

	* xc/programs/Xserver/fb/fbblt.c: updated for xp changes

2002-11-25  John Harper  <>

	* xc/programs/Xserver/fb/fbsolid.c,
	xc/programs/Xserver/fb/fbblt.c, xc/programs/Xserver/fb/fb.h,

	Use xp copy/fill functions when possible (e.g. when the alu op
	is GXcopy, when the planemask is all ones, and when there's no
	start/end masks)

	* xc/programs/Xserver/hw/apple/rootless-gc.c:

	Drawing optimizations - when we have to draw through a
	planemask that isn't all ones (i.e. 32 bit mode), temporarily
	set it back to all ones when we know that's safe (that way, the
	fb code can often take a faster path)

	Combining this with the above fb optimizations increases the
	speed of many operations by a factor of two or more

	* xc/programs/Xserver/hw/apple/x-list.h,

	* xc/programs/Xserver/hw/apple/English.lproj/main.nib/objects.nib,

	Use the xp layer. Removed the rootless-aqua abstraction layer,
	since that's all done by xp now, removed the RootlessFrameRec
	abstraction, since it's not doing anything useful anymore

	Also, listen for display change notifications and do something
	useful afterwards. That isn't using RandR yet, instead it just
	refreshes the pseudoramiX screen information and sends a
	ConfigureNotify event to the root window. And it only works if
	Xinerama is active. It may be easier to use RandR in XF 4.3

	* xc/programs/Xserver/GL/apple/indirect.c,

	Use the xp layer

	* xc/lib/GL/apple/dri_driver.h, xc/lib/GL/apple/dri_driver.c,
	xc/lib/GL/apple/appledristr.h, xc/lib/GL/apple/appledri.h,
	xc/lib/GL/apple/appledri.c, xc/lib/GL/apple/Imakefile: 

	Use the xp layer, removed some extension functions that aren't
	required anymore

2002-11-25  John Harper  <>

	* ChangeLog: now we have a single source root, combining all
	lower-level ChangeLogs into one file at the top-level. Original
	files follow:

== programs/Xserver/hw/apple ==

2002-11-22  John Harper  <>

	* Imakefile: install under $(DESTDIR)

2002-11-21  John Harper  <>

	* rootless-gc.c (accelPolyFillRect): include window border
	width when filling, fixes drawing glitches with twm (and other
	window managers that don't set border width to zero)

	* rootless-window.c (StartFrameResize): fixed two crashers
	reported by Dave Zarzycki during resizing under twm. One was
	caused by including border width twice in frame dimensions, one
	was caused by copying the resize intersection from the
	temporary pixmap into the destination window while the window
	pixmap is still pointing at its previous position

	* quartz.c (QuartzInitOutput): initialize
	orig_noPanoramiXExtension when serverGeneration == 1, not 0

	* X11Application.m (X11ApplicationPaste, X11ApplicationCopy):
	create temporary autorelease pools to avoid leaking objects

	* quartz.c: when xinit'ing, don't exec .xinitrc, run it with
	the Bourne shell (which is what xinit actually does)

	* quartz.c: when spawning xinit, if that fails fallback to the
	default action (running the window manager)

2002-11-20  John Harper  <>

	* rootless-window.c, rootless-common.h, rootless-common.c,
	rootless-aqua.c: fixed shape window code to pass a null shape
	if the window isn't shaped, this makes it easier to remove the
	clip shape from the window when necessary (and to avoid
	creating one)

	* quartz-pasteboard.h, quartz-pasteboard.c, darwin.c,
	X11Application.m, X11Application.h: hooked up XDarwin code to
	swap text between cocoa pasteboard and X11 CUT_BUFFER0. I think
	we really want to proxy requests for the primary selection on
	the fly, but this will do for now..

	* X11Application.m (send_nsevent): mask out any mouse button
	flags unless we earlier sent a matching ButtonPress event to X.
	Also, work around bugs in appkit when we get ButtonDown but no
	ButtonUp (e.g. when clicking on menubar)

	* rootless-aqua.c: put a pthread_mutex around the window_hash
	table, then lock when modifying it
	(XKnowsWindowNumber): new function, called from the appkit
	thread to check if X knows about a window, locks the mutex

2002-11-19  John Harper  <>

	* darwin.c (post_keypointer_event, DarwinUpdateModifiers):
	handle caps lock separately from the other modifiers, since it
	needs to be both pressed and released each time

	* quartz.c: use public CGDirectDisplay instead of private
	CGSDisplay functions

2002-11-18  John Harper  <>

	* rootless-aqua.c, quartz.c, quartz-server.c, quartz-common.h,
	darwin.c, bundle-main.c, X11Application.m: rewrote event
	handling code to sit on top of NSEvent directly, instead of
	using the lower-level CGSEventRecord. Also, convert to xEvent
	form before sending down the pipe

	* seg_addr_table, make-seg-addr-table: support for prebinding X
	libraries and applications. make-seg-addr-table looks at the
	shared libraries in /usr/X11R6/lib and generates the
	seg_addr_table file from their sizes

2002-11-18  John Harper  <>

	* X11Controller.m, X11Controller.h, X11Application.m,
	X11Application.h: lots of work to connect the ui elements.
	Window menu now works fully (except for marking the focused
	window, need another extension for that)

	* rootless-common.c (RootlessRedisplay): enable update in all
	windows before blocking (sometimes we'd hit the one second
	timeout, which isn't acceptable)

	* quartz.c (QuartzXServerReady): set up background event
	handling here now (doesn't seem to work though?)

	* quartz-server.c: don't use CGS notifications to listen for
	events, everything goes through [NSApplication sendEvent:] now

	* darwin.c: ignore flags set to ~0 in events (means unset).
	Handle the UI events, by sending them to whoever is selecting
	ControllerNotify events. Don't unfocus windows when X is
	deactivated, wm will do that

	* aqua-common.h, rootless-aqua.c (AquaSetWindowShadowStyle):
	new function

	* appledri.c: Added SetWindowShadowStyle, SelectInput,
	SetWindowMenu functions. SelectInput causes ControllerNotify
	events to be sent

	* x-list.h, x-list.c (x_list_nth): new function

2002-11-15  John Harper  <>

	* quartz-server.c, quartz-common.h, X11Controller.m,
	X11Application.m, X11Application.h, Imakefile: more changes.
	Subclass NSApplication so we catch events (currently we catch
	too many though)

	* ui-thread.c, quartz-shared.h, quartz-server.c,
	quartz-common.h, darwin.c, X11Controller.m, X11Controller.h,
	Imakefile, English.lproj, X11.pbproj:

	Ditched the Carbon front end. Replaced it with AppKit (which I
	understand better). Hooked up quit confirmation dialog using IB

2002-11-15  John Harper  <>

	* dri-surface.c: check for at least cg 1.157.11 before enabling
	direct rendering

	* quartz-server.c: use XDarwin's hack of running the X server
	on the secondary thread; Carbon event loop binds itself to
	whichever thread it's initialized on, which we have no control
	over when prebound

2002-11-15  John Harper  <>

	* quartz-server.c (event_handler_thread): work around typos in

	* rootless-aqua.c: use a hash to store the window-id -> winrec
	mapping, not a list

	* x-hash.h, x-hash.c: basic hash table class

2002-11-14  John Harper  <>

	* ui-thread.c, rootless-window.c, rootless-screen.c, quartz.c,
	quartz-shared.h, quartz-server.c, quartz-common.h, darwin.c,
	bundle-main.c, Imakefile, .cvsignore, English.lproj,

	Created an that launches the Xquartz server with the
	correct arguments to make it put up a menu bar (through
	Carbon), and to do what xinit normally does

	(There are still some issues still to be sorted out with this,
	and currently none of the menubar items are connected to

2002-11-14  John Harper  <>

	* rootless-aqua.c, dri-surface.h, dri-surface.c, aqua-common.h,
	appledri.c: added AquaGrantAccess () function. Allows
	DRICreateSurface to give window access to the client (who must
	now specify their connection id)

2002-11-13  John Harper  <>

	* rootless-aqua.c (window_notification_handler): don't respond
	to kCGSWindowDidChangeOrder notifications, there's a danger
	that we can trigger a feedback loop, and it doesn't really do
	anything useful anymore anyway

	* appledri.c: removed RaiseWindow extension

2002-11-12  John Harper  <>

	* rootless-aqua.c (AquaCreateFrame): don't set
	PointerEventsAvoidCPS window tag. It wasn't doing anything
	anymore (since we have a pretty standard focus model now, with
	the X server owning the windows)

	* rootless-aqua.c (AquaCreateFrame): don't mark windows as
	shared-writable. We don't need it anymore, and it's better for
	testing (with Jaguar features only)

	* rootless-aqua.c, dri-surface.c, dri-frame.c, aqua-common.h,
	appledri.c: added XAppleDRIRaiseWindow for until the X server
	knows to always raise windows. Also changed AquaGetNativeWindow
	to take a CREATE parameter

2002-11-12  John Harper  <>

	* now refers to Xquartz

2002-11-12  John Harper  <>

	* rootless-window.h, rootless-window.c, rootless-screen.c,
	rootless-gc.c, rootless-common.c, rootless-aqua.c, quartz.h,
	quartz.c, quartz-server.c, quartz-region.c,
	quartz-pasteboard.c, quartz-cursor.c, quartz-common.h,
	quartz-client.h, quartz-client.c, quartz-audio.c, dristruct.h,
	dri-surface.c, dri-frame.c, darwin.h, darwin.c,
	darwin-keyboard.c, darwin-clut8.h, aqua-common.h, appledri.c,

	Gratuitous file renaming. Also removed 8bit display code since
	we'll never use it

2002-11-12  John Harper  <>

	* rootlessAqua.c, dristruct.h, dri.h, dri-surface.h,
	dri-surface.c, dri-frame.h, dri-frame.c, dri-decor.h,
	dri-decor.c, darwin.c, aquaCommon.h, appledri.c, Imakefile,

	Lots of changes. Moved aqua frame drawing code into AppleDRI
	server extension (ugh, temporary, but needed for now). Moved
	DRI extension code here instead of GL/apple since it makes more
	sense (and isn't GL specific)

2002-11-11  John Harper  <>

	* rootlessAqua.c, aquaCommon.h (AquaMarkUpdated): mark that a
	window has updated its contents, and updates should be enabled
	if they were disabled

2002-11-06  John Harper  <>

	* rootlessWindow.h, rootlessWindow.c, rootlessScreen.c,
	rootlessCommon.h, rootlessAqua.c, rootless.h: 

	Added code to handle ReparentWindow requests when the window
	has a frame and isn't top-level. (Though we can only do it if
	its new top-level parent doesn't already have a frame). we need
	to do this in case it has surfaces attached (and thus the
	client knows the window/surface ids, and can't let go of them)

2002-11-06  John Harper  <>

	Support for DRI:

	* rootlessWindow.c, rootlessAqua.c, rootless.h: added
	RealizeFrame and UnrealizeFrame function vectors. Allows the
	frame to be created before the window is actually realized
	(which is sometimes necessary for DRI)

	* rootlessAqua.c (AquaGetNativeWindow): new function

	* rootlessWindow.c (RootlessFrameForWindow): added a second
	arg, CREATE. If set a frame will br created if none exists (but
	it won't be ordered in)	

	* darwin.c (InitOutput): call AppleDRIExtensionInit ()

	* quartz.c: call DRIScreenInit () and DRIFinishScreenInit ()

2002-11-04  John Harper  <>

	* rootlessWindow.c: more resize work, only do partial copies
	when top-left weighting and dimensions are changing size in
	different directions

2002-11-04  John Harper  <>

	* rootlessWindow.c (StartFrameResize, FinishFrameResize):
	optimization to avoid taking a temporary copy of the window
	backing store. If both dimensions are either getting larger or
	getting smaller, we can just use the window backing store as
	the gravity repair source (currently, only if UpperLeft
	weighting is chosen). If dimensions are getting smaller we put
	off resizing the physical window until after gravity repair is

2002-11-01  John Harper  <>

	* rootlessAqua.c (AquaDestroyFrame): don't leak memory

	* rootlessWindow.c (StartFrameResize): fixed small bug in last

2002-11-01  John Harper  <>

	* rootlessWindow.c: don't use vm_copy () to snapshot window
	backing store for gravity fixup (causes window server to page
	too much when it resizes the backing store with weighting).
	Also, try to choose a CG weighting that will preserve the bits
	of the window that aren't moving (e.g. top-left area when
	resizing bottom-right)

	* rootlessAqua.c, rootlessAqua.h (AquaStartResizeFrame): now
	takes a WEIGHT parameter

	* rootlessAqua.h, rootlessAqua.c, quartzServer.c,
	quartzCommon.h, quartz.c, pseudoramiX.h, pseudoramiX.c,
	darwin.c, aquaCommon.h: cleaned up screen initialization, made
	Xinerama stuff actually (mostly?) work

	* rootlessAqua.c (AquaReshapeFrame): use CG clip shape to
	implement X's bounding shape (was using window shape). This is
	probably more correct, and works better in practice

2002-10-30  John Harper  <>

	* rootlessAqua.c (unlock_window): only reenable updates when
	something actually gets flushed, not just when the FLUSH
	parameter is true (means fewer updates when resizing)

2002-10-28  John Harper  <>

	* rootlessWindow.c (RootlessCreateWindow): set property
	_CG_SCREEN_ORIGIN on each root window to point to the origin of
	the screen in global CG coordcdinates

2002-10-28  John Harper  <>

	* rootlessAqua.c, aquaCommon.h: removed code to read and use
	_CG_WINDOW_HINTS property

	* darwin.c (ProcessInputEvents): any time we receive a button
	down event, set ourselves as the frontmost process. Also,
	listen for AppActivated and AppDeactivated events (currently we
	only do something on the latter, clearing the X key focus)

	* darwin.c (ProcessInputEvents): call CPSSignalAppReady () the
	first this function is called

	* darwin.c (post_keypointer_event): synthesize MotionNotify
	events if the current event has a different pointer location to
	what we last told X

	* quartzServer.c (event_handler_thread): call
	CPSEnableForegroundOperation () on our psn

	* rootlessAqua.c: don't try to create multiple psns, CPS
	doesn't really support it right now. Set PointerEventsAvoidCPS
	tag on windows

	* rootlessAqua.c (AquaDisplayInit): in non-Xinerama mode, fixed
	to return the number of active displays, not the total number
	of displays

2002-10-24  John Harper  <>

	* rootlessGC.c (RootlessValidateGC): added back the hack to set
	drawable->depth to bpp (it worksaround an fb "feature")

	* rootlessAqua.c (AquaScreenInit): fixed bug I introduced. Was
	dividing bpp by 3, not the color depth

2002-10-24  John Harper  <>

	* quartzCursor.c: X11 ARGB cursors are premultiplied

2002-10-18  John Harper  <>

	* rootlessAqua.c: added code to adapt to window depth
	mismatches (because CGSNewWindow always creates windows with
	the depth of the default display, which may or may not be what
	the X window needed. Being gratuitous, it also adapts to a
	window's depth changing between calls to CGSLockWindowRectBits)

	* quartz.c (QuartzProcessArgument): support -depth argument

	* rootlessAqua.c (AquaScreenInit): implement the -depth option,
	if nothing specified, defaults to depth of main display

	* darwin.c: tidied up option listing

	* aqua.h (AquaAlphaMask): hard code this, 32bpp -> 0xff000000,
	everything else -> 0. Before it masked out the top four bits in
	16bpp mode!

	* rootless.h (RootlessFrameRec): don't store depth and bpp here

	* rootlessWindow.c, rootlessGC.c, rootlessCommon.c: updated for
	other changes

2002-10-17  John Harper  <>

	* darwin.c: rewrote event translation and mouse button faking
	code to be more logical. Should hopefully fix the intermittent
	modifier problems I was seeing

	* quartzShared.h: removed most of the application-defined
	events, since they weren't being used anywhere

2002-10-16  John Harper  <>

	* rootlessAqua.c: read and cache _CG_WINDOW_HINTS property when
	the window is realized. Set _CG_WINDOW_PSN property as well as
	_CG_WINDOW_ID on top-level windows

	* rootlessAqua.c: use window bounds seed to try to ignore
	move/resize notifications we already know about

	* quartzCommon.h (DEFINE_ATOM_HELPER): new macro

	* quartzClient.c (quartz_client_register_window): allow app
	flavor to be passed in, return psn

	* aquaCommon.h: define format of _CG_WINDOW_HINTS property,
	replaces _CG_EVENT_DELEGATE, also includes CPSAppFlavor field

	* darwin.c (ProcessInputEvents): don't need to read properties
	anymore, data is cached in AquaWindowRec object

	* fakeBoxRec.h: removed, no longer needed

2002-10-15  John Harper  <>

	* rootlessWindow.c, rootlessCommon.h, rootlessCommon.c,
	rootlessAqua.c, rootless.h: use CGSBoundingShape to record
	damaged window areas instead of X11 region code. This is more
	efficient when doing lots of updates (e.g. sampling a program
	that draws continuously, I originally saw RootlessDamageBox ()
	get 92 samples out of 500, while the new code only got 26
	samples in that function)

	* quartzRegion.c: new file. Has the code to convert from X11
	region representation to CG. Currently has to use a method with
	complexity O(N^2), but also contains untested linear code (that
	needs access to internal CG shape details)

2002-10-14  John Harper  <>

	* rootlessAqua.c: register for CG window notifications, then
	use them to sync X's model of its windows with their actual
	configuration (since that may be changed behind its back)

	* rootlessWindow.c (StartFrameResize): added ifdef'd code to
	use vm_copy () when snapshotting window contents for gravity

	* quartzServer.c (QuartzRegisterNotifyProc,
	QuartzDispatchNotification): added a mechanism to transfer CGS
	notifications from the event thread to the X server thread

2002-10-14  John Harper  <>

	* rootlessAqua.c (AquaPolyFillRect): set alpha=255 when filling
	in 32bpp windows. Also, handles 8bpp now

2002-10-11  John Harper  <>

	* darwin.c: if _CG_EVENT_DELEGATE property is set on the top
	level X window corresponding to the CG window receiving an
	event, use it to forward the CG event somewhere. The event then
	filters through the usual X mechanisms. The property has format

	* rootlessAqua.c, aquaCommon.h: track all allocated cg windows,
	new function AquaFindFrame () to find a window record given a
	window id

2002-10-11  John Harper  <>

	* rootlessAqua.c (AquaCreateFrame, AquaDestroyFrame): make CG
	window shared writable, and set X property _CG_WINDOW_ID to
	point to it

	* quartzServer.c (event_handler_thread): include up to 64
	events in each write into the pipe

2002-10-10  John Harper  <>

	* application-services.h: removed this header file, just
	include CG headers directly to avoid namespace issues that had
	to be worked around

	* aquaPicture.c: backported to xf-4.2. Define XC_HEAD to get
	the old version

2002-10-10  John Harper  <>

	Borrowed XDirectFB code to accelerate region fills and copies:

	* rootlessGC.c (RootlessPolyFillRect): integrated code to call
	PolyFillRect when possible

	* rootlessWindow.c (RootlessCopyWindow): use CopyRegion when

	* rootlessAqua.c: implemented accelerated CopyRegion
	(CGSWindowScrollRegion) and PolyFillRect (CGBlt_fillBytes)

	* rootless.h: added CopyRegion and PolyFillRect vectors

	* Imakefile: added -F/path/to/cg so I can include private

2002-10-10  John Harper  <>

	* quartzCursor.c (install_cursor): added code to handle
	LSBFirst bitmaps

== programs/Xserver/GL/apple ==

2002-11-14  John Harper  <>

	* indirect.c: updated for DRICreateSurface () param change

2002-11-12  John Harper  <>

	* indirect.c, Imakefile: moved some files around

2002-11-11  John Harper  <>

	* dri.h, dri.c, appledri.c (DRIFlushSurface): new function in
	the server extension

2002-11-11  John Harper  <>

	* indirect.c: more error checking of results from CGL calls,
	other minor changes

2002-11-06  John Harper  <>

	* appleGlx.c: use dri.c code to create and manage surfaces.
	(e.g. that's tied more tightly into the window's visibility,
	and so reshapes the surface quicker, it also just avoids code

2002-11-06  John Harper  <>

	* dristruct.h, dri.h, dri.c, appledristr.h, appledri.h,
	appledri.c, Imakefile:

	Initial server-side support for direct rendering

2002-11-01  John Harper  <>

	* appleGlx.c: ported from aquaGlx.c, use C[ore]GL and CG
	surfaces directly instead of going through AGL.

	Mostly works, but some of the xscreensaver demos don't appear
	until their window is moved..

== lib/GL/apple ==

2002-11-18  John Harper  <>

	* appledristr.h, appledri.h, appledri.c: menubar / UI
	extensions. Added SetWindowShadowStyle, SelectInput,
	SetWindowMenu functions. SelectInput causes ControllerNotify
	events to be sent

2002-11-15  John Harper  <>

	* xf86drmRandom.c, xf86drmHash.c, xf86drm.h, dri_driver.c,
	Imakefile, .cvsignore: use my x-list and x-hash data types,
	instead of the xf86drm stuff

2002-11-14  John Harper  <>

	* dri_driver.c, appledristr.h, appledri.h, appledri.c:
	XAppleDRICreateSurface () now requires the client's connection
	id so it can grant them access to the window

2002-11-13  John Harper  <>

	* appledristr.h, appledri.h, appledri.c: removed RaiseWindow
	extension, I found a better workaround

2002-11-12  John Harper  <>

	* appledristr.h, appledri.h, appledri.c: added
	XAppleDRIRaiseWindow to raise a window to the top of the
	physical stack. Hopefully this can go away if/when I fix X to
	do this automatically

2002-11-12  John Harper  <>

	* appledristr.h, appledri.h, appledri.c: new extension


	The last three are hopefully just temporary. But for now, the
	window manager can't draw into the windows itself

2002-11-11  John Harper  <>

	* dri_driver.c, appledristr.h, appledri.h, appledri.c:
	(DRIFlushSurface): new function in the server extension

2002-11-10  John Harper  <>

	* dri_driver.c, build-dispatch, dri_dispatch.c: rewrote this
	stuff again, using a totally different approach.

	Now the exported glFoo () functions come from the OS X OpenGL
	framework, meaning that we get absolutely no penalty when
	direct rendering

	When indirect rendering, we install a dummy CGLContextObj that
	has a modified dispatch table - the stubs in this table branch
	through the Mesa dispatch table, eventually calling the glX

	(right now the indirect stubs take a large chunk of text space,
	due to how they're implemented. That should be fixable using
	assembly language or gcc tricks if it's realy a problem)

	* dri_dispatch.c, dri_dispatch.h, build-dispatch: now the .h is
	auto-generated from the .defs file, the .c file has the code
	framework that used to also be auto-generated

2002-11-06  John Harper  <>

	* dri_driver.h, dri_driver.c: don't unbind contexts from their
	surface until they're either rebound somewhere else, or

2002-11-06  John Harper  <>

	* dri_driver.h, dri_driver.c: support visuals almost correctly.
	We now create a pixel-format object for each visual when
	initializing the screen, then use them when creating contexts
	(this is how the Mesa code works)

2002-11-06  John Harper  <>

	* Initial client-side DRI implementation

	Some things need implementing, mainly visuals

== programs/quartz-wm ==

2002-11-21  John Harper  <>

	* utils.m (out_of_bounds_shape): disabled dock avoidance when
	dragging windows for now, it's semi-broken

2002-11-20  John Harper  <>

	* x-input.m: disabled window shading

	* utils.m (validate_window_position): handle when the title of
	the window is off-screen more gracefully (i.e. only move the
	window to 0,0 as a very last resort; we can find the
	intuitively correct place in more common cases now)

	* main.m: assume X is active application on wm startup

2002-11-19  John Harper  <>

	* utils.m: use public CGDirectDisplay instead of private

	* x-window.m: rewrote group and stacking functions to correctly
	handle windows with multiple transients

	* x-screen.h: made _window_list public

	* x-window.m (place_window): respect USPosition bit

	* x-window.m, x-window.h, x-input.m, quartz-wm.h, main.m: pass
	timestamps in more places; don't select FocusChange on client
	windows, just on their frames

2002-11-18  John Harper  <>

	* x-window.m, x-window.h: misc changes; change shadow style
	when focus changes; added activate method; add windows to
	window menu; ...

	* x-screen.m, x-screen.h (raise_all): new method

	* x-input.m: handle ControllerNotify events

	* main.m: select AppleDRI ControllerNotify events. Added code
	to handle X server app being deactivated and reactivated. Added
	window menu support code

	* quartz-wm.h: listen for Exposure events again, otherwise we
	may not initially decorate the window

2002-11-15  John Harper  <>

	* Imakefile: x-list.c and x-list.h are now in Xserver/hw/apple

2002-11-14  John Harper  <>

	* x-window.m, x-window.h: changes to how resizing is handled.
	We now send a batch of requests to the X server each time,
	disable-update, resize-window, draw-title, reenable-update

	* quartz-wm.h: don't ask for Expose events on window frames

2002-11-13  John Harper  <>

	* x-screen.m (focus_topmost): new method, called when the
	focused window is removed

	* x-window.m: focus windows when they're first mapped

2002-11-13  John Harper  <>

	* x-window.m: initial implementation of window placement

	* x-screen.m, x-screen.h (center_on_head): new method

2002-11-13  John Harper  <>

	* x-screen.m, main.m: fixed Xinerama initialization

2002-11-13  John Harper  <>

	* x-window.m, x-window.h: do intelligent window raising,
	currently raises the "transient-group" as an atomic unit, I
	think this is most like what OS X does natively

	* x-screen.m, x-screen.h: zoomed_rect method now takes a point,
	so it can decide which head to use

	* x-list.m, x-list.h (x_list_find): new function

	* x-input.m (x_event_property_notify): update group and
	transient-for state when necessary

2002-11-12  John Harper  <>

	* x-window.m: don't use CGSOrderWindow (), use
	XAppleDRIRaiseWindow () instead

	* frame.m (draw_frame): don't crash if TITLE is null

2002-11-12  John Harper  <>

	* x-window.m, x-window.h, x-screen.m, x-screen.h,, frame.m, frame.h, decor.m, decor.h, Imakefile:

	Architectural changes. Moved all drawing code into X server.
	Use new X server extensions in many places instead of directly
	calling CG window server

	Also, moved source into the xc tree, so that it can reference
	the appledri.h header file (that doesn't get installed

2002-11-11  John Harper  <>

	* x-window.m (do_zoom): call validate_window_size on the zoomed
	size to make sure it satisfies the size hints

	* x-window.m (constrain_1): round down not up when satisfying
	size increments

	* utils.m (screen_workarea_rect): fixed this function (by
	extending the dock rect to meet the display edges, a hack, but
	it should always work)

2002-11-11  John Harper  <>

	* frame.m, frame.h, x-window.m, x-window.h: support window

	* x-screen.m, x-screen.h (zoomed_rect): new method

	* x-list.m (x_list_copy): fixed bug

	* x-input.m: listen for multiple clicks, shade or collapse

	* utils.m, utils.h (screen_workarea_rect): new function, not
	quite working correctly

	* quartz-wm.h: listen for FocusChange events on frames

	* main.m (main): hook up signal handlers

2002-11-07  John Harper  <>

	* main.m (debug_printf): don't spew debugging data unless
	$DEBUG is set to a non-zero value

	* Makefile: added install target

2002-11-01  John Harper  <>

	* x-screen.m: screen shape has zero origin

2002-10-31  John Harper  <>

	* x-window.m, x-window.h, x-screen.m, utils.m, utils.h,
	quartz-wm.h, main.m, frame.m, frame.h: read _MOTIF_WM_HINTS,
	support borderless windows

	* x-window.m, x-window.h, x-input.m, frame.m, frame.h, decor.m,
	decor.h: made utility windows work, more resizing tweaks
	(including an evil disable-updates hack), honour
	WM_NORMAL_HINTS (except for aspect ratio)

2002-10-30  John Harper  <>

	* x-window.m, x-window.h, x-screen.m, x-input.m, quartz-wm.h,
	frame.m, frame.h, decor.m, decor.h: implemented window resizing
	(ignoring window size hints for now). Added code to synchronize
	moving the frame window, so we can redraw the window
	decorations using CG without worrying about the X server
	resizing the window while we're doing so

2002-10-28  John Harper  <>

	* x-window.m, x-window.h, x-screen.m, x-screen.h, x-input.m,
	utils.m, utils.h, quartz-wm.h, main.m, frame.m, frame.h,
	decor.m, decor.h, Makefile: many changes, lots of things work
	now. Things that don't include resizing and zooming

	* GetThemeRGBAPixels.h, GetThemeRGBAPixels.c: removed unused
	GetThemeImage () function

2002-10-25  John Harper  <>

	* x-window.m, x-window.h, x-screen.m, x-screen.h, x-list.m,
	x-input.m, quartz-wm.h, null-window.m, null-window.h,
	null-view.m, null-view.h, main.m, frame.m, frame.h, decor.m,
	decor.h, cocoa-wm.h, Makefile, GetThemeRGBAPixels.h,
	GetThemeRGBAPixels.c, .cvsignore:

	No longer using AppKit. I tried using HLTB to draw window
	decorations, but that didn't seem to work either, so am now
	using code from Andrew Platzer via John Burkey to grab images
	from the theme resource file

	So the name has changed, it's now quartz-wm :-)

2002-10-16  John Harper  <>

	* x-window.m, x-window.h: set _CG_WINDOW_HINTS property, not

	* main.m (cg_psn): new exported variable

	* x-input.m (x_event_configure_request): bug fixes

2002-10-15  John Harper  <>

	* x-window.m, x-window.h, x-input.m: handle configure-notify on
	frame and client windows a lot more cleanly

	* x-input.m (x_event_property_notify): note WM_NAME changing
	and update the window's title

	* x-screen.m: store a list of windows, not an NSMutableArray

	* main.m: store a list of screens, not an NSMutableArray

	* x-list.h, x-list.m: new module, a GSList style list class