Changes from Select 3i1 (to 3i2)
================================


Introduction
------------
Select 3i1 introduced a lot of new features to the operating system. These
features have been stablised for 3i2 and a number of additional changes have
been made in response to user feedback. Information about the changes to
each component throughout its life can be found in the Summary files
provided with the ROM (accessible through the Softload tool using the
'Information' button), within the installed !Boot directory and within the
HardDisc archive.


Graphics
--------
AppleTalk and LanManFS have been given new icons to fit better with the
graphical style of Select.

ConvertBMP now supports 16bpp and 32bpp images. The only (valid) format not
supported by ConvertBMP now is that of top-down BMPs.

Draw now supports arbitrary path clipping.

FontManager now supports blending in 2bpp and 4bpp screen modes. This is
primarily to support redirection to sprites.

InverseTable is now capable of generating tables in 1bpp, 2bpp and 4bpp
screen modes. 1bpp tables are less useful but are included for consistency
of interface.

ImageFileRender now handles transformation data more reliably, can 'hide'
windows and no longer defaults to an image of geometric shapes.

SpriteExtend can now handle redirection to sprites which are 1 pixel high.
This is an extremely longstanding fatal bug.

SpriteUtil is now more reliable when the size of the system sprite area has
been configured. Issue 1 would hang on startup.


Window Manager
--------------
WindowManger has been updated with a number of minor fixes and a couple of
major ones :
  * Problems with Watchdog and transient callbacks should now have been
    addressed, making it more reliable in the face of faulty background
    tasks using transient callbacks.
  * Added UpCall handler on task shutdown.
  * Applications terminating with focus in transient windows should now
    exit cleanly.
  * Command windows should now be centred more reliably.
  * Background windows are now part of an independant stack (see
    'WindowStack').
  * Drags over text icons made whilst a modifier key is pressed are now
    passed on to the application, rather than initiating a text selection.
  * Carets positioned in faded icons should no longer cause the machine
    to lock.


Networking
----------
AppleTalk no longer claims interface 1 when used with interfaces that provide
additional interfaces (eg EHVirtual).

AppleTalk should now be able to close sessions more reliably.

LanManFS has been updated to better cope with being restarted and to coexist
with AppleTalk a little better.


Kernel
------
Kernel has been updated with a number of fixes addressing long-standing
issues, in particular :
  * The Callback handler now takes priority over transient callbacks. This
    prevents a race condition which might result in an invalid context
    switch being provoked.
  * Redirected output to sprite using text mode output will not longer
    corrupt memory on short sprites.


Desktop
-------
Display Manager now displays frequencies in its menus in ascending order to
match the other menus.

Filer has been internally rationalised to make way for other changes in the
wake of Thumbnailing. In particular, applications with alpha-channel
!Sprites will now be displayed correctly after being selected and the
WimpSlot will be automatically selected when an Absolute or BASIC file is
run directly from Filer.

IconBordersRound now supports an 'outline' group effect, and a few minor
issues have been corrected.

Pinboard can now be reliably moved from the back of the window stack to the
front (see 'WindowStack' for the changes in the WindowManager to address
this).

Wimp_StartTask issued within a TaskWindow will no longer cause aborts due
to invalid context switches.

TaskWindow now allows redirection to sprites (see 'TaskWindow' for more
details).



Toolbox
-------
Toolbox modules have been updated to use the more standardised 'content,
divider, buttons' style where appropriate.

TextGadget has had a number of issues addressed, including :
  * Fix for memory leak in scrolling lists.
  * Fix for hiding scrolling lists.
  * Fix for 0-length columns in scrolling lists making columns infinitely
    wide.
  * Support for font change information on mode change.
  * Fixes for a number of redraw bugs.
  * Added support for using system font within the text area, which should
    make incorrectly specified fonts function more reliably.

Toolbox Window module has been updated to address a number of issues :
  * Windows shown with menu semantics would cause mis-delivered messages
    due to a long standing issue with event dispatch.
  * Fix for event messages being issued with invalid sizes.
  * Font handles are no longer leaked on a mode change.
  * Slider gadget should no longer be able to generate 'divide by zero'
    errors.
    

Miscellaneous
-------------
!Alarm will now report help messages correctly.

Obey is now StrongARM compatible.

The RAMFS dynamic are is now handled by RAMFS. RAMFS is now permanently
resident.

SharedSound now has more reliable handlers for clients. Previous versions
had handlers which could produce currupt output or abort under certain
circumstances.

SysLog has been updated to hold a number of buffers for its data in order to
reduce latency in logging.

Zipper has been updated to correct a few problems with extension data and to
correct a problem with time specifiers being off by one in the month field.
