-------------------- AmigaOS 3.5/3.9 project ------------------------- iprefs 44.1 (11.4.1999) - No longer does a dangerous segment split. - The stack size is now inherited from the parent CLI. - No longer uses the small data model. iprefs 44.2 (11.4.1999) - No longer puts itself into danger of holding onto the IntuitionBase master lock and triggering an OpenScreenTagList() call before that lock is released. iprefs 44.3 (13.4.1999) - Window and screen patterns are now allocated as friend bitmaps. This greatly improves Workbench window update performance. iprefs 44.4 (25.4.1999) - Switched over to smake. iprefs 44.5 (15.5.1999) - A change in the printergfx.prefs file now also causes the printer.prefs file to be reread. iprefs 44.6 (12.6.1999) - Before notifying Intuition about changes in the palette.prefs file, Workbench is now notified and asked to let go of its icon colour palette. After the palette is changed, Workbench is then notified again and asked to reallocate its icon colours again. iprefs 44.7 (27.6.1999) - Added new, safer colour expansion code for pattern filling. - Fixed a memory leak in the pattern allocation code. iprefs 44.8 (7.8.1999) - Added support for the workbench.prefs and reaction.prefs configuration files. The reaction preferences configuration code still uses the global semaphore name "CLASSACT-PREFS", which it should not. iprefs 44.9 (11.8.1999) - Updating any preferences would cause the hidden device list to be cleared. Fixed. - Increased the IPrefs process stack size to 8192 bytes. This fixed a few inexplicable crashes. - The global reaction semaphore now bears the name "REACTION-PREFS". iprefs 44.10 (17.8.1999) - Now properly supports empty hidden device lists. iprefs 44.11 (22.8.1999) - Changing the Workbench palette now also causes the wbpattern.prefs file to be reread. - Now supports the window/screen pattern precision and quality options. IPrefs 44.12 (9.9.1999) - Changing the pointer colours now also causes the Workbench icons to be remapped. IPrefs 44.13 (10.9.1999) - Changing the pointer colours now also causes the wbpattern.prefs file to be reread. - The IPrefs semaphore is now semi-public, to allow the Workbench fill patterns to be accessed from outside. IPrefs 44.14 (11.9.1999) - Cleaned up the code that loads the Workbench backdrop patterns. IPrefs 44.15 (17.9.1999) - More cleanup work, this time affecting the global semaphore data structures. IPrefs 44.16 (18.9.1999) - Implemented limited FastIPrefs compatibility. This means for example that the WBPattern prefs file chunks written by the FastIPrefs version of that program will be understood by IPrefs now. Workbench in turn supports the FastIPrefs centering and fill options now. IPrefs 44.17 (20.9.1999) - Rebuilt without internal header files and stub code, trying to save some space. IPrefs 44.18 (20.9.1999) - More tweaking for better FastIPrefs compatibility. IPrefs 44.19 (25.9.1999) - Changing the pointer palette or the screen palette preferences no longer resets and remaps the icons but attempts to close and reopen the Workbench screen. This should be the cleanest solution. IPrefs 44.20 (7.10.1999) - Changed the order in which the Workbench backdrop pattern loader code obtains the semaphores. The code also protects itself better against changes in backdrop data structures now. IPrefs 44.21 (6.11.1999) - The backdrop pattern loader code no longer shows error requesters while it holds onto more than one semaphore for protection. It now loads the data, remembers which picture didn't load, releases the semaphores and then complains about the problems it encountered. IPrefs 44.22 (10.11.1999) - Found a bug which could wreck the limited FastIPrefs compatibility (and which did wreck it most of the time). Fixed. IPrefs 44.23 (30.11.1999) - The code didn't properly cache SysBase, leading to a slowdown. Fixed. IPrefs 45.1 (29.10.2000) - Added support for the new ASL preferences settings. IPrefs 45.3 (2.11.2000) - The ASL preferences file did not get processed. Fixed. - The IPrefs global semaphore now holds a copy of the IControl flags value (string gadget filter options, etc.). -------------------- AmigaOS 3.1.4.(1) project ----------------------- IPrefs 45.4 (13.8.2017) - Changed the compiler options to generate more compact code with a base register rather than absolute positions. - Removed MD5 cludges. IPrefs 45.5 (6.10.2017) - Added a function to lock the Tragic WB IPrefs 45.6 (7.10.2017) - Apparently, TragicWB color locking is already part of IPrefs, though through a different preferences structure. Included now (parts of) the Os 3.9 preferences and retired the temporary cludge of 45.5. - Functionality to set the icon memory type has been retired. - The workbench no longer supports an option to disable the volume gauge. - IPrefs does at this time not include an option to disable the title bar. IPrefs 45.7 (7.10.2017) - Re-enabled the option to hide or show the title bar. - Re-enabled the option to hide or show the volume gauge. IPrefs 45.8 (31.10.2017) - Requires resetting the WB if the aspect ratio setting is changed. IPrefs 45.9 (31.10.2017) - The workbench is now only reset if the aspect ratio setting did actually change. IPrefs 45.10 (18.3.2018) - New baud rates from serial prefs (38400, 57600) are now being supported (or not, as intuition prefs does not allow them). IPrefs 45.11 (17.4.2018) - IPrefs uses now a somewhat more relaxed timing for re-setting the workbench. IPrefs 45.12 (27.4.2018) - DOpus has a really weird way of closing the workbench - or not closing it at all. CloseWorkbench closes and re-opens the screen, but may then fail because DOpus has non-workbench windows on the screen. Added a bizarre workaround for this particular problem. IPrefs is now also fine if Workbench has been re-opened in the meantime. IPrefs 45.13 (6.5.2018) - The order in which tags for the workbench control functions are provided are strange. The final refresh should obviously come last. IPrefs 45.14 (2.6.2018) - Due to the way how IPrefs parses prefs, any printerGfx settings in the printer preferences overloaded the printerGfx settings. This was valid for Os 3.9, but it no longer is. We ship PrinterGfx natively, and hence PrinterGfx should take preference if it is there. If this is not desirable, delete ENVARC:sys/PrinterGfx and all should be good. IPrefs 45.15 (12.6.2018) - Removed obsolete strings in IPrefs, making it a bit shorter. IPrefs 45.16 (21.6.2018) - Due to a timing issue, IPrefs might have missed to re-open the screen if the screen mode got changed. Fixed that. ---------------------------- AmigaOS 3.2 project --------------------- IPrefs 45.17 (13.4.2019): - IPrefs accumulates now multiple prefs changes and then handles them in one go to avoid multiple refreshes quickly after another. IPrefs 45.18 (17.4.2019): - Unfortunately, a couple of preference items can be stored in conflicting files, such as settings from FastIPrefs and the regular workbench settings. In such cases, it was more or less a matter of timing which preference item "won" and became active. This is now handled more consistently. IPrefs 47.1 (30.5.2019): - Added support for the Off-screen dragging functions. The workbench is now reset when it changes. IPrefs 47.2 (4.7.2019): - IPrefs honors now the picture flags. IPrefs 47.3 (3.8.2019): - Added support for custom Workbench title format and title update delay. IPrefs 47.4 (17.11.2019): - IPrefs is now more intelligent and prints the titles of the windows that block the workbench from closing. IPrefs 47.5 (24.11.2019): - Saved quite some bytes explicitly zero-initializing the BSS section. IPrefs 47.6 (17.2.2020): - Added support of wb outline and shadow icon text. IPrefs 47.7(18.2.2020): - Communicate a fuller iprefs structure IPrefs 47.8 (13.04.2020): - Don't send useless pointers all the way to intuition, just to get them thrown back anyway IPrefs 47.9 (19.04.2020): - Corrected the extended MagicWB colours 4-7 to be more precise to specification IPrefs 47.10 (2020-may-04): - Make hoverslugishness available for user configuring - Also make sure icontrol pref files are safe to use on any combination of iprefs and intuition IPrefs 47.11 (13.5.2020) - All backdrop pictures for Workbench, Window and Screen would end up being reloaded every time the WBPattern preferences were saved/used, even if only some or none of them had changed, and without freeing the copies still in memory. Now fixed. [Backported from AOS4 V45.4] - IPrefs would leak memory every time the WBPattern preferences were saved/used if "Picture" was selected as backdrop type for some item but no file name was given. Now fixed. [Backported from AOS4 V45.4] - Now reloads a backdrop picture even if its file name hasn't changed in case any of the other parameters (layout, quality, precision) is modified by the user. [Backported from AOS4 V45.4] - The backdrop pattern bitmaps would not get freed when the Workbench screen was closed; now fixed. [Backported from V50.14] - No longer locks a semaphore used by the screen backfill hook before notifying Workbench about a change in the backdrop patterns for its windows. This could cause a deadlock if a different task tried to invoke the screen backfill hook (for example, by closing a window) before Workbench had finished refreshing its drawers in response to the backdrop pattern change. [Backported from V51.32] - A Workbench backdrop pattern change could result in a crash because of an unprotected walk-through of the window list; now fixed. - No longer inlines all the various preferences reading routines in a single function; this should make IPrefs require much less stack to perform its processing. Thanks to Olaf for discovering and pointing out such potential consequences of excessive inlining. - In case of a discrepancy between WBPattern and FastIPrefs settings for color precision, the lowest precision level among the two would be picked, instead of the highest. Now fixed. - Now checks whether datatypes.library is actually open in the first place before examining all conditions that must be met to close it. - Commented out some redundant code in the backdrop pattern routines. IPrefs 47.12 (24.5.2020) - Replaced the locale string lookup code with a safer version which does not go off the rails if asked to look up a string ID value which is not stored in the local CatCompBlock data lump. IPrefs 47.13 (27.5.2020) - Added support for the new window aspect ratio correction feature of Intuition. - The initial setting of IControlPrefs done to turn on display mode promotion was passing Intuition a partially initialized structure which could contain garbage in some of its recently added fields; now fixed. IPrefs 47.14 (17.6.2020) - Fixed a bug in the gadget rearranging code which would prevent the four arrow buttons in the right border of CPR's Memory window from being positioned correctly. IPrefs 47.15 (13.7.2020) - Added support for the new Workbench text mode drawer name placement. This requires at least workbench.library 47.19, as well as Workbench (editor) 47.21 to actually change the settings. IPrefs 47.16 (17.7.2020) - Added support for replacing topaz with alternative encodings. For now only Cyrillic and Greek, as they don't preclude us from doing unicode in the future. That doesn't mean we will do unicode, just that we don't want to prevent it. Further decision on this topic postponed until at least 3.3 IPrefs 47.17 (17.08.2020) - Added support for topaz_ISO-8859-15.font (Euro locale) IPrefs 47.18 (29.8.2020) - Changing colors in Palette preferences will now close and reopen the Workbench screen if its display mode is hicolor or truecolor, since in that case the screen graphics would not be immediately updated to reflect the change (that can only happen on CLUT display modes). IPrefs 47.19 (14.9.2020) - Revert encoding support - all languages now treated equally, and avoids potential stumbling blocks in the future IPrefs 47.20 (26.9.2020) - Limit number of pens to 11 if running on Intuition <= V40 to avoid trashing portions of IntuitionBase when updating the screen palette. IPrefs 47.21 (27.9.2020) - Fixed a mistake I made with the V40 palette fix (it did not apply to all cases) IPrefs 47.22 (28.9.2020) - Incorporated changes suggested by Massimo - Also restrict number of pens if cgxsystem.library is found in SysBase->LibList - Ignore CGX if rtg.library is present (P96 emulating CGX) - Skip extra pointer data to avoid visible mouse pointer cycling if running on Intuition V40 IPrefs 47.23 (15.10.2020) - The icontrol.prefs loading could write into memory that wasn't allocated if the prefs file was old IPrefs 47.24 (25.10.2020) - Added support for the new GUI exception database, the new automatic scaling of window border gadgets and the new increment settings for the height of screen and window title bars. - The routine reading the Workbench hidden device chunks would forget to free the node it allocated when recovering from a failure in the read operation; now fixed. IPrefs 47.25 (26.10.2020) - The GUI exception hook will now ignore any CLI program name that is just an empty string; when such a condition is detected, the task name will be used instead for comparison against exception entries. IPrefs 47.26 (30.10.2020) - Under intuition.library versions older than 47.28, IPrefs would try to use a semaphore and a list without having initialized them first; now fixed (bug #1900).