~ubuntu-branches/ubuntu/lucid/sawfish/lucid-updates

« back to all changes in this revision

Viewing changes to man/news.texi

  • Committer: Bazaar Package Importer
  • Author(s): Christian Marillat
  • Date: 2002-01-20 17:42:28 UTC
  • Revision ID: james.westby@ubuntu.com-20020120174228-4q1ydztbkvfq1ht2
Tags: upstream-1.0.1.20020116
ImportĀ upstreamĀ versionĀ 1.0.1.20020116

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
@c -*- texinfo -*-
 
2
 
 
3
@chapter News
 
4
 
 
5
This lists the user-visible changes made to Sawfish, and which releases
 
6
they occurred between. For more detailed information see the
 
7
@file{ChangeLog} files in the Sawfish source tree.
 
8
 
 
9
 
 
10
@heading 1.0.1
 
11
 
 
12
@itemize @bullet
 
13
 
 
14
@item Translation updates: pt (Carlos Perellļæ½ Marļæ½n), it (Michele
 
15
Campeotto), pl (Zbigniew Chyla), zh_CN (Wang Jian), zh_TW (Abel
 
16
Cheung), es (Eneko Lacunza), tr (ļæ½mer Fadļæ½l USTA), sv (Gļæ½ran Uddeborg,
 
17
Christian Rose), da (Ole Laursen), gl (Jesus Bravo Alvarez)
 
18
 
 
19
@item Bug fixes:
 
20
 
 
21
@itemize @minus
 
22
 
 
23
@item Fixed typo in @code{apply-command-keys} function (David Bustos)
 
24
 
 
25
@item Fixed bug in @code{wm-spec} module causing nautilus desktop
 
26
window to cover panel
 
27
 
 
28
@item Adopt windows with a maximized hint correctly
 
29
 
 
30
@item Fixed bug in @code{display-window} function that can prevent the
 
31
window getting focused
 
32
 
 
33
@item Don't allow windows to be moved or resized by third-parties when
 
34
they're maximized (and the necessary option is set)
 
35
 
 
36
@item Fixed problem with localizing property names in the
 
37
matched-windows configuration widget
 
38
 
 
39
@item Handle window gravity more correctly (Owen Taylor)
 
40
 
 
41
@item Forget everything about withdrawn windows -- better ICCCM
 
42
compliance
 
43
 
 
44
@item Fixed root-window event proxying (the infamous gmc bug)
 
45
 
 
46
@item Don't use dlmalloc on sparcs (Brian Nitz)
 
47
 
 
48
@end itemize
 
49
@end itemize
 
50
 
 
51
 
 
52
@heading 0.99
 
53
 
 
54
@itemize @bullet
 
55
 
 
56
@item Requires @code{librep} 0.14 or newer
 
57
 
 
58
@item Translation updates: ja (Sato Satoru), no (Kjartan Maraas), es
 
59
(Carlos Perellļæ½ Marļæ½n), fi (Antti Ahvensalmi), cs (Jiri Cerny), fr
 
60
(Christian Marillat), de (Matthias Warkus, Christian Meyer), da (Ole
 
61
Laursen), sk (Stanislav Visnovsky), tr (ļæ½zgļæ½r), sv (Christian Rose,
 
62
Peter Winnberg), gl (Jesus Bravo Alvarez)
 
63
 
 
64
@item Do i18n on more text strings (Vlad Harchev, me)
 
65
 
 
66
@item Broken support for multiple-screen displays. Supplying the new
 
67
@samp{--multihead} option will fork extra copies of sawfish for each
 
68
extra screen. This has some fundamental problems, but some people seem
 
69
to want it (Michael Vogt, Mahmood Ali, me)
 
70
 
 
71
@item Window manager virtual modifier once again defaults to @kbd{M-}
 
72
instead of @kbd{C-}
 
73
 
 
74
@item Added support for @kbd{Off2} and @kbd{Off3} events
 
75
 
 
76
@item @code{menu-program-stays-running} variable now defaults to true
 
77
by popular demand
 
78
 
 
79
@item New command @code{focus-desktop}
 
80
 
 
81
@item Switch viewports more efficiently (by choosing the best order to
 
82
move windows, to minimize the exposed area)
 
83
 
 
84
@item Monitor the @code{_WIN_WORKSPACE} property of each window
 
85
 
 
86
@item Bug fixes:
 
87
 
 
88
@itemize @minus
 
89
@item Check for X SHAPE extension, exit if it's not available
 
90
 
 
91
@item Wait for the focus-in event before changing sawfish's knowledge
 
92
of the focused window when moving focus from one window to another
 
93
 
 
94
@item Be more ICCCM-compliant, don't send synthetic configure notify
 
95
events when the window was resized
 
96
 
 
97
@item Fixed locale font handling
 
98
 
 
99
@item Don't leave grid traces when trying to move/resize a window
 
100
that's locked in place
 
101
 
 
102
@item Fixed bug where the pointer being over the message window could
 
103
confuse focus after window cycling
 
104
 
 
105
@item @code{decorate-transients} option works again with shaded windows
 
106
 
 
107
@item Documentation appears in tooltips again
 
108
 
 
109
@item Handle sticky properties better in the @code{window-history}
 
110
module
 
111
 
 
112
@item Maximization fixes for multi-headed displays (Florent Guillaume)
 
113
 
 
114
@item Cancelling a resize of a maximized window no longer discards the
 
115
window's maximized state
 
116
 
 
117
@end itemize
 
118
@end itemize
 
119
 
 
120
 
 
121
@heading 0.38
 
122
 
 
123
@itemize @bullet
 
124
 
 
125
@item Translation updates: gl (Jesus Bravo Alvarez), sv (Martin
 
126
Norbļæ½ck), de (Matthias Warkus, Christian Meyer), ru (Vlad Harchev), es
 
127
(Joseba Garcļæ½a Etxebarria), pl (Daniel Koc), fi (Antti Ahvensalmi), sk
 
128
(Stanislav Visnovsky), az (Pablo Saratxaga), cz (Stanislav Brabec), no
 
129
(Kjartan Maraas), el (Simos Xenitellis), it (Michele Campeotto), fr
 
130
(Christian Marillat), ro (Marius Andreiana), ko (?)
 
131
 
 
132
Extract some more translatable strings (Vlad Harchev)
 
133
 
 
134
@item @code{Crux} theme now has an extra button mode: @code{Default},
 
135
like Mac OS Platinum but also has an iconify button. Used by default
 
136
 
 
137
@item The @code{grow-pack} module now works with windows which specify
 
138
increments (Kai Groļæ½johann)
 
139
 
 
140
@item New command @code{kill-client}
 
141
 
 
142
@item Fixed bugs:
 
143
 
 
144
@itemize @minus
 
145
 
 
146
@item Don't return a null pointer when no default cursor has been set,
 
147
return @code{nil} instead
 
148
 
 
149
@item Avoid triggering assertions in the stacking list code when
 
150
raising or lowering windows and the given sibling has been destroyed
 
151
 
 
152
@item Turned off the annoying code that beeps and prints a message when
 
153
unfocusable windows are detected
 
154
 
 
155
@item The GNOME hints now listen for the @code{_WIN_WORKSPACE} property
 
156
changing and will move the window in response
 
157
 
 
158
@item Don't forget maximized state of windows when they're moved, only
 
159
if they're resized
 
160
 
 
161
@item Don't show special cursors when moving or resizing windows, or
 
162
when hovering over the title bar
 
163
 
 
164
@item Corrected off-by-one error in `smart' placement modes
 
165
 
 
166
@item Identified and fixed some problems in the new GNOME/KDE window
 
167
manager hints implementation (Rob Hodges, me)
 
168
 
 
169
@end itemize
 
170
@end itemize
 
171
 
 
172
 
 
173
@heading 0.37
 
174
 
 
175
@itemize @bullet
 
176
 
 
177
@item New command line option @samp{--window-history-file=@var{file}}
 
178
 
 
179
@item Search for user's rc file in this order: @file{~/.sawfishrc},
 
180
@file{~/.sawfish/rc}, @file{~/.sawmillrc}
 
181
 
 
182
@item New option @code{configure-ignore-stacking-requests} and a
 
183
similarly-named window property. When set stacking requests from
 
184
windows are ignored (Matt Tucker)
 
185
 
 
186
@item When restarting sawfish, reselect the previously selected
 
187
workspace
 
188
 
 
189
@item Added a function that can recolour multiple image channels
 
190
simultaneously
 
191
 
 
192
@item New function @code{exit-type} -- returns the type of exit in
 
193
progress
 
194
 
 
195
@item Translation updates: ja (Sato Satoru), sk (Stanislav Visnovsky),
 
196
es (Iļæ½aki Garcļæ½a Etxebarria), hu (Robert Vanyi), tr (Fatih Demir), ro
 
197
(Tutu Valentin), no (Kjartan Maraas), it (Michele Campeotto), pl
 
198
(Daniel Koc)
 
199
 
 
200
@item Fixed bugs:
 
201
 
 
202
@itemize @minus
 
203
 
 
204
@item Fixed focus-handling in enter-only mode on window close and
 
205
viewport switch
 
206
 
 
207
@item Fixed overflow error in the image recolouring module (Simon
 
208
Budig)
 
209
 
 
210
@item Session management always uses a unique session file (Timo
 
211
Korvola, me)
 
212
 
 
213
@item Fixed bug in random placement mode where windows could sometimes
 
214
be placed off-screen
 
215
 
 
216
@item Fixed some auto-raise problems by reverting a misguided bug fix
 
217
 
 
218
@item Fixed bugs with aborted session saves
 
219
 
 
220
@item Cache stacking order of windows locally -- this allows us to keep
 
221
the order consistent, especially after window reparenting operations
 
222
 
 
223
@item Don't call @code{XParseColor} unless we actually @emph{have} a
 
224
display connection (merlin)
 
225
 
 
226
@item Merged two calls to @code{setlocale} to avoid trashing the locale
 
227
preferences
 
228
 
 
229
@item Check for presence of Xinerama extension before trying to use it
 
230
-- removes the annoying error message at startup
 
231
 
 
232
@item Added some more X server timestamp logic to correct for the
 
233
timestamp discontinuities after APM resume
 
234
 
 
235
@end itemize
 
236
@end itemize
 
237
 
 
238
 
 
239
@heading 0.36
 
240
 
 
241
@itemize @bullet
 
242
 
 
243
@item Added a new default theme: `Crux'. By default it recolours itself
 
244
to match the current GTK+ selection colour. (Arlo Rose, me)
 
245
 
 
246
@item Updated translations: it (Michele Campeotto), fr (Christian
 
247
Marillat)
 
248
 
 
249
@item Added a @code{shade-button} button class (many themes created it
 
250
anyway)
 
251
 
 
252
@item Added a @code{sawfish.wm.util.recolor-image} module, currently
 
253
contains a single function for recolouring parts of images based on a
 
254
given colour gradient
 
255
 
 
256
@item Added new command @code{delete-group}. Deletes a whole group of
 
257
windows. With default bindings, shift-click on the close button to
 
258
invoke this command
 
259
 
 
260
@item Added support for KDE-style mini-icons. If the window has no
 
261
normal icon, then @code{window-icon-image} will return the mini-icon
 
262
 
 
263
@item Fixed bugs:
 
264
 
 
265
@itemize @minus
 
266
 
 
267
@item Themes that use the module for reading the user's gtk preferences
 
268
will once again get updated when the gtk theme changes
 
269
 
 
270
@item Fix another of the null-string translation bugs (Christian
 
271
Marillat)
 
272
 
 
273
@item Work around @code{XUrgencyHint} not being defined before X11R6
 
274
 
 
275
@item Fixed some long-standing bugs when decorating windows (use the
 
276
correct mask when creating the overall window shape; for frame parts
 
277
with no mask, set the local shape to the appropriate rectangle; be sure
 
278
to generate at least one Expose event when reconfiguring frame parts)
 
279
 
 
280
@item Fixed crashing bug when @code{bind-keys} is called with zero
 
281
arguments
 
282
 
 
283
@item Fixed typo in @code{crop-image} function when checking validity
 
284
of @var{height} parameter (martin@@whoever.com)
 
285
 
 
286
@end itemize
 
287
@end itemize
 
288
 
 
289
 
 
290
@heading 0.35
 
291
 
 
292
@itemize @bullet
 
293
 
 
294
@item Translation updates: ja (SATO Satoru), it (Michele Campeotto),
 
295
zh_TW.Big5 (Chun-Chung Chen), pl (Daniel Koc), sk (Stanislav Visnovsky)
 
296
 
 
297
@item Items in @code{choice} widgets may now contain descriptive names,
 
298
syntax is @code{(@var{symbol} "@var{description}")}
 
299
 
 
300
@item Changed @code{focus-windows-when-mapped} option to only apply to
 
301
non-transient windows (this option is now enabled by default)
 
302
 
 
303
@item New placement modes @code{top-left} and @code{off-center}.
 
304
@code{top-left} is now the default mode for non-transients
 
305
 
 
306
@item Enabled the module supporting the newly standardized GNOME/KDE
 
307
window manager hints. Also made random changes to support KDE2 a lot
 
308
better
 
309
 
 
310
@item Added WM_PROTOCOLS @code{_SAWFISH_WM_RAISE_WINDOW} and
 
311
@code{_SAWFISH_WM_LOWER_WINDOW}. Used by @code{maybe-raise-window} and
 
312
@code{maybe-lower-window} functions.
 
313
 
 
314
These are similar to @code{WM_TAKE_FOCUS}, in that if the window
 
315
supports the protocol, it's up to it whether or not it raises (or
 
316
lowers) the window in question. These functions should only be used
 
317
where the user hasn't explicitly requested the restacking
 
318
 
 
319
An example usage is an application that doesn't want its window to be
 
320
raised due to a button-press event that initiates a drag operation
 
321
 
 
322
@item New option @code{menus-include-shortcuts}, disabled by default
 
323
(Unai Uribarri)
 
324
 
 
325
@item Don't interpret windows with @code{WM_TRANSIENT_FOR} set to the
 
326
root window as children of all windows in the group (it causes too many
 
327
annoying effects), instead just decorate these windows as transients
 
328
 
 
329
@item Handle @code{group} and @code{transient} iconification modes
 
330
better, don't use a recursive method, instead use one pass to identify
 
331
the windows to change, then another to make the changes. In
 
332
@code{transients} mode, only change the state of shared transients if
 
333
they will have no visible parents afterwards
 
334
 
 
335
@item In the (old) GNOME hints code, support a @code{_WIN_HINTS} client
 
336
message (with a similar format to the @code{_WIN_STATE} message)
 
337
 
 
338
@item New module @code{sawfish.wm.commands.viewport-extras}, some
 
339
commands for viewport for viewport navigation (Dams Nadļæ½)
 
340
 
 
341
@item Check for @code{never-iconify} and @code{never-maximize}
 
342
window properties when appropriate
 
343
 
 
344
@item Support sixth and seventh mouse buttons (Steve Haslam)
 
345
 
 
346
@item Bug fixes:
 
347
 
 
348
@itemize @minus
 
349
 
 
350
@item Fixed problems with reverting changes to list-based options
 
351
 
 
352
@item Don't allow the empty list as a valid modifier list
 
353
 
 
354
@item Fixed bug where restarting the wm with
 
355
@code{focus-windows-when-mapped} set would cause any shaded windows to
 
356
be deleted
 
357
 
 
358
@item Ignore iconified windows in the grow-pack code
 
359
 
 
360
@item Added @code{font-ascent} and @code{font-descent} functions to the
 
361
gaol
 
362
 
 
363
@item Catch errors when loading site-init and rep-defaults files
 
364
 
 
365
@item Don't use @code{""} to denote a null doc string (which has bad
 
366
side effects when internationalized)
 
367
 
 
368
@item Don't need to run @samp{sawfish-client -} to get a repl anymore,
 
369
just @samp{sawfish-client}
 
370
 
 
371
@item Fixed bugs in @code{composite-images} function
 
372
 
 
373
@item Fixed ordering of states output by @code{gtk-style} program
 
374
(michaelj@@maine.rr.com)
 
375
 
 
376
@item Fixed grabbing mono window icons in gdk-pixbuf mode
 
377
 
 
378
@item Reject button event descriptions that don't specify at least one
 
379
mouse button
 
380
 
 
381
@item Accept @code{()} as a valid image modifier color component
 
382
 
 
383
@item Now grabs translatable strings from @code{defgroup} forms
 
384
correctly
 
385
 
 
386
@end itemize
 
387
@end itemize
 
388
 
 
389
 
 
390
@heading 0.34
 
391
 
 
392
@itemize @bullet
 
393
 
 
394
@item Added a virtual modifier key, the @kbd{W-} modifier. This
 
395
modifier is used for all standard window-manager key bindings, it may
 
396
be set to any of the standard X modifiers using the configuration tool
 
397
 
 
398
@item Optionally show window-icons when cycling through windows (Unai
 
399
Uribarri Rodrļæ½guez, me)
 
400
 
 
401
@item Event handlers for low-level X windows now get passed the window
 
402
as their second argument (Unai Uribarri Rodrļæ½guez)
 
403
 
 
404
@item Translation updates: fr (Christian Marillat), sv (Richard Hult),
 
405
pt_BR (Flļæ½vio Bruno Leitner), it (Michele Campeotto)
 
406
 
 
407
@item Error handler module (@code{sawfish.wm.ext.error-handler}). When
 
408
loaded it records the most recent errors, and the time at which they
 
409
occurred. Use the @code{display-errors} command to display all recorded
 
410
errors.
 
411
 
 
412
@item Added an option to not save window-history data for transient
 
413
windows. Also added a @code{window-history-clear} command to forget
 
414
history for all windows.
 
415
 
 
416
@item Rearranged window operations menu to hopefully be clearer
 
417
 
 
418
@item Attempt to catch and handle errors while loading custom options
 
419
 
 
420
@item Labels in menu items can now be functions, they should return the
 
421
label text when called (with any menu arguments)
 
422
 
 
423
@item Moved installed message catalogues to $datadir/locale
 
424
 
 
425
@item @code{defcustom} forms may now a @code{:widget-flags} keyword, a
 
426
constant list of symbols passed to the configuration tool. Current
 
427
flags include: @code{expand-vertically} and @code{expand-horizontally}
 
428
 
 
429
@item Added a @code{sawfish.wm.util.ping} module, it implements the
 
430
@code{_NET_WM_PING} protocol of the new window manager spec.
 
431
 
 
432
@item @code{destroy-notify-hook} is no longer called asynchronously
 
433
 
 
434
@item Bug fixes:
 
435
 
 
436
@itemize @minus
 
437
 
 
438
@item Fixed various bugs when dragging/resizing windows
 
439
 
 
440
@item Reverted the changes to make the click-to-focus click-through
 
441
setting apply to window decorations
 
442
 
 
443
@item Fixed bug when handling 32-bit data in client messages and X
 
444
properties
 
445
 
 
446
@item Fixed window-focus problems when switching viewports
 
447
 
 
448
@item Many bug-fixes to handling of maximized window state. Maximized
 
449
state should now be preserved across wm and session restarts. It's also
 
450
saved in the window-history attributes
 
451
 
 
452
@item Support the function hints of the MWM window manager properties
 
453
 
 
454
@item Updated the @code{sawfish.wm.state.wm-spec} module to match the
 
455
current (almost final) draft of the new GNOME/KDE window manager spec
 
456
 
 
457
@item Fixed sporadic stacking bugs when unmapped windows exist
 
458
 
 
459
@item Fixed miscellaneous click-to-focus and focus-click-through
 
460
related bugs
 
461
 
 
462
@end itemize
 
463
@end itemize
 
464
 
 
465
 
 
466
@heading 0.33
 
467
 
 
468
@itemize @bullet
 
469
 
 
470
@item Added support for user-levels associated with individual commands
 
471
 
 
472
@item The GNOME hints code now understands that the do-not-cover flag
 
473
is the same as sawfish's @code{avoid} property
 
474
 
 
475
@item Swap properties of sticky windows when entering and leaving
 
476
workspaces as for normal windows (fixes the old problem where sticky
 
477
windows can grab focus when a workspace is entered)
 
478
 
 
479
@item Changed the default settings of some customization options,
 
480
hopefully to give a more ``conventional'' feel for new users
 
481
 
 
482
@item Better support for Xinerama (Geoff Reedy)
 
483
 
 
484
@item Added a new set of window stacking commands: @code{raise-window},
 
485
@code{lower-window}, @code{raise-lower-window}. The set of windows
 
486
affected by these commands is determined by the @code{user-raise-type}
 
487
(either the individual window, the window and any transients, or the
 
488
entire group). The old commands of these names are now called
 
489
@code{@var{foo}-single-window}.
 
490
 
 
491
Most modules now use these commands when raising or lowering windows,
 
492
allowing the stacking model to be configured globally.
 
493
 
 
494
@item Translation updates: no (Kjartan Maraas), fi (Antti Ahvensalmi),
 
495
it (Christopher R. Gabriel), pt_BR (Douglas Moura Ferreira), uk (Yuri
 
496
Syrota), de (Matthias Warkus)
 
497
 
 
498
@item Fixed bugs:
 
499
 
 
500
@itemize @minus
 
501
 
 
502
@item If committing changes in the configurator causes new
 
503
customization options or groups to be added, update the UI to reflect
 
504
this
 
505
 
 
506
@item Added code to detect and correct the sporadic bug where windows
 
507
become unfocusable in click-to-focus mode
 
508
 
 
509
@item Sanitized how the focus gets passed to and from transient windows
 
510
(when passing focus back from a transient, give it to the most recently
 
511
focused window in the group, not the transient's parent)
 
512
 
 
513
Also, try to avoid displaying maximize buttons in windows whose hints
 
514
prevent them from being maximized
 
515
 
 
516
@item Many fixes to how maximized windows are handled across session
 
517
and window manager restarts. Also support GNOME window maximized hints
 
518
when windows are created
 
519
 
 
520
@item Fixed some bugs in the @code{wm-spec} module
 
521
 
 
522
@item Don't trigger auto-raise hooks on leave/enter events generated by
 
523
pointer grabs
 
524
 
 
525
@item The @code{edge-flip-delay} option now applies when dragging
 
526
windows
 
527
 
 
528
@item Fixed the preview command in @code{sawfish-themer}
 
529
 
 
530
@item Miscellaneous fixes to the ``smart'' window placement modes
 
531
 
 
532
@item Fixed type description of @code{persisitent-group-ids} option
 
533
 
 
534
@item In @code{enter-exit} focus mode, focus isn't removed due to
 
535
enter/leave events due to pointer grabs (fixes the bug with Mozilla URL
 
536
completion)
 
537
 
 
538
@item Fixed (again) the @code{focus-click-through} behaviour with
 
539
respect to frame decorations
 
540
 
 
541
@item Re-added hack to make GMC icons unfocusable
 
542
 
 
543
@item Fixed interactive placement to check for window destruction
 
544
(merlin)
 
545
 
 
546
@item Fixed bug with tiled images with shapes (the shape mask would
 
547
always be applied an integer number of times, ignoring the size of the
 
548
frame part it's associated with)
 
549
 
 
550
@item Fixed @code{window-wants-input-p} to check if the
 
551
@code{InputHint} is set before reading the value
 
552
 
 
553
@end itemize
 
554
@end itemize
 
555
 
 
556
 
 
557
@heading 0.32
 
558
 
 
559
@itemize @bullet
 
560
 
 
561
@item @kbd{M-TAB} window cycling now works in both directions, bind
 
562
keys to @code{@var{cycle-command}-backwards}, e.g.
 
563
@code{cycle-windows-backwards} (Merlin, me)
 
564
 
 
565
@item Added support for X `Urgency' hint: @code{window-urgent-p} and
 
566
@code{window-state-change-hook} is called with @code{urgency} state
 
567
when it changes
 
568
 
 
569
@item Some improvements to @code{shade-hover} mode (adapted from Eli
 
570
Barzilay)
 
571
 
 
572
@item Functions that raise/lower groups of windows now generate the
 
573
minimum number of expose events (Rob Hodges, me)
 
574
 
 
575
@item New window property @code{window-list-skip}. Unified with GNOME
 
576
skip-winlist hint
 
577
 
 
578
@item Custom options may have tooltips, use @code{:tooltip} tag
 
579
 
 
580
@item Catch errors when applying custom changes and revert to previous
 
581
state
 
582
 
 
583
@item Translation updates: uk (Yuri Syrota), pt_BR (Douglas Moura
 
584
Ferreira), hu (Rļæ½bert Vļæ½nyi), de (Christian Meyer), ja (SATO Satoru),
 
585
da (Keld Jļæ½rn Simonsen), es (Iļæ½aki Garcļæ½a Etxebarria), fr (Christian
 
586
Marillat)
 
587
 
 
588
@item Fixed bugs:
 
589
 
 
590
@itemize @minus
 
591
@item With click-to-focus in non-click-through mode, don't
 
592
click-through into window decorations
 
593
 
 
594
@item @code{dimensions} property in window matching was called
 
595
@code{size} by mistake
 
596
 
 
597
@item Export the various @code{sp-cost:} functions from
 
598
the @code{sawfish.wm.placement.smart} module
 
599
 
 
600
@item Don't allow cycles in the transient-for relationship
 
601
 
 
602
@item Fixed some maximize bugs
 
603
 
 
604
@item GNOME skip-focus property no longer causes the window to be
 
605
unfocusable, just uncyclable-to
 
606
 
 
607
@item Coerce auto-raise timeout to be at least one millisecond; support
 
608
@code{disable-auto-raise} correctly
 
609
 
 
610
@item Window input hints defaults to true not false
 
611
 
 
612
@item Fixed typo when loading the defaults file (Ronald Wahl)
 
613
 
 
614
@item Fixed command spec of @code{move-window-@var{foo}} commands
 
615
(Yoshiki Hayashi)
 
616
 
 
617
@item When sending @code{WM_TAKE_FOCUS} message, only focus the window
 
618
if its `Input' hint is set
 
619
@end itemize
 
620
 
 
621
@end itemize
 
622
 
 
623
 
 
624
@heading 0.31.1
 
625
 
 
626
@itemize @bullet
 
627
 
 
628
@item Translation updates: da (Kenneth Christiansen), de (Christian
 
629
Meyer), no (Kjartan Maraas), pt_BR (Rui Miguel Silva Seabra), sv (Johan
 
630
Dahlin), uk (Yuri Syrota)
 
631
 
 
632
@item Bug fixes:
 
633
 
 
634
@itemize @minus
 
635
@item Fixed typos in @code{sawfish.wm.gnome.integration} and
 
636
@code{sawfish-themer} (Christian Marillat)
 
637
 
 
638
@item Fixed bug when building on Tru64 (John H. Palmieri)
 
639
 
 
640
@item Remember to check return value when initializing Imlib
 
641
@end itemize
 
642
 
 
643
@end itemize
 
644
 
 
645
 
 
646
@heading 0.31
 
647
 
 
648
@itemize @bullet
 
649
 
 
650
@item Requires librep version @code{0.13}
 
651
 
 
652
@item Organized all lisp code into a hierarchy of modules. Root points
 
653
are @code{sawfish.wm} for window manager code, @code{sawfish.ui} for
 
654
configurator and @code{sawfish.gtk} for GTK+ utilities
 
655
 
 
656
Compatibility should have been preserved as far as possible, through
 
657
the use of module aliases. The @code{user} module that unmodularized
 
658
user code is loaded in should look very similar to the old environment.
 
659
However, code using private functions, probably will not work
 
660
 
 
661
New features written as modules can either import modules individually,
 
662
or just open @code{sawfish.wm} to get the core functionality
 
663
 
 
664
@item All command handling is now written in Lisp. It's fully
 
665
compatible except for how commands are defined. Since there is no
 
666
longer a unified namespace the mapping from names to command
 
667
definitions is maintained separately.
 
668
 
 
669
@code{define-command} and @code{autoload-command} add entries to this
 
670
mapping. @code{define-command} takes a name and a function (and some
 
671
other optional arguments). The old style of defining commands still
 
672
works, but only in the user module
 
673
 
 
674
@item @code{sawfish-client} now provides the same repl as the normal
 
675
@code{rep} program. E.g. this allows the module system to be easily
 
676
inspected
 
677
 
 
678
Also, the module of each loaded theme is available for inspection under
 
679
@code{themes.@var{theme-name}}. (With themes using top-level defines
 
680
instead of a single @code{let*} block, this is useful for debugging)
 
681
 
 
682
@item @code{sawfish.client} module provides lisp functions for
 
683
communicating with a running window manager. Also, the protocol has
 
684
been modified to support proper communication of errors, which are then
 
685
re-raised on the client-side. This should make debugging client-server
 
686
code more obvious
 
687
 
 
688
@item `Action' parts of menu items may now be lisp objects that don't
 
689
have a read syntax. (E.g. this allows closures to be used, avoiding the
 
690
problems arising from modularization)
 
691
 
 
692
@item Support for checked and radio-group menu items. Also a new
 
693
function @code{add-window-menu-toggle} to add items to the
 
694
@samp{Toggle} sub-menu of each window
 
695
 
 
696
@item Handle @code{ConfigureRequest} events in a way that is compliant
 
697
with the ICCCM---honour the window's @code{win_gravity} setting
 
698
(defaulting to @code{NorthWest} gravity), instead of assuming
 
699
@code{Static} gravity
 
700
 
 
701
@item Support more GC attributes in the @code{sawfish.wm.util.x} plugin
 
702
(Ryan Pavlik)
 
703
 
 
704
@item Support for handling arbitrary windows as extra ``root'' windows.
 
705
Used, e.g., to support Nautilus' desktop window. Allows the focus modes
 
706
to work correctly
 
707
 
 
708
To support this, new window property @code{desktop} denoting a
 
709
``desktop'' window; new function @code{desktop-window-p} recognizing
 
710
one of these things (or the symbol @code{root})
 
711
 
 
712
@item Added @code{pointer-motion-threshold} option. Pointer motion
 
713
events are only generated when the pointer moves at this many pixes
 
714
away from the position it had when the button was pressed
 
715
 
 
716
@item New functions: @code{scale-image}, @code{composite-images}, and
 
717
@code{crop-image}.
 
718
 
 
719
@item New option @code{maximize-avoid-avoided} (Jonas Linde)
 
720
 
 
721
@item New functions exported by @code{sawfish.wm.ext.tooltips} module:
 
722
@code{display-tooltip}, @code{remove-tooltip}
 
723
 
 
724
@item New function exported from @code{sawfish.wm.viewports} module:
 
725
@code{select-workspace-and-viewport}. Renamed some workspace functions:
 
726
 
 
727
@noindent
 
728
@code{ws-move-window} @result{} @code{move-window-to-workspace},
 
729
@code{ws-copy-window} @result{} @code{copy-window-to-workspace},
 
730
@code{ws-insert-workspace} @result{} @code{insert-workspace},
 
731
@code{ws-move-workspace} @result{} @code{move-workspace},
 
732
@code{ws-remove-window} @result{} @code{remove-workspace}.
 
733
 
 
734
@item Changed interface of @code{get-visible-window-edges} function to
 
735
use proper keyword parameters, and added some new keywords
 
736
 
 
737
@item New commands @code{help:about} and @code{gnome-about}. Added a
 
738
@code{sawfish-about} script to implement the first of these. Added
 
739
associate menu items to the `Help' menu
 
740
 
 
741
@item New window property @code{cycle-skip}, defines whether the window
 
742
is included when cycling the focused window. (Dave Dribin, me)
 
743
 
 
744
@item Translation additions and updates: es (Iļæ½aki Garcļæ½a Etxebarria),
 
745
tr (Fatih Demir), zh_CN.GB2312 (zw@@zhaoway.com), fr (Christian
 
746
Marillat), ja (SATO Satoru), de (Kai Lahmann), el (Simos Xenitellis),
 
747
ga (Seļæ½n ļæ½ Ceallaigh), ru (Valek Filippov), sl (Andraz Tori)
 
748
 
 
749
@item Bug fixes:
 
750
 
 
751
@itemize @minus
 
752
@item Don't let errors in @file{.sawfishrc} prevent customization
 
753
settings being loaded
 
754
 
 
755
@item initialize event handler when creating X window proxies (Matt
 
756
Tucker)
 
757
 
 
758
@item No longer able to @code{throw} out the top of the program by
 
759
mistake
 
760
 
 
761
@item Fixed @code{find-head} function, to allow Xinerama support to
 
762
work
 
763
 
 
764
@item When exiting, leave window configurations exactly as they were
 
765
found (E. Jay Berkenbilt)
 
766
 
 
767
@item Fixed @code{synthesize-event} to scan the window tree for a child
 
768
window accepting button events (E. Jay Berkenbilt)
 
769
 
 
770
@item Removed ``yow! @dots{}'' debugging messages
 
771
 
 
772
@item @code{image-set} and related functions will add an alpha channel
 
773
to the image when necessary (when using gdk-pixbuf)
 
774
 
 
775
@item Canonify @kbd{S-x} as @kbd{X} where possible
 
776
 
 
777
@item Catch and handle errors when matching properties in the
 
778
@code{sawfish.wm.ext.match-window} 
 
779
 
 
780
@item Escape underscores in menu items where they shouldn't introduce
 
781
accelerators. (Added @code{quote-menu-item} function to help with this)
 
782
 
 
783
@item Fixed race-condition when exiting configurator embedded into the
 
784
GNOME control center (Havoc Pennington, me)
 
785
 
 
786
@item Fixed bug in @code{set} method of the @code{icon} widget
 
787
 
 
788
@item Fixed shading behaviour of included themes (Daniel Lundell)
 
789
 
 
790
@item Compute the shape of the frame window each time the background of
 
791
one of its parts changes
 
792
@end itemize
 
793
@end itemize
 
794
 
 
795
 
 
796
@heading 0.30.3
 
797
 
 
798
@itemize @bullet
 
799
 
 
800
@item If a frame part has a non-nil @code{hidden} attribute, ignore it
 
801
 
 
802
@item When reframing windows, keep the absolute position of the client
 
803
window constant
 
804
 
 
805
@item Support @code{FIXED_POSITION} GNOME hint (renamed old
 
806
@code{fixed-position} property as @code{client-set-position};
 
807
@code{fixed-position} now means don't allow the window to be moved by
 
808
the user)
 
809
 
 
810
@item @code{transients-above} option can now be set per-window
 
811
 
 
812
@item Translation updates: fr (Christian Marillat), en_GB (Robert
 
813
Brady), de (Kai Lahmann), da (Keld Simonsen), ru (Valek Filippov), sl
 
814
(Andraz Tori), no (Kjartan Maraas), gl (Jesus Bravo Alvarez), it
 
815
(Michele Campeotto)
 
816
 
 
817
@item Fixed bugs when converting option values
 
818
 
 
819
@item Fixed @code{:require} keyword in @code{defcustom} always causing
 
820
the module to be loaded, not just when the option is non-nil
 
821
 
 
822
@item Fixed bug when adding windows that are shaded
 
823
 
 
824
@item Fixed some minor bugs in the configurator
 
825
 
 
826
@end itemize
 
827
 
 
828
 
 
829
@heading 0.30.2
 
830
 
 
831
@itemize @bullet
 
832
 
 
833
@item Window cycling now forwards terminating events to external
 
834
applications as well as internal bindings (e.g. @kbd{M-TAB M-w} closes
 
835
an activated Netscape window)
 
836
 
 
837
@item @code{quote-event} command now works with applications that
 
838
ignore synthetic events (adapted from code by Timo Korvola)
 
839
 
 
840
@item Reorganized frame style and window type management. New function
 
841
@code{define-frame-type-mapper} allows modules to affect the mapping
 
842
from window type to frame type. E.g. the shading module uses this.
 
843
(fixes the bug that changing the frame type of a shaded window didn't
 
844
work)
 
845
 
 
846
@item Added function @code{variable-customized-p}; use this to avoid
 
847
redefining user-modified options
 
848
 
 
849
@item Do type-directed deep conversion of values when converting
 
850
to/from readable representations. This fixes the bug that options with
 
851
@code{:type (optional color)} weren't being converted when passed
 
852
between the wm and the configurator, leading to reader errors
 
853
 
 
854
A side-effect of this is that updated custom files will not be
 
855
compatible with previous versions of the wm (though old custom files
 
856
will work with new versions)
 
857
 
 
858
@item Translation updates: no (Kjartan Maraas), de (Kai Lahmann), nl
 
859
(Dennis Smit), sl (Andraz Tori)
 
860
 
 
861
@item Added primitives @code{map-windows} and @code{filter-windows}
 
862
 
 
863
@item Fixed bug of not retaining focus on startup when originally in
 
864
PointerRoot mode and moving to click-to-focus mode (Brad Thompson)
 
865
 
 
866
@item Ensure that apps get sent a synthetic ConfigureNotify event after
 
867
ConfigureRequest events are handled (fixes bug where menus in Java apps
 
868
can appear at wrong position until window is moved)
 
869
 
 
870
@item When referencing known variables from subroutines, make sure that
 
871
restricted environment doesn't prevent the variable being accessed
 
872
(fixes bug where @code{default-bevel-percent} was being ignored)
 
873
 
 
874
@item When creating transient groups, don't compare null group ids
 
875
(fixes xfmail related bugs)
 
876
 
 
877
@item Fixed @code{move-window-to-viewport} command to correct for
 
878
1@dots{} indexing
 
879
 
 
880
@item Fixed non-gnome workspace widget in configurator
 
881
 
 
882
@end itemize
 
883
 
 
884
 
 
885
@heading 0.30
 
886
 
 
887
@itemize @bullet
 
888
 
 
889
@item New commands @code{activate-viewport-column},
 
890
@code{activate-viewport-row}
 
891
 
 
892
@item New commands @code{raise-window-and-transients},
 
893
@code{lower-window-and-transients} and
 
894
@code{raise-lower-window-and-transients},
 
895
@code{raise-transients-and-pass-through-click}.
 
896
 
 
897
As the normal window stacking commands, but restacks the
 
898
``transient-group'' of the window. This includes the window itself and
 
899
any transients it has, and any windows that it itself is a transient
 
900
of.
 
901
 
 
902
These commands are used in the default keymaps
 
903
 
 
904
@item Functions that deal with transient windows now understand the de
 
905
facto standard of setting the @code{WM_TRANSIENT_FOR} property to the
 
906
root window denotes that the window is a transient for the whole group
 
907
 
 
908
@item New image manipulation functions: @code{image-ref},
 
909
@code{image-set}, @code{image-fill}, @code{image-map}. New color
 
910
accessor function @code{color-rgb-8}. New function
 
911
@code{root-window-id}
 
912
 
 
913
@item Improvements to @code{sawfish-ui}: optionally use some GNOME
 
914
widgets, more lisp widget types, some bug fixes
 
915
 
 
916
@item New command @code{command-sequence}. Allows individual bindings
 
917
to invoke a sequence of commands
 
918
 
 
919
@item Options @code{iconify-group-mode} and @code{uniconify-group-mode}
 
920
replace @code{iconify-whole-group} and @code{uniconify-whole-group}.
 
921
New commands @code{iconify-transient-group}, and
 
922
@code{uniconify-transient-group}
 
923
 
 
924
@item Added @code{:type*} key to @code{defcustom}, like @code{:type},
 
925
but value is left unquoted
 
926
 
 
927
@item Translation updates: pl (Daniel Koc), ru (Valek Filippov), uk
 
928
(Yuri Syrota), es (Iļæ½aki Garcļæ½a Etxebarria)
 
929
 
 
930
@item Fixed handling of @code{WM_NORMAL_HINTS} (was using base-size
 
931
instead of min-size in places)
 
932
 
 
933
@item Fixed further locale / FontSet bug (Tomohiro KUBOTA)
 
934
 
 
935
@item @code{window-history} module won't resize a window to a size that
 
936
violates its size constraints
 
937
 
 
938
@end itemize
 
939
 
 
940
 
 
941
@heading 0.29
 
942
 
 
943
@itemize @bullet
 
944
 
 
945
@item Rewrote the configuration user interface. Improvements include:
 
946
 
 
947
@itemize @minus
 
948
@item Key bindings may now include parameters. E.g. this finally allows
 
949
shell commands to be bound to keys using the GUI (use the new
 
950
@code{run-shell-command} command)
 
951
 
 
952
@item Nautilus-like user-levels to tailor the options shown to the
 
953
expertise of the user
 
954
 
 
955
@item Options may have much richer type descriptions (including
 
956
@code{match-window} options). Also, extra widget types and containers
 
957
may be added as extra Lisp modules
 
958
 
 
959
@item By default the stand-alone configurator commits changes to the
 
960
window manager as they are made, instead of waiting for the @samp{Try}
 
961
button to be pressed
 
962
 
 
963
@item Added dependences---options with dependences are only editable
 
964
when the value of their dependence is non-@code{nil}
 
965
@end itemize
 
966
 
 
967
@item Rewrote window stacking code to be based on ``stacking
 
968
predicates''---functions that accept or reject a possible stacking
 
969
configuration. This allows the ``stack-transients-above-parents''
 
970
option to work correctly, only keeping transient windows above their
 
971
@emph{own} parent windows
 
972
 
 
973
@item The configure-event handler now understands and handles the full
 
974
complexity of stacking requests (Brad Thompson)
 
975
 
 
976
@item New frame-part attribute: @code{scale-foreground}. The
 
977
@code{cursor} attribute may now be a function
 
978
 
 
979
@item Made the @code{centered}, @code{centered-on-parent} and
 
980
@code{under-pointer} placement modes clamp the window into the current
 
981
work area (i.e. without overlapping windows that shouldn't be covered).
 
982
Added a @code{stagger} placement mode
 
983
 
 
984
@item When grabbing window icons to images, preserve their shape masks
 
985
 
 
986
@item Moved @code{window-history} options to @code{placement} group.
 
987
Fixed some more bugs and sub-optimal default option values
 
988
 
 
989
@item Don't set cursors for button classes, use the default value
 
990
 
 
991
@item GNOME @code{SKIP_FOCUS} window hint sets @code{never-focus}
 
992
property on window, as well as the @code{ignored} property
 
993
 
 
994
@item Translation updates: de (Karl Eichwalder), ru (Valek Filippov),
 
995
da (Kenneth Christiansen)
 
996
 
 
997
@item Added mostly-complete support for using gdk-pixbuf instead of
 
998
Imlib (requires an experimental Xlib version of the gdk-pixbuf library)
 
999
 
 
1000
@item Various bug fixes and other minor changes@dots{}
 
1001
 
 
1002
@end itemize
 
1003
 
 
1004
 
 
1005
@heading 0.28.1
 
1006
 
 
1007
@itemize @bullet
 
1008
 
 
1009
@item New options @samp{--visual=@var{TYPE}} and
 
1010
@samp{--depth=@var{DEPTH}}. These tell the window manager to use a
 
1011
different visual than the default
 
1012
 
 
1013
@item Made the @code{window-history} module behave more sanely (don't
 
1014
save iconified or shaded state; include window name when generating
 
1015
keys for transient windows)
 
1016
 
 
1017
@item Made @code{beos-window-module} the standard window menu (require
 
1018
@code{old-window-menu} to get the original version). Also made this
 
1019
display the windows' class names
 
1020
 
 
1021
@item Updated translations: es (Iļæ½aki Garcļæ½a Etxebarria), tr (Fatih
 
1022
Demir)
 
1023
 
 
1024
@end itemize
 
1025
 
 
1026
 
 
1027
@heading 0.28
 
1028
 
 
1029
@itemize @bullet
 
1030
 
 
1031
@item New module @code{window-history}---automatically saves window
 
1032
attributes when they are explicitly set by the user, then copies these
 
1033
attributes to windows with the same @code{WM_CLASS} as they are
 
1034
created. This is loaded automatically if you have no @file{.sawfishrc}
 
1035
 
 
1036
@item New method of allowing themes to implement only some of the
 
1037
(currently) four frame types. The variable
 
1038
@code{frame-type-fallback-alist} maps each frame type to the type to
 
1039
try if the original type isn't available in the chosen frame style.
 
1040
 
 
1041
Note that for this to work, themes must return @code{nil} when they
 
1042
don't support the requested frame type, until now, the convention had
 
1043
been to return the default frame definition, so most if not all themes
 
1044
will need changing. (This doesn't include themes created using the
 
1045
@code{make-theme} module.)
 
1046
 
 
1047
@item Made the metrics used by the @code{best-fit} placement mode
 
1048
user-controllable. Set the @code{sp-cost-components} variable to a list
 
1049
of cost functions and the weight to apply to that metric. E.g. by
 
1050
default it gives 50% importance to the distance from the placement to
 
1051
the focused window, and 25% each to the distance to the pointer and to
 
1052
the ``future-unusefulness'' of the area being covered
 
1053
 
 
1054
@item New module @code{beos-window-menu} to redefine the window menu to
 
1055
group items by the window group that they are a member of (in the
 
1056
absence of actual group information, it will heuristically build groups
 
1057
by matching window titles)
 
1058
 
 
1059
@item New option @code{edge-flip-warp-pointer}, whether or not to warp
 
1060
the pointer after edge-flipping (Paul Warren)
 
1061
 
 
1062
@item New option @code{display-window:uniconify-to-current-workspace},
 
1063
controls whether windows uniconified by @code{display-window} should be
 
1064
moved to the current workspace (John N S Gill)
 
1065
 
 
1066
@item Changed method of selecting when to use multi-byte aware
 
1067
rendering functions (except when initializing the locale fails, or
 
1068
returns a 7-bit locale); also, when creating a fontset fails, try to
 
1069
intelligently fall back to a similar group of fonts (Tomohiro Kubota)
 
1070
 
 
1071
@item The @code{x} library now supports creating and then drawing to
 
1072
pixmaps. The pixmaps can then be grabbed to images using the
 
1073
@code{make-image-from-x-drawable} function
 
1074
 
 
1075
@item Added a @samp{Help} item to the root menu
 
1076
 
 
1077
@item Translation updates: fi (Antti Ahvensalmi), gl (Jesus Bravo
 
1078
Alvarez), de (Karl Eichwalder), nl (Jan Nieuwenhuizen), pl (Daniel
 
1079
Koc), tr (Fatih Demir)
 
1080
 
 
1081
@item Now supports the @kbd{Super} modifier
 
1082
 
 
1083
@item Fixed bug of sometimes ignoring pending X events
 
1084
 
 
1085
@item Fixed bug of calling focus change hooks too many times (only when
 
1086
our view of the focused window has actually changed)
 
1087
 
 
1088
@item Avoid problems when windows set weird size hints structures
 
1089
 
 
1090
@item Raise windows @emph{after} possibly moving them to a different
 
1091
layer, when they have been mapped
 
1092
 
 
1093
@item When the @code{cycle-windows} sequence is terminated by an
 
1094
unknown event, re-handle that event after exiting (so that e.g.
 
1095
@kbd{M-TAB} can be followed by another @kbd{M-} qualified event without
 
1096
releasing Meta)
 
1097
 
 
1098
@end itemize
 
1099
 
 
1100
 
 
1101
@heading 0.27.2
 
1102
 
 
1103
@itemize @bullet
 
1104
 
 
1105
@item Translation updates: da (Kenneth Christiansen), de (Karl
 
1106
Eichwalder), es (Iļæ½aki Garcļæ½a Etxebarria), ja (SATO Satoru)
 
1107
 
 
1108
@item Attempt to destructure the language code when parsing GNOME
 
1109
desktop items (e.g. if @samp{LANG=de_DE} look for both @samp{de_DE} and
 
1110
@samp{de} translations)
 
1111
 
 
1112
@item New focus handler events @code{enter-root} and @code{leave-root}
 
1113
 
 
1114
@item Removed @code{raise-groups-on-focus} option, it caused unstable
 
1115
window flickering in certain cases
 
1116
 
 
1117
@item Fixed bug When transferring focus after a window is unmapped
 
1118
(inverted choice of when to look under pointer, and when to look in
 
1119
focus history)
 
1120
 
 
1121
@end itemize
 
1122
 
 
1123
 
 
1124
@heading 0.27
 
1125
 
 
1126
@itemize @bullet
 
1127
 
 
1128
@item Changed the name from @samp{sawmill} to @samp{sawfish}; all
 
1129
user-visible binaries have been renamed appropriately, the old programs
 
1130
will still work for now@dots{}
 
1131
 
 
1132
@item Added support for accelerators in menu definitions (this requires
 
1133
a new rep-gtk package) (Richard Kilgore). Added accelerators to many of
 
1134
the standard menu items
 
1135
 
 
1136
@item Added some (untested) support for Xinerama: @code{current-head},
 
1137
@code{current-head-dimensions}, @code{current-head-offset}. Some
 
1138
placement modes should handle multiple heads sensibly, as should window
 
1139
maximization and edge snapping.
 
1140
 
 
1141
@item Added icons for GNOME control center applets (all icons by
 
1142
Tigert, except for the saw-blade logo by Glyph Lefkowitz)
 
1143
 
 
1144
@item New functions @code{map-window-properties} (me),
 
1145
@code{window-icon-image} (Bruce Miller)
 
1146
 
 
1147
@item Changed behaviour of @code{raise-group} and @code{lower-group} to
 
1148
preserve the stacking of the group, then change the selected window.
 
1149
Added new command @code{raise-lower-group}
 
1150
 
 
1151
@item New option @code{raise-groups-on-focus}
 
1152
 
 
1153
@item Updated translations: de (Hubert Nachbaur), es (Iļæ½aki Garcļæ½a
 
1154
Etxebarria), gl (Jesus Bravo Alvarez), ko
 
1155
(Man-Yong Lee), tr (Fatih Demir)
 
1156
 
 
1157
@item Try to handle errors more gracefully when creating window frames
 
1158
 
 
1159
@item Better handling of errors in the control center applet
 
1160
 
 
1161
@item Fixed the @code{below-client} frame-part attribute
 
1162
 
 
1163
@item Fixed the disappearing items in the match-windows dialog
 
1164
 
 
1165
@item Fixed the non-beautified entries in the keymaps dialog
 
1166
 
 
1167
@item Fixed interactive placement mode (Timo Korvola)
 
1168
 
 
1169
@item Invoke audio playing program asynchronously, may avoid deadlocks
 
1170
 
 
1171
@item Fixed @code{workspace-menu} to add the focus-marking asterisk
 
1172
(John N S Gill)
 
1173
 
 
1174
@item Fixed menu-obscuring bug after auto-raising windows
 
1175
 
 
1176
@item Ensure that @code{WM_STATE} property is set each time a window is
 
1177
mapped, not just the first time
 
1178
 
 
1179
@item Fixed bug when discarding grab in click-to-focus mode, even
 
1180
though successive events may be in the window's keymap
 
1181
 
 
1182
@item Only focus windows when they're mapped when they're visible
 
1183
 
 
1184
@item Fixed click-to-focus problems when unmapping transient windows
 
1185
 
 
1186
@end itemize
 
1187
 
 
1188
 
 
1189
@heading 0.26
 
1190
 
 
1191
@itemize @bullet
 
1192
 
 
1193
@item Added plugin @code{selection}, adds functions
 
1194
@code{x-selection-active-p} and @code{x-get-selection} for retrieving X
 
1195
selections (Mark Probst)
 
1196
 
 
1197
@item New functions @code{prompt-for-window},
 
1198
@code{prompt-for-workspace} and @code{select-workspace-interactively}
 
1199
(Dave Pearson)
 
1200
 
 
1201
@item @code{window-anim} module enabling asynchronous animations after
 
1202
window events. Currently only two animation styles @code{wireframe} and
 
1203
@code{solid}, and they only animate window iconification
 
1204
 
 
1205
@item @code{audio-events} module; maps window manager events to audio
 
1206
samples (played using esd by default, but can be configured to use any
 
1207
program)
 
1208
 
 
1209
@item When running programs in terminals from the GNOME apps menu, use
 
1210
the value of @code{xterm-program} to decide which terminal program to
 
1211
use (James Antill)
 
1212
 
 
1213
@item Translation updates: gl (Jesus Bravo Alvarez), pl (Daniel Koc)
 
1214
 
 
1215
@item New command @code{toggle-window-iconified} (Jens-Ulrik Petersen)
 
1216
 
 
1217
@item New option @code{raise-windows-when-unshaded}
 
1218
 
 
1219
@item Customization options for tooltip colors (Erik Assum)
 
1220
 
 
1221
@item Removed default binding to @kbd{A-x}
 
1222
 
 
1223
@item Added support for librep-with-module-system (cvs version)
 
1224
 
 
1225
@item Note that @samp{ko} and @samp{zh} languages need FontSets
 
1226
 
 
1227
@item When sticking a window not on the current viewport, move it to
 
1228
the current viewport (Merlin)
 
1229
 
 
1230
@item Fixed bug (?) of placing over avoided windows in @code{random}
 
1231
mode; also increased @code{sp-avoided-windows-weight} by an order of
 
1232
magnitude (Dan Winship)
 
1233
 
 
1234
@item Fixed bug of maximizing a window changing its viewport
 
1235
 
 
1236
@item Fixed window cycling losing grab if originally focused window is
 
1237
unmapped
 
1238
 
 
1239
@item Fixed @code{get-cursor} to use the correct background color when
 
1240
creating cursors from vectors (Alexander Barinov)
 
1241
 
 
1242
@item Fixed @code{get-font} to set `descent' property correctly
 
1243
 
 
1244
@item Changed double-buffering semantics in @code{x} plugin, also only
 
1245
support this if configure finds the correct header files
 
1246
 
 
1247
@item Fixed @code{synthesize-event} to generate correct relative
 
1248
pointer positions
 
1249
 
 
1250
@item Don't focus on non-visible windows (crashes GNOME control center)
 
1251
 
 
1252
@item Fixed bug of using @file{cp} to install GNOME desktop files
 
1253
 
 
1254
@end itemize
 
1255
 
 
1256
 
 
1257
@heading 0.25.2
 
1258
 
 
1259
@itemize @bullet
 
1260
 
 
1261
@item If no user customization file when saving options, inherit from
 
1262
the custom-defaults file
 
1263
 
 
1264
@item Rewrote window stacking (fixes bugs, more efficient)
 
1265
 
 
1266
@item Added @code{input-focus} to theme-callable functions
 
1267
 
 
1268
@item When focused window is unmapped, don't try to focus non-visible
 
1269
windows
 
1270
 
 
1271
@item Fixed @code{display-window} when it's applied to iconified
 
1272
windows
 
1273
 
 
1274
@item New variables @code{fonts-are-fontsets} and
 
1275
@code{fontset-languages-re} to work around broken X servers
 
1276
 
 
1277
@item Update edges for snapping to when dragging windows across
 
1278
workspaces or viewports
 
1279
 
 
1280
@item When passing keymaps to customization system, filter out, then
 
1281
later restore, bindings that aren't symbols
 
1282
 
 
1283
@item Most commands to move/copy windows between workspaces can now be
 
1284
told whether to select the destination workspace or not
 
1285
 
 
1286
@item In GNOME hints, never place windows on workspaces that don't
 
1287
exist (from the pager's POV). (Rob Hodges)
 
1288
 
 
1289
@item Fixed @code{ws-move-window} to not remove the window if source
 
1290
and dest are the same (Rob Hodges)
 
1291
 
 
1292
@item Fixed @code{sp-prune-points} function (Dan Winship)
 
1293
 
 
1294
@item Fixed @code{move-viewport-to-window} to only flip viewports if
 
1295
window isn't already on the current viewport (Merlin)
 
1296
 
 
1297
@item Try to detect and handle system clock being rewound
 
1298
 
 
1299
@item Optional second arg to @code{x-raise-window}; added symmetrical
 
1300
function @code{x-lower-window}
 
1301
 
 
1302
@item Fixed unix-domain server code assuming atomic writes to sockets
 
1303
 
 
1304
@item Added double buffering support to @code{x} module
 
1305
 
 
1306
@item Fixed grabs during multi-key sequences; also, print the current
 
1307
prefix keys if idle during a multi-key sequence
 
1308
 
 
1309
@end itemize
 
1310
 
 
1311
 
 
1312
@heading 0.25.1
 
1313
 
 
1314
@itemize @bullet
 
1315
 
 
1316
@item Only force windows onto the visible screen if they didn't
 
1317
explicitly set their position
 
1318
 
 
1319
@item Redefine @code{/} in themes to be the @code{quotient} function
 
1320
(integer division), which is what they expect. The @code{divide}
 
1321
function can be used for real division
 
1322
@end itemize
 
1323
 
 
1324
 
 
1325
@heading 0.25
 
1326
 
 
1327
@itemize @bullet
 
1328
 
 
1329
@item New plugin @code{x}, a basic Xlib binding for creating and
 
1330
drawing in windows (Merlin, me)
 
1331
 
 
1332
@item Added a method of reading textual input from the user from
 
1333
completion. Provision for completing functions, variables, commands,
 
1334
files, directories, etc@dots{}. Also supports reading passwords. (Topi
 
1335
Paavola, me)
 
1336
 
 
1337
@item Re-enabled the following interactive codes: @samp{a} (function),
 
1338
@samp{C} (command), @samp{D} (directory), @samp{f} (existing file),
 
1339
@samp{F} (file), @samp{k} (event), @samp{n} (number), @samp{N} (prefix
 
1340
or number), @samp{s} (string), @samp{S} (symbol), @samp{v} (variable)
 
1341
 
 
1342
@item Support prefix keys in bindings (binding an event to a keymap, or
 
1343
the name of a keymap, marks that event as a prefix key for the
 
1344
associated keymap)
 
1345
 
 
1346
@item New command @code{call-command-with-output-to-screen}, prompts
 
1347
for and invokes a command, then displays any output it emitted (bound
 
1348
to @kbd{A-x} in default keymaps)
 
1349
 
 
1350
@item New variable @code{multi-click-delay}, maximum time in
 
1351
milliseconds between button presses to count as @kbd{click2} or
 
1352
@kbd{click3} events (Martin Blais)
 
1353
 
 
1354
@item New option @code{edge-flip-only-when-moving} (Yaron M. Minsky)
 
1355
 
 
1356
@item New window cycling commands @code{cycle-prefix},
 
1357
@code{cycle-class} (Kai Groļæ½johann); can now be bound to events with
 
1358
more than one modifier (Timo Korvola)
 
1359
 
 
1360
@item New command @code{uniquify-window-name}; new property
 
1361
@code{unique-name}. Forces the window to have a unique name
 
1362
 
 
1363
@item New commands @code{size-window-add-column},
 
1364
@code{size-window-subtract-column}, @code{size-window-add-row},
 
1365
@code{size-window-subtract-row}
 
1366
 
 
1367
@item Window edge snapping now has three variants: @code{magnetism}
 
1368
(the old method), @code{attraction} and @code{resistance}. (Merlin, me)
 
1369
 
 
1370
@item New commands @code{grow-window-@{left,right,up,down@}} and
 
1371
@code{pack-window-@{left,right,up,down@}} (Kai Groļæ½johann)
 
1372
 
 
1373
@item Support the @code{WM_COLORMAP_WINDOWS} protocol
 
1374
 
 
1375
@item New functions @code{synthesize-event}, @code{font-ascent},
 
1376
@code{font-descent}, @code{call-with-keyboard-grabbed}
 
1377
 
 
1378
@item New functions @code{define-placement-mode} and
 
1379
@code{define-focus-mode}---make defining these things easier. Focus
 
1380
modes are now settable for each window individually
 
1381
 
 
1382
@item Made the tree-organised customization groups work better with the
 
1383
GNOME control center. Add the sawmill capplet desktop entries to the
 
1384
GNOME programs menu (under Settings). Also, beautify the names
 
1385
displayed in the bindings widget
 
1386
 
 
1387
@item When applicable, load the GNOME applications menu when the wm is
 
1388
first idle, reduces the latency of displaying the first root menu
 
1389
 
 
1390
@item Translation updates: de (Hubert Nachbaur), es (Iļæ½aki Garcļæ½a
 
1391
Etxebarria), ja (Sato Satoru), sv (Andreas Persenius)
 
1392
 
 
1393
@item Fix bug of not noticing when the keyboard / pointer / modifier
 
1394
mappings change
 
1395
 
 
1396
@item Fixed @code{current-event-string} function
 
1397
 
 
1398
@item Better method of reconfiguring frames when they're resized (helps
 
1399
opaque resizing)
 
1400
 
 
1401
@item Added some kludges to try and break the intermittent lockups some
 
1402
people have seen
 
1403
 
 
1404
@item Made the auto-gravity option work a lot better (John N S Gill,
 
1405
me)
 
1406
 
 
1407
@item Fixed bug where unmapped windows were being included in the
 
1408
snapping calculation
 
1409
 
 
1410
@item Fixed bug when uniconifying windows and merging workspaces
 
1411
 
 
1412
@item Fixed bug of warp-cursor-to-window trying to put the pointer
 
1413
outside the screen boundaries (Merlin)
 
1414
 
 
1415
@item Fixed bug of losing keyboard grab when originally focused window
 
1416
is deleted during @code{x-cycle} command
 
1417
 
 
1418
@item Fixed bug of trying to focus unviewable parent windows when
 
1419
focused window is unmapped
 
1420
 
 
1421
@end itemize
 
1422
 
 
1423
 
 
1424
@heading 0.24
 
1425
 
 
1426
@itemize @bullet
 
1427
 
 
1428
@item Configure requests events are now passed to the hook
 
1429
@code{configure-request-hook}. The new configure handler respects
 
1430
window gravity when resizing
 
1431
 
 
1432
@item New option @code{configure-auto-gravity}. When enabled the window
 
1433
gravity is implied by the position of the center of the window. (e.g.
 
1434
try placing the GNOME control center in the bottom right corner of the
 
1435
screen, then click on an item that causes it to resize)
 
1436
 
 
1437
@item Worked around the numerous reports of non-existent font errors
 
1438
that using @code{XCreateFontSet} causes---fall back to
 
1439
@code{XLoadQueryFont} if possible
 
1440
 
 
1441
@item There's now a library @file{custom-defaults} giving default
 
1442
customization options (only if the user has no
 
1443
@file{~/.sawmill/custom})
 
1444
 
 
1445
Also, remove the need to call @code{custom-add-required} in
 
1446
@file{.sawmillrc}, it's always done now
 
1447
 
 
1448
@item New window properties @code{focus-when-mapped}, and
 
1449
@code{gravity} (overrides the hinted gravity value)
 
1450
 
 
1451
@item New placement modes @code{under-pointer} and
 
1452
@code{centered-on-parent}
 
1453
 
 
1454
@item New option @code{resize-edge-mode}, replaces
 
1455
@code{resize-by-frame-class} and @code{resize-add-edges}>. Also allows
 
1456
twm-style resizing (Mark Probst, me)
 
1457
 
 
1458
@item Optionally display command documentation in tooltips; tooltips
 
1459
are now aligned into columns (if you use a monospaced font for them)
 
1460
 
 
1461
@item Variables @code{default-cursor},
 
1462
@code{synthetic-configure-mutex}, @code{frame-draw-mutex},
 
1463
@code{frame-state-mutex} are now functions
 
1464
 
 
1465
@item New functions @code{x-keysym-name}, @code{x-lookup-keysym},
 
1466
@code{decode-event}, @code{encode-event}.
 
1467
 
 
1468
@item New option @code{move-resize-inhibit-configure}
 
1469
 
 
1470
@item Translation updates: es (Iļæ½aki Garcļæ½a Etxebarria), fr (Christian
 
1471
Gillot), gl (Jesus Bravo Alvarez), nl (Han-Wen Nienhuys), pt_PT (Rui
 
1472
Silva), sv (Andreas Persenius)
 
1473
 
 
1474
@item Fixed single-quoting in client readline (Matt Krai), copied
 
1475
bouncing parentheses hack
 
1476
 
 
1477
@item Removed @code{fp->win == 0} assertion, it should be harmless and
 
1478
was triggering for some people
 
1479
 
 
1480
@item Fixed bug of sending configure notify events to too many windows
 
1481
 
 
1482
@item Fixed off-by-one error in @code{ws-insert-workspace} (Kirk
 
1483
Saranathan)
 
1484
 
 
1485
@item Fixed maximization in single directions to work additively
 
1486
 
 
1487
@item Fixed bug of leaving tooltips displayed after the associated
 
1488
window has been deleted
 
1489
 
 
1490
@item Fixed bug of not removing @samp{-clientId} option from restart
 
1491
parameters
 
1492
 
 
1493
@item Fixed bug of not translating customize group names
 
1494
 
 
1495
@end itemize
 
1496
 
 
1497
 
 
1498
@heading 0.23
 
1499
 
 
1500
@itemize @bullet
 
1501
 
 
1502
@item Customization groups are now organized as a tree structure, with
 
1503
groups able to contain subgroups
 
1504
 
 
1505
@item Define the list of features that will be presented to the user in
 
1506
@file{sawmill-defaults.jl}, by calling @code{custom-add-required}. If
 
1507
you have a @file{.sawmillrc} you'll need to do this manually
 
1508
 
 
1509
@item New function @code{move-resize-window-to} doing a combined
 
1510
move/resize. New variable @code{synthetic-configure-mutex}, when set
 
1511
holds off sending synthetic @code{ConfigureNotify} events to windows
 
1512
until it's unset (this is held while interactively moving or resizing
 
1513
windows)
 
1514
 
 
1515
@item New hook @code{after-add-window-hook}. Called with a single
 
1516
parameter, the window that's has just been adopted
 
1517
 
 
1518
@item New functions @code{x-kill-client}, @code{delete-window-safely}.
 
1519
@code{send-client-message} now groks long integers (i.e. cons cells) in
 
1520
32-bit data (Timo Korvola)
 
1521
 
 
1522
@item @code{window-put}, @code{window-get}, @code{image-put},
 
1523
@code{image-get}, @code{font-put}, @code{font-get}: use @code{equal} to
 
1524
compare keys, not @code{eq}
 
1525
 
 
1526
@item New module @code{error-handler}, implements a simple alternative
 
1527
error handler (and allows the much-maligned beep to be turned off),
 
1528
requires rep 0.11+
 
1529
 
 
1530
@item Allow the pointer-warp position to be defined relative to the
 
1531
window (Kai Groļæ½johann)
 
1532
 
 
1533
@item New module @code{shade-hover}, unshades windows while the pointer
 
1534
is over them
 
1535
 
 
1536
@item Don't automatically warp to the new workspace when opening
 
1537
windows on a different workspace
 
1538
 
 
1539
@item Include iconified sticky windows in the @code{window-menu},
 
1540
shorten sticky entries as usual (James Antill)
 
1541
 
 
1542
@item Support the @samp{TryExec} field in GNOME desktop files (Ian)
 
1543
 
 
1544
@item New commands: @code{raise-or-pass-through-click},
 
1545
@code{raise-and-pass-through-click-if-focused}
 
1546
 
 
1547
@item New module @code{move-cursor}, various commands for moving the
 
1548
mouse pointer; these commands are bound to the cursor keys when moving
 
1549
or resizing windows
 
1550
 
 
1551
@item Translation updates: es (Iļæ½aki Garcļæ½a Etxebarria), fr (Fabien
 
1552
Ninoles), gl (Jesus Bravo Alvarez), ja (Satoru Sato), nl (Jan
 
1553
Nieuwenhuizen), tr (Fļæ½tih Demir)
 
1554
 
 
1555
@item Fix bug of leaving window-name unset when @code{WM_NAME} is a
 
1556
null text property
 
1557
 
 
1558
@item Don't fail catastrophically if unable to open the default font
 
1559
 
 
1560
@item Fixed method of truncating maximized window dimensions
 
1561
 
 
1562
@item Fixed the match-window @code{skip-winlist} and
 
1563
@code{skip-tasklist} properties I'd stupidly broken
 
1564
 
 
1565
@item Fixed bug of trying to edge-flip sticky windows
 
1566
 
 
1567
@item Fixed the @code{move-workspace-forwards} and
 
1568
@code{move-workspace-backwards} commands
 
1569
 
 
1570
@item Fixed @code{uniconify-to-current-viewport} option
 
1571
 
 
1572
@item Fixed infinite-loop bug in @code{delete-empty-workspaces} command
 
1573
 
 
1574
@item Avoid generating empty sub-menus when reading GNOME menu tree
 
1575
 
 
1576
@end itemize
 
1577
 
 
1578
 
 
1579
@heading 0.22
 
1580
 
 
1581
@itemize @bullet
 
1582
 
 
1583
@item Window frame parts are now first-class lisp data objects,
 
1584
allowing a higher level of control by themes
 
1585
 
 
1586
New or updated functions to access frame parts directly:
 
1587
 
 
1588
@noindent @code{frame-part-get}, @code{frame-part-put},
 
1589
@code{frame-part-window}, @code{frame-part-x-window},
 
1590
@code{frame-part-position}, @code{frame-part-dimensions},
 
1591
@code{frame-part-state}, @code{map-frame-parts},
 
1592
@code{refresh-frame-part}, @code{rebuild-frame-part}
 
1593
 
 
1594
Other new functions: @code{refresh-window}
 
1595
 
 
1596
@item Updated @code{sawmill-themer} to emit code to tell the window
 
1597
manager that the theme is editable. The wm adds an @samp{Edit Theme...}
 
1598
option to the Customize menu when appropriate
 
1599
 
 
1600
@item The @code{call-after-property-changed} function can now be given
 
1601
a list of properties to monitor (James Antill)
 
1602
 
 
1603
@item New function @code{call-after-state-changed}, monitors a list of
 
1604
window states (i.e. things like iconified, shaded, @dots{}) and calls a
 
1605
function when any of them change. The @code{window-state-change-hook}
 
1606
now has a second argument (apart from the window), the list of symbolic
 
1607
states that changed (James Antill)
 
1608
 
 
1609
@item Add support for @code{skip-winlist} and @code{skip-tasklist} to
 
1610
the window matcher when GNOME support is enabled (Ben Liblit)
 
1611
 
 
1612
@item Integrated patch supporting multi-byte languages from the Kondara
 
1613
MNU/Linux distribution (forwarded by Yukihiro Nakai)
 
1614
 
 
1615
@item Translation updates: de (Christoph Rauch), es (Iļæ½aki Garcļæ½a
 
1616
Etxebarria), gl (Jesus Bravo Alvarez), ja (Satoru Sato), tr (Fļæ½tih
 
1617
Demir)
 
1618
 
 
1619
@item Use a combo box in the configurator to display the list of
 
1620
themes (it gets given scroll bars when too big for the screen)
 
1621
 
 
1622
@item Changed timestamp handling---attempt to detect and discard
 
1623
timestamps that arrive out of order
 
1624
 
 
1625
@item Added option controlling title justification to @code{mono} theme
 
1626
 
 
1627
@item Filter @key{Scroll_Lock} modifiers as well as the other lock
 
1628
modifiers (Matt Krai)
 
1629
 
 
1630
@item Fixed @code{display-message} function update background color,
 
1631
and gracefully handle invalid color specifiers (Matt Krai)
 
1632
 
 
1633
@item Reverted to grabbing events on the client window, not the frame,
 
1634
avoids some awkward-to-fix-correctly problems
 
1635
 
 
1636
@item Load i18n support @emph{before} other libraries; ensures that
 
1637
some static strings get translated
 
1638
 
 
1639
@item Fixed annoying flicker when cycling to an iconified window
 
1640
 
 
1641
@end itemize
 
1642
 
 
1643
 
 
1644
@heading 0.21.1
 
1645
 
 
1646
@itemize @bullet
 
1647
 
 
1648
@item Fixed problem causing spurious double-click events to be reported
 
1649
in click-to-focus mode
 
1650
 
 
1651
@item Fixed problem with binding @kbd{-Off} events in the
 
1652
@code{window-keymap}. (Matt Krai)
 
1653
 
 
1654
@item Don't try to grab non-existent keys (which actually grabs the
 
1655
entire keyboard)
 
1656
 
 
1657
@item Fixed some problems with reading unusually formatted GNOME menu
 
1658
entries
 
1659
 
 
1660
@end itemize
 
1661
 
 
1662
 
 
1663
@heading 0.21
 
1664
 
 
1665
@itemize @bullet
 
1666
 
 
1667
@item Frame pattern definitions (foreground, background, font) may now
 
1668
take alists as well as the old single object, or list of four objects.
 
1669
Possible states are @code{inactive}, @code{focused},
 
1670
@code{highlighted}, @code{clicked}, @code{inactive-highlighted},
 
1671
@code{inactive-clicked}. (Last two are new)
 
1672
 
 
1673
@item New program @code{sawmill-themer}. A GUI for creating simple
 
1674
themes (those without any parts defined by functions)
 
1675
 
 
1676
@item New module @code{gnome-int}, loaded by @code{sawmill-defaults} if
 
1677
GNOME is around, sets up some GNOME'ish things
 
1678
 
 
1679
@item New command @code{toggle-single-window-mode}
 
1680
 
 
1681
@item Translation updates/additions: de (Christoph Rauch), es (Iļæ½aki
 
1682
Garcļæ½a Etxebarria), nl (Han-Wen Nienhuys)
 
1683
 
 
1684
@item Optional removal of tooltips after time period (Morgan Schweers)
 
1685
 
 
1686
@item @kbd{Any-RET} completes interactive move or resize
 
1687
 
 
1688
@item Work around Imlib's annoying image caching, @code{make-image} now
 
1689
@emph{always} returns a new image
 
1690
 
 
1691
@item Fixed gc bug when building window frames
 
1692
 
 
1693
@item Fixed X property handling on Alpha's (George Lebl)
 
1694
 
 
1695
@item Make @code{call-command} accept closures
 
1696
 
 
1697
@item Make @code{(cursor . nil)} work correctly in frame definitions
 
1698
 
 
1699
@item Grab on frame window, not client window (ICCCM compliant)
 
1700
 
 
1701
@item Fixed the ``uniconify to current workspace'' option
 
1702
 
 
1703
@item Added window-maximization predicates to the gaol
 
1704
 
 
1705
@end itemize
 
1706
 
 
1707
 
 
1708
@heading 0.20
 
1709
 
 
1710
@itemize @bullet
 
1711
 
 
1712
@item Rewrote workspace handling---windows can now appear on multiple
 
1713
workspaces, with each instance having different properties (position,
 
1714
size, whatever@dots{}) 
 
1715
 
 
1716
Create new window instances by using the @code{copy-to-next-workspace},
 
1717
@code{copy-to-previous-workspace}, and @code{copy-to-workspace:@var{n}}
 
1718
commands. Merge instances by moving them to the same workspace, or
 
1719
using the @code{delete-window-instance} command
 
1720
 
 
1721
@item Added linear-viewport commands---indexing two-dimensional virtual
 
1722
workspace areas by one-dimensional values (adapted from code by Eric
 
1723
Kidd)
 
1724
 
 
1725
@item Rewrote tooltips; especially how they're removed (also, don't
 
1726
show null keymaps)
 
1727
 
 
1728
@item Added new match-window property @code{ungrouped}. Means to put
 
1729
the window in a group on its own
 
1730
 
 
1731
@item Translation additions/updates: da (Wandy Christiansen), en_GB
 
1732
(me), es (Iļæ½aki Garcļæ½a Etxebarria), fr (Christian Gillot), gl (Jesus
 
1733
Bravo Alvarez)
 
1734
 
 
1735
@item Fixed bug of not refocusing unshaded windows
 
1736
 
 
1737
@item Fixed bug of not notifying windows of their actual position after
 
1738
placing them
 
1739
 
 
1740
@item Fixed bug when grabbing Hyper-modified buttons
 
1741
 
 
1742
@item Fixed the focus-flickering when moving windows opaquely
 
1743
 
 
1744
@item Fixed the @code{commandp} function when applied to autoload stubs
 
1745
 
 
1746
@item Fixed typo in @code{gnome-logout} command (Jens Finke)
 
1747
 
 
1748
@item Fixed @code{raise-window-and-pass-through-click} command to pass
 
1749
@key{click2}, etc, events through to frame parts
 
1750
 
 
1751
@item Fixed infinite-regress bug when reading GNOME menu entries
 
1752
(@samp{Type=directory}, but actually a file)
 
1753
 
 
1754
@item Fixed bug when showing window-move position with snapped movement
 
1755
(adapted from merlin@@merlin.org)
 
1756
 
 
1757
@item Fixed bug when matching null text properties
 
1758
 
 
1759
@end itemize
 
1760
 
 
1761
 
 
1762
@heading 0.19
 
1763
 
 
1764
@itemize @bullet
 
1765
 
 
1766
@item Added tooltips for window frames (disabled by default)
 
1767
 
 
1768
@item Added @samp{Grab@dots{}} button to match-windows dialogue, grabs
 
1769
the value of an X property from a window
 
1770
 
 
1771
@item Support for creating cursors from bitmaps, and for changing the
 
1772
colors of cursors
 
1773
 
 
1774
@item Internationalized all strings in the configurator
 
1775
 
 
1776
@item New functions: @code{frame-part-get}, @code{server-grabbed-p},
 
1777
@code{forget-button-press}, @code{resize-window-with-hints},
 
1778
@code{window-in-workspace-p}, @code{windows-share-workspace-p}
 
1779
 
 
1780
@item New window properties: @code{never-focus}, @code{raise-on-focus}
 
1781
 
 
1782
@item New pseudo-property (for window matching): @code{size}, in terms
 
1783
of the window's size hints
 
1784
 
 
1785
@item Message catalogue additions/updates: Galician (Jesus Bravo
 
1786
Alvarez); Danish (Birger Langkjer)
 
1787
 
 
1788
@item Don't ignore initial state property of windows
 
1789
 
 
1790
@item Option to control height of drawn bevels (Chris Hanson)
 
1791
 
 
1792
@item More logical method of drawing diagonal gradients (Chris Hanson)
 
1793
 
 
1794
@item Fixed typo when looking for i18n theme README files (Jesus Bravo
 
1795
Alvarez)
 
1796
 
 
1797
@item Fixed @code{popup-apps-menu} command (Gļæ½rard Milmeister)
 
1798
 
 
1799
@item Fixed @code{define-frame-class} when creating keymaps
 
1800
 
 
1801
@item Fixed conversion of old-style @code{(set @dots{})} custom types
 
1802
 
 
1803
@item Fixed @code{raise-window-and-pass-through-click} command to
 
1804
pass-through subsequent clicks
 
1805
 
 
1806
@item Fixed problems when grabbing/ungrabbing customized keymaps
 
1807
 
 
1808
@item Fixed screen corruption when doing wireframe moving and
 
1809
@code{move-resize-raise-window} is set
 
1810
 
 
1811
@item Hacked around window-order problem when sticky windows exist
 
1812
 
 
1813
@end itemize
 
1814
 
 
1815
 
 
1816
@heading 0.18
 
1817
 
 
1818
@itemize @bullet
 
1819
 
 
1820
@item General subsystem for matching windows to properties as they're
 
1821
created. Allows matching on one or more of the window's X properties
 
1822
(e.g. name, class, etc@dots{}), and then setting any number of window
 
1823
manager properties as a result. See the @samp{Matched Windows}
 
1824
customize group
 
1825
 
 
1826
@item Removed all @code{auto-@var{foo}-alist} and
 
1827
@code{@var{bar}-windows-re} variables, they're obsoleted by the general
 
1828
match-windows mechanism
 
1829
 
 
1830
@item Respect window's size hints when maximizing (both to see if the
 
1831
window is maximizable, and to truncate the maximized dimensions to an
 
1832
integral number of rows and columns)
 
1833
 
 
1834
@item Show actual colors in the configurator, not just their names
 
1835
 
 
1836
@item Added a new directory to the theme search path:
 
1837
@file{@var{prefix}/share/sawmill/themes}. Use this for system-wide
 
1838
themes (don't use the version specific directory)
 
1839
 
 
1840
@item Included a new theme @code{mono}
 
1841
 
 
1842
@item Deprecated the @code{show-message} function, replaced by
 
1843
@code{display-message} with a better calling interface; also displays
 
1844
multi-line strings
 
1845
 
 
1846
@item Deprecated the menu ``expand variables when first in list''
 
1847
behaviour. Instead expand variables when the list is dotted to them, as
 
1848
is done for functions
 
1849
 
 
1850
@item Support the @code{Hyper} modifier, prefix is @kbd{H-}
 
1851
 
 
1852
@item In the configurator, look for i18n'd theme README files (Yukihiro
 
1853
Nakai)
 
1854
 
 
1855
@item Added option to disable the ability to grab a second edge while
 
1856
resizing (@code{resize-add-edges})
 
1857
 
 
1858
@item Included Danish message catalogue (Kenneth Christiansen)
 
1859
 
 
1860
@item Renamed @code{fixed-position} property as @code{sticky-viewport},
 
1861
and @code{focus-proxy-click} as @code{focus-click-through}
 
1862
 
 
1863
@item When evaluating mouse events, look in the window that the pointer
 
1864
was in when the button was pressed, not where the pointer currently is
 
1865
 
 
1866
@item Fixed bug where focus gets totally lost after closing a Motif
 
1867
application that has grabbed the keyboard
 
1868
 
 
1869
@item Fixed (again) the problems when handling remapped windows; also
 
1870
should be more ICCCM-compliant
 
1871
 
 
1872
@item Fixed typos in one-dimensional maximisation (Gļæ½rard Milmeister)
 
1873
 
 
1874
@item Fixed the logic deciding when it's necessary to switch workspaces
 
1875
after merging an empty one
 
1876
 
 
1877
@item Fixed interactive placement showing the window when edge-flipping
 
1878
(but it still doesn't work properly, rubber band traces are left)
 
1879
 
 
1880
@item Removed flicker when focusing already-focused windows
 
1881
 
 
1882
@end itemize
 
1883
 
 
1884
 
 
1885
@heading 0.17
 
1886
 
 
1887
@itemize @bullet
 
1888
 
 
1889
@item First version to use lexically scoped librep. This enables themes
 
1890
to run in a ``safe'' environment, but all existing themes will need to
 
1891
be ported; other language changes include the use of a single symbol
 
1892
namespace, and scheme-like function call semantics
 
1893
 
 
1894
@item Support for internationalization of messages and run-time
 
1895
documentation; an en_GB catalogue is the only translation currently, so
 
1896
please send me .po files for your native languages!
 
1897
 
 
1898
New option @samp{--disable-nls} to disable i18n
 
1899
 
 
1900
@item New functions @code{call-after-property-changed} and
 
1901
@code{gtkrc-call-after-changed} to allow themes to receive these events
 
1902
(hooks are now off-limits to themes)
 
1903
 
 
1904
@item New command @code{raise-window-and-pass-through-click}; bind it
 
1905
to a mouse button in the @code{window-keymap} to get the ``raise window
 
1906
on click'' behaviour that seems popular 
 
1907
 
 
1908
@item New commands to move windows incrementally:
 
1909
@code{slide-window-@var{x}} and @code{slide-group-@var{x}} for @var{x}
 
1910
one of: @code{left}, @code{right}, @code{up}, @code{down}
 
1911
 
 
1912
@item New commands to control @code{ignored} property of windows
 
1913
(Julian Missig)
 
1914
 
 
1915
@item New commands to toggle GNOME skip-winlist and skip-tasklist
 
1916
properties of windows
 
1917
 
 
1918
@item Respect window gravity with program-specified window placement
 
1919
(@email{merlin@@merlin.org})
 
1920
 
 
1921
@item Fixed a memory leak in the @code{stacking-order} function
 
1922
 
 
1923
@item Fixed the @code{bevel-image} function (Scott Sams)
 
1924
 
 
1925
@item Never look in the focused window's keymap by default with mouse
 
1926
events
 
1927
 
 
1928
@item Hacked around the ``need an X11 connection to compile'' misfeature
 
1929
 
 
1930
@item Fixed bug in @code{gnome-menu} code when GNOME binaries aren't in
 
1931
the first $PATH item; also accept non-alphanumeric language codes
 
1932
 
 
1933
@item Fixed interactive window placement (again)
 
1934
 
 
1935
@item Rewrote obscure documentation for some custom options
 
1936
 
 
1937
@item Fixed bug when grabbing events with @code{AnyModifier} and a
 
1938
specific button
 
1939
 
 
1940
@end itemize
 
1941
 
 
1942
 
 
1943
@heading 0.16
 
1944
 
 
1945
@itemize @bullet
 
1946
 
 
1947
@item Support window groups, both as defined by applications, and
 
1948
defined by the user (either interactively through the window's menu, or
 
1949
via the @code{auto-group-alist} and @code{persistent-group-ids}
 
1950
variables).
 
1951
 
 
1952
For most commands working on single windows, there's also one operating
 
1953
on the group that the current window is a member of. (With the notable
 
1954
exception currently of moving windows.) There's also options
 
1955
controlling whether (de)iconification operates on windows or groups
 
1956
 
 
1957
@item Improved GNOME menu support---merge duplicate sub-menus, scan
 
1958
PATH for @code{gnome-share-directory}, also look in
 
1959
@file{/etc/X11/applnk} for menu entries
 
1960
 
 
1961
@item Option to control whether edge-flipping flips viewports or
 
1962
workspaces (@code{edge-flip-type})
 
1963
 
 
1964
@item New hook @code{after-framing-hook}: called whenever a window's
 
1965
frame is changed or recalibrated
 
1966
 
 
1967
@item New window placement mode: @code{first-fit-or-interactive}
 
1968
 
 
1969
@item Variables specifying common cursor shapes:
 
1970
(@code{move-cursor-shape}, @code{resize-cursor-shape},
 
1971
@code{select-window-cursor-shape})
 
1972
 
 
1973
@item Fix interactive placement
 
1974
 
 
1975
@item Fix problem of window losing focus when @code{cycle-windows} only
 
1976
finds a single window; also, abort immediately if there's no windows to
 
1977
cycle through at all
 
1978
 
 
1979
@item Fix how the @code{WM_NORMAL_HINTS} property is read after it's
 
1980
been updated
 
1981
 
 
1982
@item Fix @code{maximize-fill} functions to respect the
 
1983
@code{maximize-ignore-when-filling} option
 
1984
 
 
1985
@item Fix interactive move/resize aborting if keyboard is already
 
1986
grabbed
 
1987
 
 
1988
@item Ungrab the keyboard as well as the pointer before popping menus
 
1989
 
 
1990
@end itemize
 
1991
 
 
1992
 
 
1993
@heading 0.15
 
1994
 
 
1995
@itemize @bullet
 
1996
 
 
1997
@item Changed how themes are loaded from tar files---the tar file must
 
1998
now contain a directory with the same name as the theme; it's this
 
1999
directory that stores the data files
 
2000
 
 
2001
@item Allow viewport edge-flipping to be enabled by the customization
 
2002
system, also enable flipping while moving windows
 
2003
 
 
2004
@item Unified the method of marking which windows should be avoided
 
2005
when maximizing, and which windows should be avoided when using the
 
2006
fitted placement methods. Set the @code{avoid} property instead of the
 
2007
@code{maximize-avoid} property; new functions @code{window-avoided-p}
 
2008
and @code{avoided-windows}; new regexp @code{avoided-windows-re}
 
2009
 
 
2010
@item New command @code{delete-empty-workspaces}
 
2011
 
 
2012
@item Default theme is now @code{microGUI}
 
2013
 
 
2014
@item When resizing only one edge of a window, moving the pointer past
 
2015
one of the perpendicular edges grabs that edge also
 
2016
 
 
2017
@item Only the first three buttons focus a window in click-to-focus
 
2018
mode
 
2019
 
 
2020
@item Changed behaviour of @code{window-id} and
 
2021
@code{window-frame-dimensions} functions. Replaced
 
2022
@code{query-last-pointer} function by @code{query-button-press-pointer}
 
2023
 
 
2024
@item New hooks: @code{while-moving-hook}, @code{while-resizing-hook}
 
2025
 
 
2026
@item Notice when @code{WM_TRANSIENT_FOR} property changes
 
2027
 
 
2028
@item More bug fixes to the maximization code, mainly for efficiency;
 
2029
also make first-fit placement work from top-left again
 
2030
 
 
2031
@item Fix bug when matching events with @kbd{Any} modifier as well as
 
2032
other modifiers
 
2033
 
 
2034
@item Fix bug in @code{window-outside-viewport-p} (Andreas Degert)
 
2035
 
 
2036
@item Fix bug in @samp{sawmill-client --} with long inputs
 
2037
 
 
2038
@item Fix bug when matching windows with session
 
2039
data---@code{SM_CLIENT_ID} or @code{WM_COMMAND} @emph{has} to match
 
2040
 
 
2041
@item Fix bugs when passive grabbing non-button-press pointer events
 
2042
 
 
2043
@end itemize
 
2044
 
 
2045
 
 
2046
@heading 0.14
 
2047
 
 
2048
@itemize @bullet
 
2049
 
 
2050
@item Rewrote window-maximization, many new options
 
2051
 
 
2052
@item New option @code{resize-by-frame-class}, when enabled (the
 
2053
default), the resized window edges are chosen to match the class of the
 
2054
clicked frame part (i.e. matching the cursor shape)
 
2055
 
 
2056
@item Load GNOME support code automatically if it looks like GNOME is
 
2057
being used
 
2058
 
 
2059
@item Create unix-domain sockets in @file{/tmp}
 
2060
 
 
2061
@item New hooks: @code{window-moved-hook}, @code{window-resized-hook},
 
2062
@code{after-initialization-hook}, @code{shape-notify-hook}.
 
2063
 
 
2064
@item Improved how menus are displayed; the window-ops menu is shown by
 
2065
ButtonPress not ButtonRelease events
 
2066
 
 
2067
@item Refocus most-recently-focused window when switching viewport
 
2068
 
 
2069
@item Added @code{centered} placement style
 
2070
 
 
2071
@item Added symbol-completion to readline-based client
 
2072
 
 
2073
@item Fix bug of not noticing WM_NORMAL_HINTS property changes; follow
 
2074
the window's maximum size hints
 
2075
 
 
2076
@item Fix bug of not reframing windows when they change from unshaped
 
2077
to shaped, or vice versa
 
2078
 
 
2079
@end itemize
 
2080
 
 
2081
 
 
2082
@heading 0.13
 
2083
 
 
2084
@itemize @bullet
 
2085
 
 
2086
@item New option to only highlight frame parts when their window is
 
2087
focused (@code{highlight-when-unfocused})
 
2088
 
 
2089
@item Typing @kbd{ESC} while moving/resizing a window cancels the
 
2090
operation, restoring the original geometry
 
2091
 
 
2092
@item New session management hook @code{sm-after-restore-hook}
 
2093
 
 
2094
@item New function @code{set-frame-part-value}---makes customizing the
 
2095
@code{frame-part-classes} variables easier
 
2096
 
 
2097
@item Support for loading themes from tar files; needs librep 0.7
 
2098
 
 
2099
@item Fix bug when allocating colors (choosing an incorrect cached
 
2100
color)
 
2101
 
 
2102
@item Fix image tiling in frame part backgrounds
 
2103
 
 
2104
@item Handle shifted keysyms when passive grabbing
 
2105
 
 
2106
@item Fix another race condition when active grabbing
 
2107
 
 
2108
@item Fix @code{_WIN_CLIENT_LIST} property not being set properly (both
 
2109
missing windows immediately after they're adopted, and of intentionally
 
2110
skipping ignored windows)
 
2111
 
 
2112
@item Fix some problems with viewports when exiting/restarting
 
2113
 
 
2114
@item Fix broken stacking of windows after they're mapped
 
2115
 
 
2116
@item Prevent smart window placement blowing up when large numbers of
 
2117
windows are open/opened (throttle back to random placement when the
 
2118
event queue is too large, as well as trying to prune the search space)
 
2119
 
 
2120
@end itemize
 
2121
 
 
2122
 
 
2123
@heading 0.12
 
2124
 
 
2125
@itemize @bullet
 
2126
 
 
2127
@item Remember most recently focused windows on each workspace,
 
2128
activate that window after changing workspaces; also, try to preserve
 
2129
focus when moving windows between workspaces
 
2130
 
 
2131
@item Option to disable auto-raise while cycling through windows
 
2132
(@code{cycle-disable-auto-raise}); option to restrict cycling to the
 
2133
current viewport (@code{cycle-all-viewports})
 
2134
 
 
2135
@item Option @code{lock-first-workspace} is now enabled by default, and
 
2136
prevents both the first and last interesting workspaces being moved
 
2137
inwards
 
2138
 
 
2139
@item Added readline support to the client program, pass
 
2140
@samp{--with-readline} option to configure (from Christopher P Goller
 
2141
@email{goller@@eng.utah.edu})
 
2142
 
 
2143
@item Added shaped-transient frame to microGUI theme
 
2144
 
 
2145
@item New frame part attribute @code{below-client}
 
2146
 
 
2147
@item Release passive grabs when unadopting windows
 
2148
 
 
2149
@item When no window has the focus, the @code{root-window-keymap} is
 
2150
searched for key-press events
 
2151
 
 
2152
@item Fix bug when binding to the unix-domain socket
 
2153
 
 
2154
@item Fix focus sometimes being lost when the focused window is
 
2155
destroyed
 
2156
 
 
2157
@item Fix bug when reading GNOME menu entries without @samp{Type}
 
2158
fields
 
2159
 
 
2160
@item Fix bug when removing title or border of @code{shaped-transient}
 
2161
window types (make the window completely unframed)
 
2162
 
 
2163
@item Fix bug when shading a transient window with
 
2164
@code{decorate-transients} enabled
 
2165
 
 
2166
@item Fix some bugs when placing windows that are almost as big or
 
2167
bigger than the screen
 
2168
 
 
2169
@item Fix some race-conditions between wm-generated and
 
2170
client-generated map/unmap/reparent events
 
2171
 
 
2172
@item Fix infamous ``jerky pointer'' bug, this will also make
 
2173
overlapping shaped frame-parts display correctly
 
2174
 
 
2175
@item Fix bug where @code{cycle-windows} could leave a window
 
2176
originally under the pointer that's unfocused, drawn as though it is
 
2177
focused
 
2178
 
 
2179
@end itemize
 
2180
 
 
2181
 
 
2182
@heading 0.11
 
2183
 
 
2184
@itemize @bullet
 
2185
 
 
2186
@item New option @code{lock-first-workspace}, prevent the first
 
2187
workspace from being deleted when it's empty
 
2188
 
 
2189
@item New option @code{ignore-window-input-hint}, to always give
 
2190
windows the focus, whether they say they will accept it or not
 
2191
 
 
2192
@item New options when cycling windows: @code{cycle-warp-pointer} and
 
2193
@code{cycle-focus-windows}
 
2194
 
 
2195
@item Restore the old method of setting the focus, should fix bug of
 
2196
losing focus totally when switching to a new workspace
 
2197
 
 
2198
@end itemize
 
2199
 
 
2200
 
 
2201
@heading 0.10
 
2202
 
 
2203
@itemize @bullet
 
2204
 
 
2205
@item Implemented virtual workspaces, bind to the
 
2206
@code{move-viewport-@var{x}} and @code{move-window-@var{x}} commands
 
2207
(for @var{x} being @code{left}, @code{right}, @code{up}, or
 
2208
@code{down})
 
2209
 
 
2210
@item Added a new theme: @code{microGUI} by Ryan Lovett
 
2211
@email{ryan@@ocf.berkeley.edu}, based on the QNX Photon screenshots
 
2212
 
 
2213
@item Added a @samp{Grab key} button in the bindings widget, replaces
 
2214
the current binding with the next pressed key
 
2215
 
 
2216
@item Lisp module to load the GNOME menus and use them to replace the
 
2217
applications menu. Add @code{(require 'gnome-menu)} to your
 
2218
@file{~/.sawmillrc} file to load it
 
2219
 
 
2220
@item Network server is disabled by default (since it can provide a
 
2221
security hole if X access control is disabled); re-enabled the old unix
 
2222
domain socket code (see the FAQ for more details)
 
2223
 
 
2224
@item Only give the input focus to windows that actually want it
 
2225
 
 
2226
@item New option to keep transient windows above their parents
 
2227
(@code{transients-above-parents})
 
2228
 
 
2229
@item New option to control how the workspace boundary is handled when
 
2230
moving windows between workspaces (@code{workspace-send-boundary-mode})
 
2231
 
 
2232
@item New commands @code{send-to-workspace:@var{x}} for @var{x} from 1
 
2233
to 9
 
2234
 
 
2235
@item While windows are hidden or shaded, unmap the client (for ICCCM
 
2236
compliance)
 
2237
 
 
2238
@item Slightly different method of handling destroyed clients,
 
2239
hopefully results in fewer annoying error messages
 
2240
 
 
2241
@item Support X installations without X11R6 session management (by not
 
2242
doing any session management)
 
2243
 
 
2244
@item Don't ask the session manager to save our environment
 
2245
 
 
2246
@item Fix bug where a window is destroyed/unmapped while it's being
 
2247
resized or moved
 
2248
 
 
2249
@item Fix bug where window can still be auto-raised even if it's been
 
2250
defocused
 
2251
 
 
2252
@item Fix problems when @samp{--prefix} option has a trailing slash
 
2253
 
 
2254
@item Now handles client windows being reparented by a third party
 
2255
(i.e. swallowing apps)
 
2256
 
 
2257
@end itemize
 
2258
 
 
2259
 
 
2260
@heading 0.9
 
2261
 
 
2262
@itemize @bullet
 
2263
 
 
2264
@item The first-fit and best-fit algorithms are now much more
 
2265
intelligent, e.g. instead of falling back to random placement when a
 
2266
window can't be placed without overlapping an existing window, they
 
2267
will attempt to minimize this degree of overlapping
 
2268
 
 
2269
@item The @code{foreground} property of each frame part may now be an
 
2270
image instead of a piece of text
 
2271
 
 
2272
@item New theme @code{smaker}, uses the foreground images capability to
 
2273
do a somewhat WindowMaker-like theme (with the absolute-e images). This
 
2274
theme is extensively customizable---all images, colors, dimensions,
 
2275
etc@dots{}
 
2276
 
 
2277
@item Use Imlib's fuzzy color matching for all color allocation; this
 
2278
should help on @code{PseudoColor} visuals
 
2279
 
 
2280
@item Added an @code{xterm} command to launch an xterm
 
2281
 
 
2282
@item Improved the bindings customization widget layout; added a
 
2283
@samp{Copy} button to insert a copy of the current binding
 
2284
 
 
2285
@item Added @code{next-workspace-row} and @code{previous-workspace-row}
 
2286
commands. Together with the @code{workspace-columns} variable these
 
2287
mimic a 2d desktop
 
2288
 
 
2289
@item Removed the @code{cycle-through-workspaces} option, there's now
 
2290
@code{workspace-boundary-mode}---one of @code{stop}, @code{wrap-around}
 
2291
or @code{keep-going}
 
2292
 
 
2293
@item Added option to include ignored windows when edge snapping
 
2294
(@code{move-snap-ignored-windows})
 
2295
 
 
2296
@item Fix race condition between startup of sawmill and gmc; sawmill
 
2297
now has earlier priority
 
2298
 
 
2299
@item Fix seg fault when running out of color cells while generating a
 
2300
window frame
 
2301
 
 
2302
@item Fix bug where the window-workspace mapping wasn't reloaded from
 
2303
saved sessions
 
2304
 
 
2305
@item Fix cancel/revert problems in bindings widget
 
2306
 
 
2307
@item Fix problems binding to shifted keys when using the XKEYBOARD
 
2308
extension and XFree86
 
2309
 
 
2310
@item Be ICCCM compliant when a client requests to be moved
 
2311
 
 
2312
@item Fix crash when tiling small images into large images
 
2313
 
 
2314
@item Fix bug where windows could be snapped totally off-screen
 
2315
 
 
2316
@item Fix bug when windows change their @code{override_redirect}
 
2317
attribute while unmapped
 
2318
 
 
2319
@item Fix bug associated with WordPerfect's menu window
 
2320
 
 
2321
@end itemize
 
2322
 
 
2323
 
 
2324
@heading 0.8
 
2325
 
 
2326
@itemize @bullet
 
2327
 
 
2328
@item First attempt at best-fit window placement (doesn't really work
 
2329
properly yet@dots{})
 
2330
 
 
2331
@item Added a customization option to focus windows when they're
 
2332
un-iconified (@code{focus-windows-on-uniconify})
 
2333
 
 
2334
@item Fix bug in click-to-focus mode where the click is only passed
 
2335
through to the client window, not to any local bindings of the wm
 
2336
 
 
2337
@item Don't leave windows unframed if there's an error in the user's
 
2338
startup files
 
2339
 
 
2340
@item Fix bug in @code{preallocated-workspaces} option
 
2341
 
 
2342
@item Don't place windows off-screen in first-fit mode
 
2343
 
 
2344
@end itemize
 
2345
 
 
2346
 
 
2347
@heading 0.7
 
2348
 
 
2349
@itemize @bullet
 
2350
 
 
2351
@item Added stack-based window cycling, bound to @kbd{M-TAB} by
 
2352
default. Hold @key{Meta}, keep pressing @key{TAB} until the correct
 
2353
window is reached, then let go of @key{Meta}.
 
2354
 
 
2355
@item Added first-fit window placement (a.k.a smart-placement)
 
2356
 
 
2357
@item Completed first stage of workspace rewrite---shouldn't go
 
2358
ballistic when windows are removed anymore
 
2359
 
 
2360
@item Added @code{override-frame-part-classes} variable---allows all
 
2361
frame properties to be overridden on a per-class basis
 
2362
 
 
2363
@item Click-to-focus now accepts any button and any modifiers
 
2364
 
 
2365
@item Don't snap to gmc icons or panels
 
2366
 
 
2367
@item Added an @code{auto-window-type-alist} variable mapping window
 
2368
names to border types
 
2369
 
 
2370
@item New variables @code{eval-modifier-events} and
 
2371
@code{eval-key-release-events} to allow catching these types of
 
2372
keyboard events, disabled by default
 
2373
 
 
2374
@item Added functions for actively grabbing the keyboard
 
2375
 
 
2376
@item Removed the long names of the keyboard modifiers, only the single
 
2377
character modifiers are left
 
2378
 
 
2379
@item If no alt modifier, set it to the same as meta; new variables
 
2380
@code{alt-keysyms} and @code{meta-keysyms} describe the virtual
 
2381
modifier assignments
 
2382
 
 
2383
@item Fix bug when handling shaped frame parts---it was possible to go
 
2384
into a long enter-, leave-notify loop when the old shape was cleared
 
2385
 
 
2386
@item Fix bug where opaque resizing with snap-to-edges on moved the
 
2387
window as well as resizing it
 
2388
 
 
2389
@item Fix bug when raising the only managed window
 
2390
 
 
2391
@item Fix bug where very small client windows got weirdly shaped
 
2392
frames
 
2393
 
 
2394
@end itemize
 
2395
 
 
2396
 
 
2397
@heading 0.6
 
2398
 
 
2399
@itemize @bullet
 
2400
 
 
2401
@item Define the standard @dfn{classes} of frame parts (i.e. things
 
2402
like close button, title, left border, etc...) then allow the state of
 
2403
members of these classes to be set in one place (the
 
2404
@code{frame-part-classes} variable). This should ensure that different
 
2405
themes have the same feel (but a feel that may be customized by the
 
2406
user)
 
2407
 
 
2408
@item Allow frame parts to be removed if possible (if they have the
 
2409
@code{removable} property). Nothing makes use of this yet
 
2410
 
 
2411
@item Added window-shading, double-click button1 on the title bar
 
2412
 
 
2413
@item Created a sawmill capplet for the GNOME control center. Use the
 
2414
@samp{--enable-capplet} configure option to build it
 
2415
 
 
2416
@item First attempt at a technical manual (very quickly written, so
 
2417
probably some inaccuracies)
 
2418
 
 
2419
@item In the @code{gtk} theme, draw bevels on window decorations
 
2420
 
 
2421
@item Use spin-buttons in the configurator to enter numbers
 
2422
 
 
2423
@item Add option @code{focus-proxy-click} controlling whether to pass
 
2424
the focus-inducing button-press event to the underlying window (in
 
2425
click-to-focus mode)
 
2426
 
 
2427
@item Changed the bindings in window borders, it's now the more usual
 
2428
button1 to resize, button2 to move
 
2429
 
 
2430
@item When clicking and dragging windows, ensure that the clicked frame
 
2431
part stays clicked until the button is released
 
2432
 
 
2433
@item If in click-to-focus mode, and there's no parent window to focus
 
2434
when the focused window is closed, focus the topmost window (not the
 
2435
window under the pointer as in the other focus modes)
 
2436
 
 
2437
@item Changing window frames is @emph{much} less ugly, no flicker at
 
2438
all!
 
2439
 
 
2440
@item Try to optimise window restacking some more
 
2441
 
 
2442
@item Sped up opaque window moving when the position display is enabled
 
2443
 
 
2444
@item Preserve iconified state across restarts
 
2445
 
 
2446
@item Optimise updating the shape of an unframed window (this stops gmc
 
2447
icons flashing annoyingly)
 
2448
 
 
2449
@item Fix bugs in click-to-focus mode where some windows were
 
2450
un-focusable
 
2451
 
 
2452
@item Fix bug where cycling through windows in click-to-focus mode
 
2453
didn't focus the activated window
 
2454
 
 
2455
@item Fix bug where comparing sawmill lisp objects caused a crash
 
2456
 
 
2457
@item Fix bug where initiating a resize in the middle of the window
 
2458
didn't allow any of the edges to be moved
 
2459
 
 
2460
@item Fix bug where changing the ``decorate transients'' option didn't
 
2461
alter any existing transient windows
 
2462
 
 
2463
@item Fix bug where iconifying a sticky or ignored window gave no way
 
2464
of reclaiming it---these windows now appear at the end of the window
 
2465
menu
 
2466
 
 
2467
@end itemize
 
2468
 
 
2469
 
 
2470
@heading 0.5
 
2471
 
 
2472
@itemize @bullet
 
2473
 
 
2474
@item Now does session management. The scheme is extensible, arbitrary
 
2475
Lisp modules can save and restore window state due to their own
 
2476
functionality (using the @code{sm-window-save-functions} and
 
2477
@code{sm-restore-window-hook} hooks). See @file{lisp/workspace.jl} for
 
2478
an example
 
2479
 
 
2480
@item Displays window position or dimensions whilst interactively
 
2481
moving or resizing a window (@code{move-show-position},
 
2482
@code{resize-show-dimensions})
 
2483
 
 
2484
@item Mechanism for setting frame styles on a per-window basis (this
 
2485
was always possible, just not easy). The @code{auto-frame-style-alist}
 
2486
variable associates window name regular expressions with frame styles.
 
2487
Also, the @code{window-ops-menu} has a new submenu with all possible
 
2488
styles
 
2489
 
 
2490
@item New option @code{preallocated-workspaces}, the number of
 
2491
workspaces to create at startup
 
2492
 
 
2493
@item Window-workspace mapping is preserved through restart (as long as
 
2494
the GNOME hints are enabled)
 
2495
 
 
2496
@item Theme directories may contain a short @file{README} file that
 
2497
will be displayed in the configuration tool
 
2498
 
 
2499
@item Changed the custom file to @file{~/.sawmill/custom} instead of
 
2500
@file{~/.sawmill-custom}. The old file will be moved to the new
 
2501
location if it exists
 
2502
 
 
2503
@item Install @file{sawmill-menu} under @file{libexec} since it
 
2504
shouldn't be run manually
 
2505
 
 
2506
@item Option in @code{gradient} theme to create full-sized gradient
 
2507
images, trading memory for quality
 
2508
 
 
2509
@item Workaround the flicker when raising windows
 
2510
 
 
2511
@item Changed most of the @code{menus} and @code{custom} customize
 
2512
options into normal variables (they're not particularly intuitive)
 
2513
 
 
2514
@end itemize
 
2515
 
 
2516
 
 
2517
@heading 0.4
 
2518
 
 
2519
@itemize @bullet
 
2520
 
 
2521
@item Frame parts can now be highlighted when the mouse is over them,
 
2522
also they ``un-click'' and ``re-click'' as the pointer leaves and
 
2523
re-enters their window. ButtonRelease bindings are only activated when
 
2524
the mouse is in the window at the time
 
2525
 
 
2526
@item Frame part backgrounds can now be rendered on-the-fly using the
 
2527
new @code{renderer} property in frame definitions. This property is a
 
2528
function called with args @code{(@var{image} @var{state})}; it should
 
2529
draw a background into @var{image} for the specified state (@code{nil},
 
2530
@code{focused}, @code{highlighted} or @code{clicked})
 
2531
 
 
2532
@item New theme @code{gtk}. This reads the default GTK style and uses
 
2533
the associated colors and pixmaps to decorate windows. It doesn't try
 
2534
to handle engine-based themes. It should automatically detect when the
 
2535
default style changes (if changed by the GNOME control center). Do
 
2536
@samp{sawmill-client -c gtk-reload-style} in the shell to reload the
 
2537
style manually
 
2538
 
 
2539
@item Functions for drawing color gradients and bevels into images. The
 
2540
new @code{gradient} theme uses these and on-the-fly rendering to do
 
2541
@code{afterstep}-like window titles
 
2542
 
 
2543
@item Configurator changes: use a paned widget to separate the list of
 
2544
groups from the settings (stops their relative sizes changing), allow
 
2545
each group to be customized separately, either through a new set of
 
2546
root-submenus or the commands @code{customize:@var{group}} for each
 
2547
@var{group}.
 
2548
 
 
2549
@item Changed the way that ``themes'' are organised, each theme now
 
2550
gets its own directory, which must include a @file{theme.jl} or
 
2551
@file{theme.jlc} script to initialise a frame-style of the same name as
 
2552
the directory. While this script is being evaluated the image path is
 
2553
set so that the theme can load any images stored in its directory.
 
2554
 
 
2555
Also created the variable @code{theme-load-path} containing the list of
 
2556
directories searched when trying to load a theme. By default it
 
2557
contains two directories: @file{~/.sawmill/themes/} and
 
2558
@file{@var{prefix}/share/sawmill/@var{version}/themes}.
 
2559
 
 
2560
@item Resizing now chooses the direction to resize the window in by the
 
2561
initial position of the pointer in relation to the window. The window
 
2562
is divided into a 3x3 grid, the pointer must be in one of the outer
 
2563
rectangles to resize in that direction
 
2564
 
 
2565
@item New commands @code{select-workspace:@var{X}} for @var{X} between
 
2566
1 and 9
 
2567
 
 
2568
@item Support multiple depths, or layers, of windows
 
2569
 
 
2570
@item It's now possible to move the current workspace up or down the
 
2571
list of all workspaces
 
2572
 
 
2573
@item New option @samp{-c COMMAND} to @code{sawmill-client}; invokes
 
2574
the named interactive function
 
2575
 
 
2576
@item When an app asks for no title and no border, give it what it
 
2577
wants---use the new @code{unframed} window type
 
2578
 
 
2579
@item The maximize button works
 
2580
 
 
2581
@item Option to control placement of transient windows
 
2582
(@code{place-transient-mode})
 
2583
 
 
2584
@item Changing the frame style preserves the original window stacking
 
2585
order
 
2586
 
 
2587
@item Added documentation strings for most built-in functions
 
2588
 
 
2589
@item Fix bug of evaluating both KeyPress @emph{and} KeyRelease events
 
2590
 
 
2591
@item Fix bug of making the shape mask of unshaped client windows too
 
2592
big
 
2593
 
 
2594
@item Fix bug where already-handled BadWindow errors were being reported
 
2595
 
 
2596
@item Fix bug where the @code{window-ops-menu} could be displayed from
 
2597
one window but then affect a different window
 
2598
 
 
2599
@item Fix bug where click-to-focus doesn't work for new windows
 
2600
 
 
2601
@item Fix bug where deleting the last workspace selected the first, not
 
2602
the new last workspace
 
2603
 
 
2604
@item Fix bug where changing a colormap when no window is focused
 
2605
causes a segfault
 
2606
 
 
2607
@item Fix bug where iconifying a window may leave it in the clicked
 
2608
state after it's uniconified
 
2609
 
 
2610
@item Fix Caps_Lock and Num_Lock modifiers interfering with bindings
 
2611
 
 
2612
@item Fix accessing X properties on 64-bit architectures
 
2613
 
 
2614
@item Fix bug where pointer may be left grabbed after moving a window
 
2615
 
 
2616
@end itemize
 
2617
 
 
2618
 
 
2619
@heading 0.3a
 
2620
 
 
2621
@itemize @bullet
 
2622
 
 
2623
@item Support the maximized GNOME window states
 
2624
 
 
2625
@item Where available, show documentation strings of commands in the
 
2626
configurator
 
2627
 
 
2628
@item Improve the method of handling clicks in frame-parts
 
2629
 
 
2630
@item Fix asynchronous client-server protocol
 
2631
 
 
2632
@item Fix interactive window moving/resizing (don't leave traces of the
 
2633
rubber-band, stop the window initially ``jumping'' to the pointer)
 
2634
 
 
2635
@end itemize
 
2636
 
 
2637
 
 
2638
@heading 0.3
 
2639
 
 
2640
@itemize @bullet
 
2641
 
 
2642
@item Implemented window maximization
 
2643
 
 
2644
@item Added support for snapping to window edges when interactively
 
2645
moving windows (@code{move-snap-edges} and @code{move-snap-epsilon})
 
2646
 
 
2647
@item First attempt at handling a subset of the Motif and OpenLook
 
2648
window hints
 
2649
 
 
2650
@item Removed the @code{sloppy-focus} variable, it's replaced by
 
2651
@code{focus-mode}. This can currently be one of @code{enter-exit}
 
2652
(normal focus follows pointer), @code{enter-only} (``sloppy'' focus) or
 
2653
@code{click} (click to focus)
 
2654
 
 
2655
@item When resolving pointer events, scan the @code{keymap} property of
 
2656
the window under the pointer, not the focused window (as with keypress
 
2657
events)
 
2658
 
 
2659
@item The @file{sawmill-client} program can now communicate inter-host,
 
2660
since it uses X properties not raw sockets
 
2661
 
 
2662
@item New hook @code{before-exit-hook}, called immediately before
 
2663
shutting down
 
2664
 
 
2665
@item Rewrote the GNOME support as a Lisp module
 
2666
 
 
2667
@item Placing windows interactively now works
 
2668
 
 
2669
@item Fixed the bug on Solaris where deleting windows could cause a
 
2670
segmentation fault
 
2671
 
 
2672
@end itemize
 
2673
 
 
2674
 
 
2675
@heading 0.2
 
2676
 
 
2677
@itemize @bullet
 
2678
 
 
2679
@item Added a user-customization system, inspired by Emacs' customize
 
2680
facility. Invoke this through the @samp{sawmill-ui} program, or from
 
2681
the @samp{Customize...} entry in the main menu. All changes are stored
 
2682
in the Lisp script @file{~/.sawmill-custom}
 
2683
 
 
2684
@item Selected windows may now be raised
 
2685
(@code{raise-selected-windows})
 
2686
 
 
2687
@item It's possible to prevent the mouse pointer being warped to
 
2688
selected windows (@code{warp-to-selected-windows})
 
2689
 
 
2690
@item The @code{brushed-metal} and @code{simple} themes now define all
 
2691
four standard frame types
 
2692
 
 
2693
@item Frame themes are now stored in a separate directory
 
2694
(@file{@var{prefix}/share/sawmill/@var{version}/lisp/themes}) so that
 
2695
the list of all available themes can be made automatically
 
2696
 
 
2697
@item The frame colors of the @code{simple} frame style can now be
 
2698
customized (@code{simple-normal-color} and @code{simple-active-color})
 
2699
 
 
2700
@item The @file{sawmill-defaults.jl} script enables GNOME compliance
 
2701
unconditionally (since it has no ill-effects even if GNOME isn't being
 
2702
used)
 
2703
 
 
2704
@item Transient windows can be given the same frames as normal windows
 
2705
(@code{decorate-transients})
 
2706
 
 
2707
@item Newly-displayed transient windows can be automatically given the
 
2708
focus if their parent window is focused (@code{transients-get-focus})
 
2709
 
 
2710
@item Any newly-displayed windows can be automatically given the input
 
2711
focus (@code{focus-windows-when-mapped})
 
2712
 
 
2713
@item The @code{foreground}, @code{background} and @code{font}
 
2714
attributes of each frame part may now refer to a function
 
2715
 
 
2716
@item Fixed the window-move bug whereby the first motion event was
 
2717
discarded
 
2718
 
 
2719
@item Fixed the bug where windows may be placed partially off the root
 
2720
window, even if they needn't be
 
2721
 
 
2722
@item Fixed the shaped frame parts bug (they didn't work)
 
2723
 
 
2724
@item Miscellaneous other bug-fixes
 
2725
 
 
2726
@end itemize
 
2727
 
 
2728
 
 
2729
@heading 0.1
 
2730
 
 
2731
First proper release