It's finally time for a new release on Ion's development branch. Most
likely this will also be the last "big" release before finally, after
almost two years, releasing a new "stable" version of Ion. A few bug 
fix and code clean-up releases should appear in between, though.

The most important additions, changes and non-changes in this release
are:

  * Menu module
  * A little less broken extended character set and string encoding 
    support
  * Extended WM hints fullscreen request support
  * Hopefully a little clarified configuration file layout
  * Quite a few fixes
  * And most important of all:

        Configuration files written for the previous release should
        still work this time!

    (However, Ion will complain of old drawing engine styles.)

The menu module provides both drop-down menus (in the stock configuration
pressing Button3 on a tab should show a context menu) and query-like 
"in-mplex" menus (F12: main menu at screen level; Mod1+M: the same context 
menu as above at frame level).

What was done enhance support for strings (mostly window titles) in 
languages that need more than 8-bit character sets is:

  * Remove UTF8 restriction and support almost arbitrary multibyte 
    encodings instead. (Statefull encodings will not work and combining 
    characters can cause clutter. Both are a sign of bad encoding, IMHO.)

  * The XCreateFontSet routine that is used to load fonts in the kind
    of structure the X utf8 and multibyte routines want apparently wants
    to be able to load glyphs for all character sets specified in the 
    locale and therefore often fails if only single font is specified. 
    Therefore a kludge was added that tries loading more fonts while 
    keeping the fonts' size the same. (The ",*" kludge could load huge
    fonts). Unfortunately this has a noticeable effect in startup time :(.

  * There is no longer a system.mk option to enable utf8 (now multibyte)
    support, but must still specifically be enabled with the -i18n
    command line switch, mostly thanks to troublesome utf-8 locales.

Because Xlib's UTF-8 string drawing code is broken and very unlikely to 
be fixed, decent text output in an UTF-8 locale is still unlikely and 
dependent on the fonts loaded in the system. The Xmb routines that are now
used always use an iso10646-1 font even if other fonts are loaded and the 
unicode font does not contain a particular glyph to be drawn. The use of 
the Xutf8 routines  in an utf8 locale can be enabled with the CF_DE_USE_XUTF8
compile-time  option. The advantage of this is that these routines seem 
to choose the font to draw particular character in most cases more sanely.
The downside is that there are other more serious problems with unknown
characters.

All in all, even if I'd like to support a universal move to UTF-8, thanks 
to Xlib brokenness I can't really recommend using UTF-8 locales with Ion 
and the default drawing engine if there's a decent alternative encoding.
Most if not all other stateless encodings shouldn't have the problems 
UTF-8 has. An alternative drawing engine that didn't use the Xlib i18n
string drawing routines might solve the troubles with utf-8 support.

One more note:

If you have saved a custom system.mk, you'll need to set LUAC
point to the Lua compiler there as some of the share/ files
are compiled now.


New ChangeLog entries:


2003-11-19:
  * Replaced UTF-8 support with (almost) general multibyte encoding
    support.

2003-11-16:
  * Updated the man page.
  * Bindings can now be removed on the fly by passing nil as callback
    function.
  * Added support for _NET_WM_STATE_FULLSCREEN request.

2003-11-15:
  * Added font caching/ref.counting so that font loading would take
    little less time when pattern guessing is required to fullfill
    locale's requirements.
  * UTF8 is not used if locale is C/POSIX (or broken) even if Ion was
    compiled with UTF8 support.

2003-11-14:
  * Added FontSet guessing code that should be able to figure out
    enough fonts for XCreateFontSet to fullfill locales' requirements
    so font loading shouldn't fail so often when UTF8 support is
    enabled.
  * The functions to create binding wrappers to operate on WMPlexs'
    children were extended and given better names, although the old
    ones are still available.

2003-11-13:
  * Call XClearWindow when toggling tab to avoid clutter.
  * Changes in default configuration files to make them more legible
    and to add menu configuration.
  * 'ioncore-startup.lua' kludge was removed and replaced by the
    loading of 'ioncore-efbb.lua' in case of empty bindmaps from the
    C side.
  * Lua files in share/ (but not etc/) are precompiled.

2003-11-12:
  * C-side module configuration file loading function also look for
    compiled .lc files.
  * Lua-side include() automatically also looks for .lc and .lua
    files if neither extension nor path component is given.

2003-11-09:
  * Added WRegion.is_active and is_mapped exports.

2003-11-06:
  * Some mplex_managed_changed calls were wrong, causing trouble with
    transparency.

2003-11-05:
  * Stack management fixes.

2003-10-30:
  * Removed CURRENT_FILE kludge for include handling; use the Lua
    debug interface instead to get the file the calling function was
    defined in.

2003-10-27:
  * Some style name changes.
  * Updated the look-* files.
  * Changed styles are automatically translated (and complained of).

2003-10-25:
  * Check fallback font at startup with XCreateFontSet instead of
    XLoadQueryFont.

2003-10-24:
  * Moved list of modules to build from system.mk to modulelist.mk

2003-10-04:
  * Added genframe_(in)activated hooks.
  * va_list usage changes due to problems on some architechtures.

2003-09-15:
  * Some fixes to client window rescuing.
  * Some target and fullscreen winprop handling fixes.

2003-09-09:
  * Fixed an event-missing problem.

2003-08-31:
  * Added a note on .xinitrc/.xsession to README. 

2003-08-28:
  * Some border drawing fixes.

2003-08-24:
  * Added ''pmenu'' off-screen scrolling support as in PWM.

2003-08-22:
  * Fixed a crash problem in case of invalid use of
    WGenFrame.p_tabdrag.

2003-08-21:
  * Added a brush that handles submenu entries in menus specially.
  * Enhanced menu support.

2003-08-20:
  * Don't strip white space from query results.

2003-08-19:
  * Fixed tab drop on floatws:s (was putting clients to full screen
    mode on occasion).

-- 
Tuomo

Reply via email to