1. 01 Sep, 2015 1 commit
    • Jeffrey Lee's avatar
      Disable Wimp_ClaimFreeMemory if the free pool is a PMP · 9c341e50
      Jeffrey Lee authored
      Detail:
        s/Wimp08s - If the free pool is a PMP, it's fairly safe to say there'll be no logical mapping, so don't allow Wimp_ClaimFreeMemory to succeed. Also cope with OS_Memory 10 potentially being unimplemented - swallow any error it generates, and refuse to claim the free pool.
      Admin:
        Tested on Pandaboard
        Fixes crashes and subsequent OS_ChangeDynamicArea failures caused by software trying to claim the free pool (e.g. FileCore temp buffers).
      
      
      Version 5.49. Tagged as 'Wimp-5_49'
      9c341e50
  2. 08 Jul, 2015 1 commit
    • Robert Sprowson's avatar
      Only skip ColourTrans calls for 32bpp TBGR · 84a2570c
      Robert Sprowson authored
      The whizzy new TRGB modes can't assume 32bpp sprite data is equivalent to 32bpp palette entries, so must use ColourTrans.
      * Disable the use-in-place optimisation if that's the case
      * Update the comments to reflect this logic more clearly
      Fix bug in non Medusa case, STRB was using the wrong register as the base address.
      
      Tested briefly with 'Raspberry' theme, unchanged from previous version.
      
      Version 5.48. Tagged as 'Wimp-5_48'
      84a2570c
  3. 19 Apr, 2015 1 commit
  4. 15 Nov, 2014 1 commit
    • Robert Sprowson's avatar
      Add ptr_drop to the sprite pool · 50028941
      Robert Sprowson authored
      This is a left handed pointer to signify a drag and drop operation in progress.
      The sprite makes use of the mask to define the hotspot to be the tip of the arrow, for Wimp/SpriteExtends that understand that.
      
      Propagated the hotspot definition on ptr_write to the other sprite sets, previously it was only in the Iyonix theme.
      Missing ptr_menu and friends added to Morris theme.
      Made file_ffb more distinct from the other system files in Ursula theme.
      
      Version 5.47. Tagged as 'Wimp-5_47'
      50028941
  5. 24 Sep, 2014 1 commit
    • Ben Avison's avatar
      Fix to warning · 03ef557b
      Ben Avison authored
      Detail:
        Previous test for include order of Hdr:Services and Hdr:Wimp was broken.
        See HdrSrc 2.46 for the other half of this fix.
      
      
      Version 5.46. Tagged as 'Wimp-5_46'
      03ef557b
  6. 18 Sep, 2014 1 commit
  7. 05 Sep, 2014 1 commit
    • Robert Sprowson's avatar
      Fix for background colour too light on non-bordered icons · e5a8bd07
      Robert Sprowson authored
      Wimp04.s:
       Line 991, a register fumble meant the special case check (when the icon background colour equals the window work area colour) always failed so the icon background was lightened.
       Removed unnecessary ADR.
      Wimp10.s:
       Function getborder() made more readable by use of symbols instead of magic numbers
      Fixes ticket #395 reported by Paul Reuvers.
      
      Version 5.45. Tagged as 'Wimp-5_45'
      e5a8bd07
  8. 18 Aug, 2014 1 commit
    • Robert Sprowson's avatar
      Fix for incorrect menu widths in system font · 2487da00
      Robert Sprowson authored
      Width counting of menus in the system font would continue until a control terminator was found, however in the case of a non indirected menu entry of exactly 12 characters there is no terminator, so the menu would be too wide (by however many non terminator bytes happened to follow the menu definition in memory). This would normally end up 16 OS units too wide (because it'd encounter a zero after the menu items flags of the next menu entry).
      
      Version 5.44. Tagged as 'Wimp-5_44'
      2487da00
  9. 20 Jul, 2014 1 commit
    • Robert Sprowson's avatar
      Add definitions of button types 11/14/15 · 2ddbcbf5
      Robert Sprowson authored
      Button type 11 was added in 1988 so is about time it had a symbol to refer to it in the sources. Added & used said symbols.
      Removed 'DoubleIcon' switch, prototype button type 12.
      Built binary identical module, not tested.
      
      Version 5.43. Not tagged
      2ddbcbf5
  10. 02 Jul, 2014 1 commit
    • Jeffrey Lee's avatar
      Fix G16 modes · d1bdba23
      Jeffrey Lee authored
      Detail:
        s/Wimp02 - With Kernel-5_35-4_79_2_210 and later, the greyscale palette flag updates in real time to reflect the current state of the palette. Therefore we must read the state of the flag before we set our colour palette, otherwise we won't know that we need to apply the greyscale fixup afterwards.
      Admin:
        Tested on BB-xM
      
      
      Version 5.43. Tagged as 'Wimp-5_43'
      d1bdba23
  11. 28 May, 2014 1 commit
    • Robert Sprowson's avatar
      Fix for incorrect names on pinned windows · be7094e5
      Robert Sprowson authored
      The post increment of R14 when looking for a control/space terminator meant that the search for a leafname started one too far along.
      So in the situation where memory contained something like
        <window_title><null><dot><garbage>
      the code would pick up the dot and try to use <garbage> as a leafname.
      Submission from Fred Graute.
      Fix for ticket #244.
      
      Version 5.42. Tagged as 'Wimp-5_42'
      be7094e5
  12. 19 Apr, 2014 1 commit
    • Robert Sprowson's avatar
      Fix for missing window backgrounds/scroll bars when tiled sprite op not supported · f0e0f3ad
      Robert Sprowson authored
      For the backgrounds, the code was switched with 'standalone' however the Wimp actively wipes SA_FLAGS in its makefile so the standalone switch is always false during the install phase of a disc build. Also, the standalone switch is used to include resources which are ordinarily handled by the boot sequence prefixing the WindowManager$Path rather than using ResourceFS.
      For the scroll bars, the decision to plot manually was being made by looking at the V flag on return from Tool_SpriteOp, except that that function uses EntryS/EXITS so the caller can't see the return flags.
      Added new switch CanTileManually, removed 0 use tilewithspriteops switch.
      Changed single use of NoFontBodge switch to use preferred 'outlinefont'.
      Tested on RISC OS 4.02.
      
      Version 5.41. Tagged as 'Wimp-5_41'
      f0e0f3ad
  13. 18 Apr, 2014 1 commit
    • Jeffrey Lee's avatar
      Fix *WimpMode/Wimp_SetMode to return an error when given a bad mode selector... · fe39094e
      Jeffrey Lee authored
      Fix *WimpMode/Wimp_SetMode to return an error when given a bad mode selector block. Re-read configured mode on Sevice_Reset.
      
      Detail:
        s/Wimp01 - Reinitialise currentmode on Service_Reset in order to get the correct mode in the case of a GraphicsV driver overriding it (driver may not have been initialised at the time of the first call in module init). Add a bit more mode debugging and ensure ValidateAddress code completely removed under Medusa.
        s/Wimp02 - Issue OS_CheckModeValid in validatemode so we can detect cases where a valid looking mode selector block doesn't actually map to a mode definition. Add more mode debugging code.
      Admin:
        Tested on Raspberry Pi
        Fixes issue where "F12 -> *BASIC -> MODE 0 -> QUIT -> return" wouldn't restore screen mode correctly if currentmode had been set to a bad mode selector (e.g. after a CMOS reset nukes the LoadModeFile command), due to WimpMode's lack of error checking
        Note that this merely prevents currentmode being set to a bad mode at the time of *WimpMode/Wimp_SetMode - if a mode which is valid suddenly becomes invalid (e.g. due to loading a new MDF but not reselecting a valid wimp mode) then the Wimp will still fail to set a sensible mode on return to the desktop.
      
      
      Version 5.40. Tagged as 'Wimp-5_40'
      fe39094e
  14. 13 Apr, 2014 1 commit
    • Jeffrey Lee's avatar
      Protect memory above MemoryLimit being nuked when starting a task · 6911d7cc
      Jeffrey Lee authored
      Detail:
        s/Wimp08s - Improve testapplication to detect situations where data is being stored above MemoryLimit, e.g. if a C app uses system() to issue *WimpTask
        Usually the CAO check will detect this kind of situation, except for the case where a single-tasking app issues *WimpTask - in which case the CAO will get reset to the Wimp module due to ModHandReason_Enter being used to get into USR mode so a temp parent task can be created
        Wimp_SlotSize checks MemoryLimit against ApplicationSpaceSize before allowing the wimpslot to be resized, so it seems to be a bit of an oversight that the task startup code wasn't doing the same
      Admin:
        Tested on BB-xM
        Fixes ticket #279:
        https://www.riscosopen.org/tracker/tickets/279
      
      
      Version 5.39. Tagged as 'Wimp-5_39'
      6911d7cc
  15. 27 Mar, 2014 1 commit
    • Jeffrey Lee's avatar
      Disallow Wimp_SpriteOp 38 (create/remove alpha) · d3034221
      Jeffrey Lee authored
      Detail:
        - s/Wimp01 - Add OS_SpriteOp 38 (create/remove alpha) to the list of banned SpriteOp's for Wimp_SpriteOp. OS_SpriteOp 38 is almost always guaranteed to modify the target sprite, and so in keeping with other sprite modification ops it shouldn't be allowed via Wimp_SpriteOp.
      Admin:
        Tested on BB-xM
      
      
      Version 5.38. Tagged as 'Wimp-5_38'
      d3034221
  16. 09 Mar, 2014 1 commit
    • Jeffrey Lee's avatar
      Fix to build with HdrSrc-2_42. Use OS_SpriteOp 65 where possible. · 41cb4f23
      Jeffrey Lee authored
      Detail:
        s/Wimp01 - Update Wimp_SpriteOp handler to cope with the new SpriteReason_BadReasonCode value. Initialise unused bits of spritebits to 1 so that it acts as a whitelist, only allowing through operations that we know are safe.
        s/Tiling3D - Use OS_SpriteOp 65 for drawing tiled window backgrounds. Softload versions will fall back to using the old manual tiling code if OS_SpriteOp 65 is unavailable.
        s/Wimp10 - Use OS_SpriteOp 65 for drawing the tiled sprites that make up scrollbar wells and bars. Falls back to manual tiling in softload versions.
      Admin:
        Tested on Iyonix, BB-xM
        Requires HdrSrc-2_42
      
      
      Version 5.37. Tagged as 'Wimp-5_37'
      41cb4f23
  17. 01 Mar, 2014 1 commit
    • Jeffrey Lee's avatar
      Implement sprite translation table caching · 9187a060
      Jeffrey Lee authored
      Detail:
        This set of changes allows the Wimp to cache the last-used translation table, and cleans up some instances where translation tables were being generated and then not used
        s/Wimp01 - Expand selecttable_args to store all 8 registers needed by ColourTrans_GenerateTable. Add 1K of space for caching the palette that the cached translation table was generated from. Remove unused spriteX, spriteY variables.
        s/Wimp04 - Split cachespritedata in two. cachespritedata now only caches the basic information, while the new cachespritepixtable rotuine will generate a translation table (shaded/inverted if required). This allows table generation to be deferred until we're just about to render the sprite, ensuring that the table isn't generated only to not be used. Also updated icon sprite rendering to check the sprite is within the graphics window before attempting to render it, allowing removal of one more case where tables can be needlessly generated.
        s/NewSWIs, s/Wimp09 - Change ADR to ADRL
        s/Tiling, s/Tiling3D - Use cachespritepixtable when needed
      Admin:
        Tested on Iyonix, BB-xM, StrongARM RiscPC
      
      
      Version 5.36. Tagged as 'Wimp-5_36'
      9187a060
  18. 06 Jan, 2014 1 commit
    • Ben Avison's avatar
      Fix detection of Hdr:Wimp being included before Hdr:Services · 40176aa7
      Ben Avison authored
      Detail:
        The trick used only works with variable name symbols; other symbols remain
        defined after the end of the first pass of assembly
      Admin:
        Should enable us to track down components that will need changing from
        examination of the build logs
      40176aa7
  19. 01 Jan, 2014 1 commit
    • Jeffrey Lee's avatar
      Change Wimp_ReadSysInfo 2 to not return alpha sprite names. Add... · 8913591b
      Jeffrey Lee authored
      Change Wimp_ReadSysInfo 2 to not return alpha sprite names. Add Wimp_ReadSysInfo 29 and Wimp_Extend 257.
      
      Detail:
        s/Wimp01 - Change romspr_suffix initialisation so that it won't store alpha sprite suffixes. This has the knock-on effect of making Wimp_ReadSysInfo 2 no longer return alpha sprite suffixes, without affecting any of the sprite search code
        hdr/Wimp, s/Wimp01 - Add Wimp_ReadSysInfo 29 to read the alphaspriteflag value - i.e. whether alpha sprites are supported by the OS/Wimp and *IconSprites, Wimp_Extend 13, etc. will look for them
        hdr/Wimp - Document the private Wimp_Extend reason codes and add a couple of ROL's reason codes
        s/NewSWIs - Tidy up Wimp_Extend implementation to use a jump table instead of a load of tests and branches. Add an implementation of ROL's Wimp_Extend 257, which just acts as a wrapper around Wimp_Extend 13
      Admin:
        Tested on Raspberry Pi
        Wimp_ReadSysInfo 2 change should fix issue reported on forums with software unexpectedly using low-res sprites or failing altogether:
        http://www.riscosopen.org/forum/forums/4/topics/2274
      
      
      Version 5.35. Tagged as 'Wimp-5_35'
      8913591b
  20. 30 Nov, 2013 2 commits
    • Jeffrey Lee's avatar
      Fix alpha sprite support · 9f37c9dd
      Jeffrey Lee authored
      Detail:
        s/Wimp01 - An ill-advised last minute edit would leave the Wimp in an infinite loop looking for ROM sprites if it tried to enable alpha sprite support
      Admin:
        Tested on BB-xM
      
      
      Version 5.34. Retagged as 'Wimp-5_34'
      9f37c9dd
    • Jeffrey Lee's avatar
      Add support for *iconspriting of alpha-masked sprites. Fix icon... · 03e27cbe
      Jeffrey Lee authored
      Add support for *iconspriting of alpha-masked sprites. Fix icon shading/inverting to work with true colour sprites.
      
      Detail:
        Options/s/!Default, s/NewSWIs, s/Wimp01:
      
        Updated ROM sprite find code, *IconSprites and Wimp_Extend 13 to understand a new spritefile suffix.
        If the Wimp detects that RISC OS Select style alpha masked sprites are supported, and we're not using the mode 23 sprites, then the code will enable support for alpha masked sprites of the form !SpritesA1, !SpritesA2, !SpritesA, etc. Alpha-masked sprites are only looked for when looking for square pixel sprites or just before looking for the default sprites. This means the full search pattern for (e.g.) a !Sprites21 mode would be as follows:
      
        !Sprites21  (original mode)
        !SpritesA2  (next squarer mode, alpha sprites)
        !Sprites22  (next squarer mode)
        !SpritesA   (default alpha sprites)
        !Sprites    (default sprites)
      
        Like with !Sprites11 support, this feature can be toggled off via the SpritesA option if necessary.
      
        s/Wimp01, s/Wimp04:
      
        Updated icon plotting code (wimp_SpriteOp_putsprite and calculateinverse) to allow true colour sprites/icons to be rendered shaded/inverted.
        For this to work the Wimp needs a version of SpriteExtend which supports colour mapping (specifically it checks for the relevant ROOL version number).
        The colour mapping function which is used to build the translation tables used for shading/inverting palettised sprites is too slow to be sensibly used on a per-pixel basis, so the first time a shaded/inverted true colour sprite is requested the Wimp will generate a set of lookup tables which can be used by a much simpler colour mapping routine.
        To keep memory usage down these lookup tables only use 4K colours each; however the quality isn't always that great and so this may need revising in future.
      
      Admin:
        Tested on BB-xM
      
      
      Version 5.34. Tagged as 'Wimp-5_34'
      03e27cbe
  21. 08 Oct, 2013 1 commit
    • Jeffrey Lee's avatar
      Improvement to previous commit · c5074988
      Jeffrey Lee authored
      Detail:
        s/Wimp04, s/Wimp10 - cachespritedata & cachetoolspritedata now force SpriteExtend to be used if the sprite has an alpha channel, to ensure plotting an alpha'd sprite into an alpha'd framebuffer performs blending instead of potentially skipping it (and copying the sprite alpha channel to the screen alpha channel)
      Admin:
        Builds, but untested
      
      
      Version 5.33. Retagged as 'Wimp-5_33'
      c5074988
  22. 07 Oct, 2013 1 commit
    • Jeffrey Lee's avatar
      Fix logic which decides whether to plot sprites using the Kernel or... · b5280514
      Jeffrey Lee authored
      Fix logic which decides whether to plot sprites using the Kernel or SpriteExtend to take into account the new sprite modes
      
      Detail:
        s/Wimp01 - Add NColour mode variable to the list of variables cached for the current screen mode. Add modeflags & ncolour to the sprite & tool sprite variables.
        s/Wimp04, s/Wimp10 - Update cachespritedata and cachetoolspritedata to look at the modeflags, ncolour and alpha mask flag when deciding if sprite_needsfactors should be set or not (i.e. whether the code ultimately uses OS_SpriteOp 52 or 34). This should allow the Wimp to correctly detect if a sprite can safely be rendered by the Kernel or not (except for double pixel vs. non-double pixel - but presumably nobody's using double pixel mode sprites for icons/tool sprites, otherwise it would be fixed by now?)
        s/Wimp04 - Add an extra safety check to icon text rendering after a crash was seen when calling Wimp_PlotIcon outside of a redraw loop
      Admin:
        Tested on BB-xM
        Fixes problem reported on forums with 32bpp, alpha-masked sm!Netsurf icon vanishing from filer when viewed in 32bpp modes
        https://www.riscosopen.org/forum/forums/3/topics/309?page=4#posts-25995
      
      
      Version 5.33. Tagged as 'Wimp-5_33'
      b5280514
  23. 08 Sep, 2013 1 commit
    • Robert Sprowson's avatar
      3 minor fixes, 2 minor enhancements · a9c3b548
      Robert Sprowson authored
      Makefile:
      * Conditionally copy the disc resources, saving a little build time.
      Wimp10.s; hdr/Wimp:
      * Issue Service_WimpToolSpritesChanged when the tool sprite area is changed.
      Wimp05:
      * Fix bug in softloaded versions of the Wimp where menus would randomly lose the keyboard shortcut text. This was caused by use of an LDR to retrieve a byte wide variable. This specifically affected some softloads because the Wimp gets squeezed, and during unsqueezing the Wimp's workspace ends up being allocated from the same bit of RMA that used to contain the squeezed copy of the module (=lots of random numbers).
      Wimp09:
      * Fix bug where configuring WimpSpritePrecedence to ROM when a theme is loaded would cause redrawing of window textures to fail. This is because the Wimp intersects the ROM and RAM sprite areas and deletes any duplicates from the RAM area when remaking the fast lookup sprite list. So if the RAM sprites include the "tile_1" (etc) sprite on redrawing the desktop the Wimp points to this, then intersects the lists and deletes the sprite, leaving the pointers pointing at junk. Now, on deleting something, the window tile pointers are invalidated. Fixes ticket #346.
      Wimp02:
      * Fix bug where the title bar text, when the desktop font is the system font, is incorrectly rendered in the colour selected by WimpVisualFlag -WindowOutlineColour. The Wimp now restores the text colour if -WOC has set the graphics colour to something other than black.
      
      Administrative -
      In Wimp01, swap a couple of SpriteReasons from magic numbers. In the init of variables use the common reset_all_tiling_sprite function.
      In Tiling3D, more SpriteReasons, and rationalise the registers used in reset_all_tiling_sprites.
      
      Version 5.32. Tagged as 'Wimp-5_32'
      a9c3b548
  24. 06 Aug, 2013 1 commit
    • Jeffrey Lee's avatar
      Replace OS_SpriteOp reason code magic numbers with definitions. Add support for new screen modes. · fa42b0ad
      Jeffrey Lee authored
      Detail:
        s/Tiling, s/Tiling3D, s/Watchdog, s/Wimp05, s/Wimp07, s/Wimp09 - Replaced OS_SpriteOp reason code magic numbers with symbolic definitions.
        s/Wimp01 - Update *WimpMode / Wimp_SetMode to use OS_ScreenMode 13 (mode string to specifer) in place of its own code if a mode specifier string has been given. Note - mode number handling is unchanged, so a mode specifier string which begins with a mode number will currently have the specifier part ignored.
        s/Wimp01, s/Wimp02 - Flag_* -> ModeFlag_* renaming
        s/Wimp02 - Fix mode specifier copying to only stop copying when we hit a mode variable of -1. Previous code would also stop if the variable value was -1. Update mode set code to apply the Wimp's special greyscale palettes if the greyscale mode flag is set (i.e. greyscale mode was set via specifier generated by OS_ScreenMode 13)
      Admin:
        Tested on BB-xM
      
      
      Version 5.31. Tagged as 'Wimp-5_31'
      fa42b0ad
  25. 03 Aug, 2013 1 commit
  26. 01 Jun, 2013 6 commits
    • Robert Sprowson's avatar
      Add flexible scheme to allow non-grey/opaque toolsprites · 2137a784
      Robert Sprowson authored
      The Wimp can now accept toolsprite sets which have precalculated (non default) colour translation tables supplied by the designer.
      This allows the link between window template colour and displayed tool colour to be reestablished when the tools aren't grey (previously, the Ursula Wimp would only tint greys).
      For full design details see Doc/ToolTables.
      An example test set, TestO/TTTTest is provided. This is the 'Newlook' set but with a splotch in the corner of each sprite which is then replaced by the hex of the Wimp colour being requested.
      Detail:
       Wimp01.s: New workspace requirements
       Wimp04.s: Pull out the RGB to greyscale function so it can be used elsewhere
       Wimp10.s: New tool table support code
      
      Fixes ticket #323.
      Also introduces a disc variant (with the extra EX0 EY0 resolution) of the 'Steel' theme, thus making it generally available.
      
      Version 5.30. Tagged as 'Wimp-5_30'
      2137a784
    • Robert Sprowson's avatar
      Order cachetoolspriteaddress out of line · 1401ba7c
      Robert Sprowson authored
      Was previously inline but called as a function.
      Not tagged.
      1401ba7c
    • Robert Sprowson's avatar
      Change to method of window highlighting · d137f7ac
      Robert Sprowson authored
      The change made in Wimp-5_02 to Wimp-5_03 (to permit 'f' prefixed toolsprites) introduced a set of interesting boundary cases not covered by that scheme.
      This commit restores the former behaviour, while retaining its simplification of H/V scrollbar plotting (beefed up with a few ASSERTs).
      Part of fix for ticket #323.
      
      Tagged as Wimp-5_30-pre4.
      d137f7ac
    • Robert Sprowson's avatar
      Fix to incorrect tint of back & close icon after changing tool sets · c641945a
      Robert Sprowson authored
      If the last window drawn before dropping to the command line had the input focus then a *TOOLSPRITES command is used the default translation table would be tinted.
      On reentering the desktop the back & close icon of the first window draw (= top of stack) would be the wrong colour.
      
      Tagged as Wimp-5_30-pre3.
      c641945a
    • Robert Sprowson's avatar
      Don't try freeing the tool pixel trans table twice · 1f206e86
      Robert Sprowson authored
      In deallocptrs a call to freetoolarea is made, then much the same code repeated inline.
      Excess code deleted.
      
      Tagged as Wimp-5_30-pre2
      1f206e86
    • Robert Sprowson's avatar
      Fix for corrupt register in pushfontstring with password-style substitution · 752b3a8b
      Robert Sprowson authored
      When CnP=TRUE but UTF8=FALSE the code path through pushfontstring for icons using the 'D' validation string would use R11 as a temporary without having preserved it (the UTF8 case preserves it because it uses R11 as a bitmask of substitutes).
      Changed to always preserve R11, the routine is so huge one extra pushed register isn't going to slow it down measurably.
      Adjusted options files now this combination is safe.
      
      Tagged as Wimp-5_30-pre1.
      752b3a8b
  27. 23 May, 2013 1 commit
    • Robert Sprowson's avatar
      Fix for null pointer dereference & data abort on swapping to no toolsprites · d2b00489
      Robert Sprowson authored
      This specific case failed when the topmost window in the window stack (ie. the first to be attempted to be redrawn on reentering the desktop) had the focus and thus attempts to enable Ursula tinting.
      Though a check was made to see if the first sprite (from which the tint is derived) was present, no check was made to see if the tool_list was present => dereferenced NULL pointer.
      Retagged as Wimp-5_29.
      d2b00489
  28. 21 May, 2013 2 commits
    • Robert Sprowson's avatar
      Fix for null pointer dereference & data abort on swapping to no toolsprites · c6697ab1
      Robert Sprowson authored
      Way back in Wimp-4_76 the range check for being in ROM (in the free tool area function) was reworked as the ROM was no longer at the top of the 64M address space. In doing so the sense of the function got inverted and actually the tool area was not freed at all.
      The result of this would be that swapping to no toolsprites (for that retro RISC OS 2 look) would data abort when the kernel tried to plot a sprite from address 0 because the check prior to the title bar plot believed a tool area existed.
      
      Version 5.29. Tagged as 'Wimp-5_29'
      c6697ab1
    • Robert Sprowson's avatar
      Change titlecolour variable to truetitlecolour · 96a860b5
      Robert Sprowson authored
      The word wide variable actually contains the RGB value, rename this to be distinct from the 4 bit Wimp colour, to make searching easier.
      No change to binary, not tagged.
      96a860b5
  29. 18 May, 2013 2 commits
    • Robert Sprowson's avatar
      Fix for missing window gadgets when no tool sprites are loaded · 18031756
      Robert Sprowson authored
      When 'outlinefont' is enabled, the drawicon_system function used to plot the close/back/resize etc icons tries to do so from the currently selected outline font.
      This usually results in various top bit set characters inappropriately being shown.
      Now, when there are no tool sprites loaded the gadgets are forced to be plotted in the system font (where the Wimp has carefully redefined the font), but the remainder of the desktop (eg. the title bar, user text) stays in the selected desktop font.
      
      Version 5.28. Tagged as 'Wimp-5_28'
      18031756
    • Robert Sprowson's avatar
      Stranded comment reunited with its owner · aa599e8c
      Robert Sprowson authored
      aa599e8c
  30. 12 May, 2013 1 commit
  31. 11 May, 2013 1 commit
  32. 09 May, 2013 1 commit
    • Robert Sprowson's avatar
      Change to RMA shrinkage in *ICONSPRITES pre Medusa · 46989188
      Robert Sprowson authored
      On completing the sprite area merge the Wimp would try to minimise the RMA by -256MB (to account for the fact that during the merge the RMA is enlarged to hold both the existing sprites and the new ones to be merged, in the case of duplicates).
      However, this meant that the common construct
      
        IconSprites MySprites
        Run MyApp
      
      where MyApp wanted to use more than a teaspoon of RMA would fail due to the lack of free pool and that the RMA can't be resized when an application is running as a result.
      
      Now, the Wimp notes the free space in the RMA, does the -256MB shrink, then ensures there's still the same free space after the event (ie. overall it may have grown by the size of any extra sprites added during the command).
      Tested on RISC OS 3.10.
      
      Version 5.26. Tagged as 'Wimp-5_26'
      46989188