As the subject line says, Ion-devel-20030531 was just released. The short
list of changes is:
 * The license was changed from the Clarified Artistic License to the
   GNU Library/Lesser General Public License (LGPL).
 * Screen, viewport and root window renames and other changes (see below).
 * Some installation directory changes; the ion-* helper programs are now
   installed either in $SHAREDIR or $EXTRABINDIR and QueryLib searches for
   them on the script path (~/.ion-devel/, $ETCDIR, $SHAREDIR, $EXTRABINDIR)
   instead of assuming them being on $PATH.
 * Client windows are now in a separate namespace.
 * Resize/maximize/shade changes: Shading should work on WIonFrames too
   and shade mode is automatic when the client area gets too small when
   resizing. Maximize toggle restores frame to previous size if shaded
   instead of maximizing. The move/resize mode bindings were changed again
   to be more consistent and predictable: Left/Right/Up/Down and F/B/P/N
   grow the frame in the specific direction, Shift+keys shrink and in
   case of floating frames, DEFAULT_MOD+keys move
 * Returning from full screen mode should work on WFloatWS:s too.
 * Lots of minor fixes, export additions and clean-up.

As usual, see the (long!) list of new ChangeLog entries at the end of
this message for details.


I've finally personally switched from the old "stable" 20020207 to using
the latest development release at home too and I must say that it is
finally starting to look good. There are still things to be written, but
unless you need "proven" stability, I see no reason to sticking to that
old release anymore. Unless, of course, if you find a problem that I have
not encountered or simply have no need for the new features and don't want
to port your configuration files.


On screens, viewports, root windows and problems with the new
implementation

The objects previously called "screens" are now called "root windows"
and what were called "viewports" are called "screens" to better reflect
what the user sees. (When Xinerama is not used there's no difference
between a root window and a screen, but when Xinerama is used a root
window may be split over multiple screens.)

This release also creates so-called virtual root windows for each
Xinerama screen when there are more than one. This is to better separate
the windows on different screens and thus emulate normal multihead, the
main difference being that windows can be moved between screens.
Especially the virtual roots are there to keep the windows that are on
a floatws on the right screen.

Virtual root windows will, however, break a few apps:
 * Mozilla -remote won't work because of its crappy method for looking
   up existing windows that can't handle multiple levels of WM windows.
   Nested workspaces have the same problem. There is, however, a simple
   solution to this problem: gnome-moz-remote. It seems to use a saner
   method for looking up an existing Gecko browser and also works with
   at least Phoenix/MozillaFirebird and Galeon.
These two are problems only if you use floatws:s (other problems with
which virtual root windows are intended to solve):
 * The background-setting apps I am aware of will require a following
   'xrefresh' for the changes to be updated to the (transparent) virtual
   roots. Background setting apps that support the _NET_VIRTUAL_ROOTS
   property (which, I think, was meant for root window-sized WS 
   backgrounds) could be used to set a separate background for each
   Xinerama screen, though. I am not aware of any such app.
 * Some apps' resize and move features will behave erratically on those
   Xinerama screens not at (0, 0) on the root window. This is again
   because the apps are assuming there's at most one WM window between
   them and the root and are requesting windows' positions incorrectly.
   The ICCCM is quite vague on this and I think _all_ apps that I have
   tried are doing it wrong but the way e.g. XMMS does it certainly is
   not an interpretation of the ICCCM. The apps that now behave correctly
   request position for the outermost WM window. Nested workspaces have
   the same problem.

There is one more temporary problem:
 * Status bar modules (and the dock module's statusbar mode) will be
   *temporarily* broken when virtual roots are _not_ used. This will be
   fixed later when parts of screen and frame code are unified (it should
   then be possible to run Ion without any workspace modules and have
   queries attached to screens). In the meanwhile, if you don't care about
   the above-mentioned problems and want a statusbar (which probably needs
   to be ported to this release), you can defined CF_ALWAYS_VIRTUAL_ROOT
   when compiling Ion.


New ChangeLog entries:

2003-05-31:
  * More changes in move/resize mode bindings to be more consistent
    and predictable: Left/Right/Up/Down and F/B/P/N grow the frame in
    the specific direction, Shift+keys shrink and in case of floating
    frames, DEFAULT_MOD+keys move.
  * The functions *frame_do_resize were changed to receive four
    parameters, one for each border/direction.
  * Manual page updated.
  * License changed: LGPL.

2003-05-30:
  * The *DIR settings in system.mk are now more detailed.
  * Changes in installation directories: The ion-* shell scripts are
    installed in $SHAREDIR and are ioncorelib.lua, querylib.lua and
    compat.lua. 'ion-completefile' is installed in $EXTRABINDIR
    (=$MODULEDIR) being a binary.
  * QueryLib functions search the script directories (~/.ion-devel/,
    $ETCDIR, $SHAREDIR, $EXTRABINDIR; in that order) for the ion-*
    helper programs instead of assuming them being on $PATH.

2003-05-29:
  * All object destroys should now be handled safely.

2003-05-28:
  * Examples of query_man_path and query_ssh_hosts were added to the
    default ioncore.lua main configuration file.

2003-05-27:
  * New name allocation code: client windows are now in a separate
    namespace from other objects and "short names" without appended
    instance number are gone.
  * WClientWins now save the last height request of transients (and
    other managed objects) so a decent size should always be restored
    when the window is in a big enough frame.

2003-05-26:
  * Some client window resize/move request handling changes.

2003-05-25:
  * QueryLib should now remember last directory for file view and
    edit queries.
  * Added the boolean 'fullscreen' winprop.

2003-05-23:
  * Grab handling code simplified.
  * Xinerama screens now always have a virtual root window for better
    separation.

2003-05-21:
  * The exported function specification generation script was
    extended with EXTL_EXPORT_AS(...).
  * The exports region_set_w/h were replaced with
    region_request_geom.

2003-05-20:
  * The exports generation script was ignoring constness of string
    and could therefore cause Ion to crash or corrupt strings.
  * Simpler implementation of 'goto_previous' using watches.
  * Better (?) frame shading and maximizing code that should also
    eventually work on tiled workspaces (only partially implemented;
    better region_request_geom neeeded).

2003-05-19:
  * The functions lookup/complete_region now expect a string class
    parameter (or null for "WRegion") and the functions
    complete/lookup_workspace/clientwin were moved to ioncorelib.lua
    as they are not needed on the C side.
  * Kludges and bloat to a proper (but not necessarily correct) X
    server time in WM_TAKE_FOCUS messages to get around problems with
    some programs.
  * Some more mouse resize tuning.

2003-05-18:
  * Fix around problems with macros with some (possibly broken?)
    versions of gcc.
  * Some more focusing policy changes/fixes.

2003-05-17:
  * Fixed FloatWS initial focus.
  * Default configuration uses XOR-rubberband move/resize (instead of
    opaque) to be nicer on slower systems.
  * Changes in object and function names to be closer to what users
    see and think: what previously were screens (WScreen) are now
    called root windows (WRootWin) and viewport (WViewport) have
    become screens (WScreen). These changes are so big that no
    wrappers were added to compat.lua.
  * Some old root window (old screen) functions were removed.
  * Bindings in global_bindings should get a WScreen (old WViewport)
    as an argument instead of WRootWin.

2003-05-16:
  * Enchancements in client window "rescueing" and some unifications
    with return from full screen mode.
  * Added the extl_globals function for accessing globals.

2003-05-14:
  * Mouse resize changed to only resize along one coordinate axis
    when the window is grabbed far enough from borders.
  * 'ionws_do_clientwin' now calls the Lua function
    'ionws_placement_method' with parameters (ws, cwin,
    pos_given_by_user) to determine in which frame to place a window.
    This can be used to e.g. experiment with placement heuristics.
  * Return from full screen mode should work with floatws:s now.
  * Changes in how parameters are passed to Lua code loaded as string
    or from a file.
  * Client window management setup code simplified by attaching
    transients the their transient_for by default and having
    floatws:s override this behaviour by hooking to
    add_clientwin_alt.
  * Fixed a problem with bsearch() and Solaris.

2003-05-13:
  * Vertical keyboard resize binding swapped.
  * Keyboard resize should not "cumulate" size increments that do not
    affect the frame size.
  * Transient resizing when the managing WClientWin was resized had
    been broken  at some point.
  * The new Lua calling code allowed removing dependency on C99
    va_copy a little more easily than the old so Ion no longer
    depends on it and should be easier to compile on older systems
    (apparently including gcc 2.9x.x).
  * There was a problem getting return values from Lua functions.
  * The 'include' function didn't handle absolute paths.

2003-05-12:
  * Added new exports to get information on splits on WIonWs:s. This
    should help writing alternative navigation functions.
  * The exports region_get_(x|y|w|h) were replaced with region_geom.
  * Region name instances are saved in the workspace savefiles.
    (However, client windows do not use the saved title because it
    may have changed so client windows' instance numbers may change
    over restarts.)
  * Fixed a minor resize glitch.

2003-05-11:
  * Added checks in region_add_managed to prevent from attachinging
    parent's or manager's to their (grand)children or managed
    regions.

2003-05-10:
  * 'ionws_load' no longer requires 'split_tree' to be specified so
    that new workspaces can be created with region_manage_new without
    specifying the contents.

-- 
Tuomo

Reply via email to