-*-outline-*-

		      NEWS for Python X Library

* Version 0.14 1 Oct 2007 (trialed as 0.14rc1 on 10 Jun 2007)

A couple of new extensions, a Python 2.5 fix and a couple of aliases
(Display.get_atom() now uses the internal cache and added
Window.raise_window()).  Tabs converted to spaces (SF id: 1559082).

** RECORD extension (SF id: 1538663)

Alex Badea contributed a RECORD extension module, allowing Python Xlib
programs to capture mouse and keyboard events (or all other core or
extension events) easily.  A demo is in the examples directory.  See
http://refspecs.freestandards.org/X11/recordlib.pdf for more information.

** XINERAMA extension

Mike Meyer contributed a Xinerama extension module, allowing Python Xlib
programs to interrogate the X server about positions and sizes of
multiple screens.  Specifications are a bit tricky to find -
http://sourceforge.net/projects/xinerama/ has some older specs and the
source code of the xorg project (libs & server code) has "definitive"
information.

** Python 2.5 fix (SF id: 1623900)

Bugfix to correct handling of XAuthority file parsing under Python 2.5
causing failed authentication.


* Version 0.13  6 Aug 2006 (trialed as 0.13pre1 on 22 Jul 2006)

A small release to incorporate a number of minor corrections and bug
fixes, including small changes to keysym handling, .Xauthority parsing,
several fixes to sending/receiving/flushing data, addition of
WithdrawnState to WMHints.  petli completed documentation for Display
objects.


* Version 0.12  29 Mar 2002

** SHAPE extension

Jeffrey Boser contributed a SHAPE extension module, allowing Python
Xlib programs to use shaped windows.  Take a look at
examples/shapewin.py for ideas on how to use it.  For more information
on shaped windows, see
http://ftp.x.org/pub/R6.6/xc/doc/hardcopy/Xext/shape.PS.gz

** Python 2.2 fix

In Python 2.2 FCNTL.FD_CLOEXEC has disappeared and FCNTL on the whole
is deprecated, so that had to be dealt with to make the Xlib work with
that version.  


* Version 0.11  23 Feb 2002

** Regression tests for the protocol definition

Regressions tests have been created for all requests, replies and
events.  The tests use PyUnit, and the old resource database test has
been updated to use it too.

** A lot of protocol bugfixes

The bugs discovered by the regression tests have been fixed.
Additionally, a subtle bug in the core engine which could cause a
"can't happen"-error has also been found and fixed.


* Version 0.10  16 Dec 2001

** Event bugfix

The xlib failed to parse the type code of events sent from other
clients using SendEvent.  This has been fixed, adding the field
`send_event' to all event objects.

** Event documentation

The section "Event Types" in the manual has been written, detailing
all event types in the core protocol.  The manual is now ten pages
thicker.

** Basic support for GetImage/PutImage

The Drawable methods put_image() and get_image() have been
implemented, but handling image data is still up to the user.  There
is however, thanks to Ilpo Nyyssönen, a trivial method put_pil_image()
that will work on some combinations of image and drawable depth.  It's
not perfect, but it's a start.


* Version 0.9  4 Dec 2001

** Documentation improved

The documentation has been augmented with a chapter about event
handling, and a chapter listing all X objects and their methods
provided by the library.  They are not described in any detail,
though.

** Keysym handling improved

The module Xlib.XK, which listed all keysyms, have been split up into
several sub-modules providing different sets of keysyms.  By importing
Xlib.XK only the miscellany and latin1 sets are loaded, thus removing
some unnecessary clutter.

Xlib.display.Display has two new methods (lookup_string() and
rebind_string()) for translating keysyms into characters.

** Small changes to library interface

The order of the Xlib.display.Display method send_event() parameters
event_mask and propagate has changed.

Some of the class names in Xlib.protocol.event have changed, to have
the same namse as the corresponding. event type constant.

** A few bugfixes

If a display has more than one screen, the default screen was always
set to the highest numbered one, irrespective of what the user
specified in $DISPLAY.

Some response attributes in Xlib.protocol.request accidentally
included a comma.



* Version 0.8  12 Jan 2001

** Uses distutils

Python Xlib now uses distutils to make installation and distribution
building easier.

** Tested with Python 2.0

A few incompatibilities with Python 2.0 has been fixed. 

		      		      
* Version 0.7  8 Jan 2001

** Fixed the 64-bit platform fix.

As it turns out, the attempted fix for 64-bit platforms in v0.6 didn't
really work.  Close study of structmodules.c gave the answer why, and
now it really should work.  Yeah.

** Optimizations of core protocol engine

Python Xlib is now at least 25% faster after the core of the protocol
engine has been rewritten.  This is some quite cute code: tailor-made
methods are generated for all structures, resulting in a 650% speed-up
in generating binary data, and a 75% speed-up in parsing binary data.

Interested Python hackers are recommended to take a look at the Struct
class in Xlib/protocol/rq.py.



* Version 0.6  29 Dec 2000

** Fix to make python-xlib work on 64-bytes architectures.

The struct and array modules uses sizeof(long) to determine the number
of bytes used when representing the type code 'l'.  On Intel and VAX,
this is 32 bits as expected.  On Alpha, it's 64 bits.  python-xlib now
probes how large each type code is to avoid this problem.


* Version 0.5  28 Dec 2000

** Functions implemented to get and set all ICCCM WM properties on
Window objects.

** Keymap cache implemented, with external Xlib.display.Display
methods keycode_to_keysym, keysym_to_keycode, keysym_to_keycodes and
refresh_keyboard_mapping.

** Two utils for debugging X traffic implemented.
utils/tcpbug.py forwards a TCP connection and outputs the
communication between the client and the server.  This output can then
be fed into utils/parsexbug.py, which will output all requests,
responses, errors and events in a readable format.


* Version 0.4  4 Oct 2000

** Thread support completed, but not really stresstested yet.

** A framework for handling different platforms has been implemented,
together with generic Unix code and some simple VMS code.

** Some documentation has been written.

** The usual bunch of bugfixes.



