|
| 1 | +NEWS for Python X Library |
| 2 | + |
| 3 | +Version 0.21 |
| 4 | +============ |
| 5 | + |
| 6 | +Bug Fixes |
| 7 | +--------- |
| 8 | + |
| 9 | +- fix use under Windows Subsystem for Linux: when DISPLAY does not |
| 10 | + specify a protocol, and the implicit Unix socket connection fails, |
| 11 | + fallback to TCP (mimicking XCB's behavior). |
| 12 | + |
| 13 | +Misc |
| 14 | +---- |
| 15 | + |
| 16 | +- don't bundle a copy of texi2html to build the HTML documentation, |
| 17 | + but use the currently installed version instead. |
| 18 | + |
| 19 | +--- |
| 20 | +Version 0.20 |
| 21 | +============ |
| 22 | + |
| 23 | +Bug Fixes |
| 24 | +--------- |
| 25 | + |
| 26 | +- fix unclosed file in Xauth implementation |
| 27 | +- fix support for `Window.set_wm_transient_for` |
| 28 | +- fix support for `Drawable.put_image` / `Drawable.get_image` |
| 29 | +- use ASCII for decoding strings in Python 3 (same as Python 2) |
| 30 | +- fix Python 3 warnings about `array.tostring()` (deprecated) |
| 31 | + |
| 32 | +Misc |
| 33 | +---- |
| 34 | + |
| 35 | +Improve response processing performance: reduce the number of |
| 36 | +`socket.recv` calls needed to receive a full response. |
| 37 | + |
| 38 | +--- |
| 39 | +Version 0.19 |
| 40 | +============ |
| 41 | + |
| 42 | +Bug Fixes |
| 43 | +--------- |
| 44 | + |
| 45 | +- don't throw an exception if `$XAUTHFILE` / `~/.Xauthority` is missing |
| 46 | +- fix authentication work-around for SSH forwarding under Python 3 |
| 47 | +- improve `$DISPLAY` handling: support optional protocol prefix, and |
| 48 | + correctly handle `unix:0.0` as `:0.0` |
| 49 | + |
| 50 | +--- |
| 51 | +Version 0.18 |
| 52 | +============ |
| 53 | + |
| 54 | +Bug Fixes |
| 55 | +--------- |
| 56 | + |
| 57 | +- fix Python 3 buffer abstraction |
| 58 | +- fix interrupted select handling for Python 3.3/3.4 |
| 59 | +- fix Unix socket support when only an abstract address is available |
| 60 | + |
| 61 | +--- |
| 62 | +Version 0.17 |
| 63 | +============ |
| 64 | + |
| 65 | +Bug Fixes |
| 66 | +--------- |
| 67 | + |
| 68 | +- fix Xauth handling when using Python 2 and DISPLAY contains a remote IP |
| 69 | +- fix String16 request field handling when using Python 3 |
| 70 | +- fix RECORD extension and example when using Python 3 |
| 71 | +- fix handling of properties: use byte strings for all X11 8-bits |
| 72 | + strings, as not all of them are text properties (the window |
| 73 | + getters/setters for `wm_name`, `wm_icon_name`, `wm_class`, and |
| 74 | + `wm_client_machine` still return/expect Unicode strings) |
| 75 | + |
| 76 | +API Changes |
| 77 | +----------- |
| 78 | + |
| 79 | +Core: |
| 80 | + |
| 81 | +- new window getter/setter for text properties: `get_full_text_property` |
| 82 | + and `change_text_property`; with automatic conversion to/from Unicode |
| 83 | + when the property type encoding is supported (`STRING` and |
| 84 | + `UTF8_STRING`) |
| 85 | + |
| 86 | +Composite extension: |
| 87 | + |
| 88 | +- support for `GetOverlayWindow` request |
| 89 | + |
| 90 | +--- |
| 91 | +Version 0.16 |
| 92 | +============ |
| 93 | + |
| 94 | +Licensing |
| 95 | +--------- |
| 96 | + |
| 97 | +The project is now licensed under the GNU Lesser General Public License |
| 98 | +v2.1 or later (see the LICENSE file for details). |
| 99 | + |
| 100 | +Compatibility |
| 101 | +------------- |
| 102 | + |
| 103 | +Support for Python versions older than 2.7 has been dropped. Support for |
| 104 | +Python 3 (3.3, 3.4 and 3.5) has been added. Note that Python-Xlib now |
| 105 | +depends on the six package (>=1.10) for combined Python 2 / 3 support. |
| 106 | + |
| 107 | +API Changes |
| 108 | +----------- |
| 109 | + |
| 110 | +With the change of license, and no way to contact the original author of |
| 111 | +the SHAPE extension, the code had to be rewritten from scratch. This |
| 112 | +resulted in a few minor API changes (see [examples/shapewin.py](examples/shapewin.py)). |
| 113 | + |
| 114 | +Partial support for the SECURITY. XInput, and XFIXES extensions has been |
| 115 | +added. |
| 116 | + |
| 117 | +Bug Fixes |
| 118 | +--------- |
| 119 | + |
| 120 | +- fix RECORD extension |
| 121 | +- fixed OS X socket path |
| 122 | +- fix handling of generic events |
| 123 | +- fix handling of KeymapNotify events |
| 124 | +- several fixes for the RandR extension |
| 125 | + |
| 126 | +--- |
| 127 | +Version 0.15rc1 - 14 Nov 2009 |
| 128 | +============================= |
| 129 | + |
| 130 | +Improved support for newer versions of Mac OS X, a couple of new |
| 131 | +extensions, and several bugfixes. |
| 132 | + |
| 133 | +Composite extension |
| 134 | +------------------- |
| 135 | + |
| 136 | +Support for the composite extension, used to implement a composition |
| 137 | +manager (added for plcm work in plwm). |
| 138 | + |
| 139 | +By itself this extension is not very useful, it is intended to be used |
| 140 | +together with the DAMAGE and XFIXES extensions. Typically you would also |
| 141 | +need RENDER or glX or some similar method of creating fancy graphics. |
| 142 | + |
| 143 | +XF86 special function keysyms |
| 144 | +----------------------------- |
| 145 | + |
| 146 | +Keysym definitions for special function keys found on modern keyboards, |
| 147 | +e.g. raise and lower volume, start specific applications, etc. Have a |
| 148 | +look in [Xlib/keysymdef/xf86.py](Xlib/keysymdef/xf86.py) to see what |
| 149 | +there are and experiment with xev to see what your keyboard generates. |
| 150 | +These definitions aren't brought in by default, so you must do this |
| 151 | +after importing `Xlib.XK`: |
| 152 | + |
| 153 | +```python |
| 154 | +Xlib.XK.load_keysym_group('xf86') |
| 155 | +``` |
| 156 | + |
| 157 | +RANDR extension |
| 158 | +--------------- |
| 159 | + |
| 160 | +The RANDR extension complements XINERAMA as a way of getting data about |
| 161 | +the physical screens making up a virtual screen in X. An example of |
| 162 | +usage can be found in [examples/xrandr.py](examples/xrandr.py). |
| 163 | + |
| 164 | +--- |
| 165 | +Version 0.14 - 1 Oct 2007 (trialed as 0.14rc1 on 10 Jun 2007) |
| 166 | +============================================================= |
| 167 | + |
| 168 | +A couple of new extensions, a Python 2.5 fix and a couple of aliases |
| 169 | +(`Display.get_atom()` now uses the internal cache and added |
| 170 | +`Window.raise_window()`). Tabs converted to spaces (SF id: 1559082). |
| 171 | + |
| 172 | +RECORD extension (SF id: 1538663) |
| 173 | +--------------------------------- |
| 174 | + |
| 175 | +Alex Badea contributed a RECORD extension module, allowing Python Xlib |
| 176 | +programs to capture mouse and keyboard events (or all other core or |
| 177 | +extension events) easily. A demo is in the examples directory. See |
| 178 | +<http://refspecs.freestandards.org/X11/recordlib.pdf> for more |
| 179 | +information. |
| 180 | + |
| 181 | +XINERAMA extension |
| 182 | +------------------ |
| 183 | + |
| 184 | +Mike Meyer contributed a Xinerama extension module, allowing Python Xlib |
| 185 | +programs to interrogate the X server about positions and sizes of |
| 186 | +multiple screens. Specifications are a bit tricky to find - |
| 187 | +<http://sourceforge.net/projects/xinerama/> has some older specs and the |
| 188 | +source code of the xorg project (libs & server code) has "definitive" |
| 189 | +information. |
| 190 | + |
| 191 | +Python 2.5 fix (SF id: 1623900) |
| 192 | +------------------------------- |
| 193 | + |
| 194 | +Bugfix to correct handling of XAuthority file parsing under Python 2.5 |
| 195 | +causing failed authentication. |
| 196 | + |
| 197 | +--- |
| 198 | +Version 0.13 - 6 Aug 2006 (trialed as 0.13pre1 on 22 Jul 2006) |
| 199 | +============================================================== |
| 200 | + |
| 201 | +A small release to incorporate a number of minor corrections and bug |
| 202 | +fixes, including small changes to keysym handling, `.Xauthority` |
| 203 | +parsing, several fixes to sending/receiving/flushing data, addition of |
| 204 | +`WithdrawnState` to `WMHints`. petli completed documentation for |
| 205 | +`Display` objects. |
| 206 | + |
| 207 | +--- |
| 208 | +Version 0.12 - 29 Mar 2002 |
| 209 | +========================== |
| 210 | + |
| 211 | +SHAPE extension |
| 212 | +--------------- |
| 213 | + |
| 214 | +Jeffrey Boser contributed a SHAPE extension module, allowing Python Xlib |
| 215 | +programs to use shaped windows. Take a look at examples/shapewin.py for |
| 216 | +ideas on how to use it. For more information on shaped windows, see |
| 217 | +<http://ftp.x.org/pub/R6.6/xc/doc/hardcopy/Xext/shape.PS.gz> |
| 218 | + |
| 219 | +Python 2.2 fix |
| 220 | +-------------- |
| 221 | + |
| 222 | +In Python 2.2 `FCNTL.FD_CLOEXEC` has disappeared and `FCNTL` on the whole |
| 223 | +is deprecated, so that had to be dealt with to make the Xlib work with |
| 224 | +that version. |
| 225 | + |
| 226 | +--- |
| 227 | +Version 0.11 - 23 Feb 2002 |
| 228 | +========================== |
| 229 | + |
| 230 | +Regression tests for the protocol definition |
| 231 | +-------------------------------------------- |
| 232 | + |
| 233 | +Regressions tests have been created for all requests, replies and |
| 234 | +events. The tests use PyUnit, and the old resource database test has |
| 235 | +been updated to use it too. |
| 236 | + |
| 237 | +A lot of protocol bugfixes |
| 238 | +-------------------------- |
| 239 | + |
| 240 | +The bugs discovered by the regression tests have been fixed. |
| 241 | +Additionally, a subtle bug in the core engine which could cause a |
| 242 | +"can't happen"-error has also been found and fixed. |
| 243 | + |
| 244 | +--- |
| 245 | +Version 0.10 - 16 Dec 2001 |
| 246 | +========================== |
| 247 | + |
| 248 | +Event bugfix |
| 249 | +------------ |
| 250 | + |
| 251 | +The xlib failed to parse the type code of events sent from other clients |
| 252 | +using `SendEvent`. This has been fixed, adding the field `send_event' to |
| 253 | +all event objects. |
| 254 | + |
| 255 | +Event documentation |
| 256 | +------------------- |
| 257 | + |
| 258 | +The section "Event Types" in the manual has been written, detailing |
| 259 | +all event types in the core protocol. The manual is now ten pages |
| 260 | +thicker. |
| 261 | + |
| 262 | +Basic support for GetImage/PutImage |
| 263 | +----------------------------------- |
| 264 | + |
| 265 | +The Drawable methods `put_image()` and `get_image()` have been |
| 266 | +implemented, but handling image data is still up to the user. There is |
| 267 | +however, thanks to Ilpo Nyyssönen, a trivial method `put_pil_image()` |
| 268 | +that will work on some combinations of image and drawable depth. It's |
| 269 | +not perfect, but it's a start. |
| 270 | + |
| 271 | +--- |
| 272 | +Version 0.9 - 4 Dec 2001 |
| 273 | +======================== |
| 274 | + |
| 275 | +Documentation improved |
| 276 | +---------------------- |
| 277 | + |
| 278 | +The documentation has been augmented with a chapter about event |
| 279 | +handling, and a chapter listing all X objects and their methods provided |
| 280 | +by the library. They are not described in any detail, though. |
| 281 | + |
| 282 | +Keysym handling improved |
| 283 | +------------------------ |
| 284 | + |
| 285 | +The module `Xlib.XK`, which listed all keysyms, have been split up into |
| 286 | +several sub-modules providing different sets of keysyms. By importing |
| 287 | +`Xlib.XK` only the miscellany and latin1 sets are loaded, thus removing |
| 288 | +some unnecessary clutter. |
| 289 | + |
| 290 | +`Xlib.display.Display` has two new methods (`lookup_string()` and |
| 291 | +`rebind_string()`) for translating keysyms into characters. |
| 292 | + |
| 293 | +Small changes to library interface |
| 294 | +---------------------------------- |
| 295 | + |
| 296 | +The order of the `Xlib.display.Display` method `send_event()` parameters |
| 297 | +`event_mask` and propagate has changed. |
| 298 | + |
| 299 | +Some of the class names in `Xlib.protocol.event` have changed, to have |
| 300 | +the same name as the corresponding event type constant. |
| 301 | + |
| 302 | +A few bugfixes |
| 303 | +-------------- |
| 304 | + |
| 305 | +If a display has more than one screen, the default screen was always set |
| 306 | +to the highest numbered one, irrespective of what the user specified in |
| 307 | +`$DISPLAY`. |
| 308 | + |
| 309 | +Some response attributes in `Xlib.protocol.request` accidentally included |
| 310 | +a comma. |
| 311 | + |
| 312 | +--- |
| 313 | +Version 0.8 - 12 Jan 2001 |
| 314 | +========================= |
| 315 | + |
| 316 | +Uses distutils |
| 317 | +-------------- |
| 318 | + |
| 319 | +Python Xlib now uses distutils to make installation and distribution |
| 320 | +building easier. |
| 321 | + |
| 322 | +Tested with Python 2.0 |
| 323 | +---------------------- |
| 324 | + |
| 325 | +A few incompatibilities with Python 2.0 has been fixed. |
| 326 | + |
| 327 | +--- |
| 328 | +Version 0.7 - 8 Jan 2001 |
| 329 | +======================== |
| 330 | + |
| 331 | +Fixed the 64-bit platform fix. |
| 332 | +------------------------------ |
| 333 | + |
| 334 | +As it turns out, the attempted fix for 64-bit platforms in v0.6 didn't |
| 335 | +really work. Close study of structmodules.c gave the answer why, and now |
| 336 | +it really should work. Yeah. |
| 337 | + |
| 338 | +Optimizations of core protocol engine |
| 339 | +------------------------------------- |
| 340 | + |
| 341 | +Python Xlib is now at least 25% faster after the core of the protocol |
| 342 | +engine has been rewritten. This is some quite cute code: tailor-made |
| 343 | +methods are generated for all structures, resulting in a 650% speed-up |
| 344 | +in generating binary data, and a 75% speed-up in parsing binary data. |
| 345 | + |
| 346 | +Interested Python hackers are recommended to take a look at the Struct |
| 347 | +class in `Xlib/protocol/rq.py`. |
| 348 | + |
| 349 | +--- |
| 350 | +Version 0.6 - 29 Dec 2000 |
| 351 | +========================= |
| 352 | + |
| 353 | +Fix to make python-xlib work on 64-bytes architectures. |
| 354 | +------------------------------------------------------- |
| 355 | + |
| 356 | +The struct and array modules uses `sizeof(long)` to determine the number |
| 357 | +of bytes used when representing the type code 'l'. On Intel and VAX, |
| 358 | +this is 32 bits as expected. On Alpha, it's 64 bits. python-xlib now |
| 359 | +probes how large each type code is to avoid this problem. |
| 360 | + |
| 361 | +--- |
| 362 | +Version 0.5 - 28 Dec 2000 |
| 363 | +========================= |
| 364 | + |
| 365 | +- Functions implemented to get and set all ICCCM WM properties on Window |
| 366 | + objects. |
| 367 | + |
| 368 | +- Keymap cache implemented, with external `Xlib.display.Display` methods |
| 369 | + `keycode_to_keysym`, `keysym_to_keycode`, `keysym_to_keycodes` and |
| 370 | + `refresh_keyboard_mapping`. |
| 371 | + |
| 372 | +- Two utils for debugging X traffic implemented. `utils/tcpbug.py` |
| 373 | + forwards a TCP connection and outputs the communication between the |
| 374 | + client and the server. This output can then be fed into |
| 375 | + `utils/parsexbug.py`, which will output all requests, responses, |
| 376 | + errors and events in a readable format. |
| 377 | + |
| 378 | +--- |
| 379 | +Version 0.4 - 4 Oct 2000 |
| 380 | +======================== |
| 381 | + |
| 382 | +- Thread support completed, but not really stress-tested yet. |
| 383 | + |
| 384 | +- A framework for handling different platforms has been implemented, |
| 385 | + together with generic Unix code and some simple VMS code. |
| 386 | + |
| 387 | +- Some documentation has been written. |
| 388 | + |
| 389 | +- The usual bunch of bugfixes. |
0 commit comments