- 14 Jan, 2023 1 commit
-
-
Robert Sprowson authored
When looking up the user icon button type passed in R3/R4, use the window handle in R3 rather than 'handle' which is the window in which autoscrolling started. This caused an abort if that window contained no icons (because w_icons = -1, and R4 != -1 leading to R5 = 15 and invariably an address in zero page somewhere).
-
- 29 Jun, 2020 1 commit
-
-
Andy Vawer authored
-
- 18 Jan, 2020 1 commit
-
-
Andy Vawer authored
On mouse click, check for icon type was incorrect, so trying to apply tests for 'P' validation string/ptr_write on inappropriate icons (eg. sprites), leading to invalid validation string accesses. Correct the test performed. Also add 3 further AcceptLoosePointer checks to validation string pointers. Version 5.69. Tagged as 'Wimp-5_69'
-
- 04 Jan, 2020 1 commit
-
-
ROOL authored
Detail: Don't trap menu clicks on icons when the window isn't fully on-screen. Ref https://www.riscosopen.org/forum/forums/4/topics/14961?page=1 Admin: Submission for Clipboard Support bounty. Version 5.68. Tagged as 'Wimp-5_68'
-
- 14 Dec, 2019 1 commit
-
-
ROOL authored
Detail: The text in writable icons can now be manipulated using the familiar keyboard shortcuts, or using Drag and Drop in conjunction with any compliant applications. Further details are in Doc/DragAndDrop along with information on API extensions which are implemented. Admin: Submission for Clipboard Support bounty. Version 5.65. Tagged as 'Wimp-5_65'
-
- 05 Jun, 2019 1 commit
-
-
Robert Sprowson authored
The pointer left/entered window logic calls int_get_pointer_info which can return a window (and/or icon) handle of -1 if the pointer is over no window, such as might occur if the window has been deleted. The check for a duff window handle (in R3) was unfortunately made *after* it'd been dereferenced. Move this check up beforehand. Fixes issue reported on Usenet https://groups.google.com/forum/#!topic/comp.sys.acorn.programmer/iR0_TNekiKg Version 5.63. Tagged as 'Wimp-5_63'
-
- 17 Feb, 2018 1 commit
-
-
Jeffrey Lee authored
Fix crashes when a Wimp_Poll post-filter causes the Wimp to postpone switching to a VFP-enabled task Detail: s/Wimp07 - In ExitPoll, swap around the order of restoring the FP context and calling the poll post-filter so that the FP context is restored after the post-poll filter has been invoked. Previously, the VFP(+FPA) context would be restored, then the post-poll filter would be invoked. If the post-poll filter was claimed, the Wimp would then scan the pollwords again and most likely decide to switch to a different task. The appslot will then be switched over, and ExitPoll will be invoked again, attempting to restore the VFP/FPA context for that task - potentially causing a crash or other bad things because the VFP context used by the original choice of task is no longer paged in. For FPA this was never really a problem, since the context is stored in the RMA rather than being potentially stored in appspace. s/Wimp03 - Add some extra debug out for tracking VFP context management Admin: Tested on wandboard Fixes issue reported on forums, where using the numpad in VFP SciCalc would cause a crash if KeyExtend was loaded: https://www.riscosopen.org/forum/forums/4/topics/10293 Version 5.60. Tagged as 'Wimp-5_60'
-
- 29 Nov, 2015 1 commit
-
-
Jeffrey Lee authored
Detail: s/Wimp03 - Move two key bits of power-saving logic out of repollwimp and into a new subroutine (powersave_tick) s/Wimp01, s/Wimp07 - Call powersave_tick when displaying an error box or "Press SPACE or click mouse to continue", so that CPU will drop speed and enter WFI state instead of running at full tilt. Admin: Tested on Pandaboard Fixes issue reported on forums with CPUs getting hot for no good reason: https://www.riscosopen.org/forum/forums/4/topics/3749 Version 5.51. Tagged as 'Wimp-5_51'
-
- 28 May, 2014 1 commit
-
-
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'
-
- 03 May, 2013 2 commits
-
-
Robert Sprowson authored
The pointer comparison checking required when running in a system with > 64M memory was tightened up from Wimp-4_75 to Wimp-4_76, but to allow the module to target pre RISC OS 5 systems an option to relax those checks is required. Each check has been revisited and where appropriate demarked with a "AcceptLoosePointer" macro, which just remaps the pointer into the stricter form and carries on. In the strict checking case, the macro reduces to nothing. Detail: Add AcceptLoosePointers switch. Retire singular use of StrongARM switch (calling XOS_SynchroniseCodeAreas is harmless pre StrongARM anyway). Rename Ursula_RPC options to RO400. Put duplicate documentation in the attic. Allow -2 or -1 as the iconbar handle in Wimp_ResizeIcon (ticket #203). Tighten up the list terminator check in the DebugMemory switch of Memory.s Tested on RISC OS 3.10 (emulated), 3.50, 3.60, 3.70, 4.02. Version 5.24. Tagged as 'Wimp-5_24'
-
Robert Sprowson authored
Wimp03.s: check that pollword was in application space was corrupting R3 leading to an address exception (!) on pre Medusa targets Wimp08.s: compare had erroneously been change to equality check, leading to screwy memory allocation and much instability on 3.50 and 3.60 especially when applications quit Version 5.23. Not tagged
-
- 01 Feb, 2011 1 commit
-
-
Jeffrey Lee authored
Detail: s/Wimp03, s/Wimp07 - When saving the VFP context the Wimp now uses lazy context switching where possible, via a combination of the Lazy & AppSpace flags Admin: Tested on rev A2 BB-xM Requires VFPSupport 0.02 Version 5.11. Tagged as 'Wimp-5_11'
-
- 26 Nov, 2010 1 commit
-
-
Jeffrey Lee authored
Detail: s/Wimp, s/Wimp01, s/Wimp02, s/Wimp03, s/Wimp07 - The Wimp now uses the VFPSupport module to switch VFP contexts when performing task switches. Each task begins with the null context active (i.e. no VFP/NEON access). When paging out a task the ID of the active context is saved in the Wimp's per-task workspace. This context is then restored when the task is about to be resumed. Context save/restore is performed while the right task's memory is paged in, so it's safe to use with contexts located in application space. Admin: Tested with Iyonix & Beagle ROM builds. Version 5.09. Tagged as 'Wimp-5_09'
-
- 06 Nov, 2009 1 commit
-
-
Jeffrey Lee authored
Detail: The "pointer leaving window" code now checks that ptrtask != nullptr before attempting to use it as an offset to the workspace pointer. This is required when alignment exceptions are enabled because nullptr is -1. Admin: Tested on rev C2 beagleboard Version 5.07. Tagged as 'Wimp-5_07'
-
- 11 Sep, 2005 1 commit
-
-
John Ballance authored
Detail: usergroup had identified a Hi bit set (32bit) issue with PollWords that existed in a hi bit set DA. There is evidence of previous work to avoid this, but a hi bit set pollword address could leave a V set condition floating around. Added CLRV to ensure it was cleared. Admin: tested in ROM at castle.. passes test from user that previously failed. Castle added IP Version 4.95. Tagged as 'Wimp-4_95'
-
- 12 Aug, 2004 1 commit
-
-
John Ballance authored
Details: s.Wimp03 : lines 502 to 505 moved 4 lines later Admin: Tested in rom at Castle. fix believed benign at Tematic Version 4.93. Tagged as 'Wimp-4_93'
-
- 22 Apr, 2003 1 commit
-
-
Ben Avison authored
Variants pre-Ursula now build again. Version 4.91. Tagged as 'Wimp-4_91'
-
- 28 Feb, 2003 1 commit
-
-
Ben Avison authored
Wimp_GetPointerInfo should include shaded icons, in particular so that they can now have interactive help. Included some information on RISC OS Select APIs so that we can avoid clashes. Version 4.89. Tagged as 'Wimp-4_89'
-
- 20 Dec, 2002 1 commit
-
-
Ben Avison authored
Detail: * Bugfix: the contents of the pollword returned in the poll block by a PollWordNonZero event, where the pollword was flagged as high priority, was rotated by 8 bits due to a internal top-bit-set workaround. This no longer happens. (This was causing OmniClient never to complete initialisation on my machine.) * Extended the alternate resolution icon scheme for RAM/ROM sprites and toolsprites to be multi-pass, enabling the use of extra sprite sets for weird modes (most notably EX0 EY0 ones). After '23' or '0' suffixes (the latter still only applies to toolsprites), the suffix for the equivalent polychromatic resolution is tried. After rectangular suffixes, the next larger squarer suffix is tried. After '11', '22' is tried. Failing all of these, a match is attempted with no suffix. * The command window is now scaled and centred to match the current screen mode - up to a maximum size of 1280 x 1024 OS units. * Fixed the *WimpVisualFlags help strings (again). * Fixed 'task2' debugging to know about the structure of the SVC stack on 32-bit machines. * Added support for generation of GPA files. Admin: Tested on Tungsten. Version 4.84. Tagged as 'Wimp-4_84'
-
- 13 Dec, 2002 1 commit
-
-
Ben Avison authored
Detail: * Validation string commands to set the pointer shape were incorrectly interpreted if they contained commas to set the active point. * Holding down shift when clicking on the back icon will only move the window by one position within the window stack. Admin: Tested on Tungsten. Version 4.83. Tagged as 'Wimp-4_83'
-
- 31 Oct, 2002 1 commit
-
-
Ben Avison authored
Detail: * Message list pointers passed into Wimp_Initialises that didn't follow Wimp_StartTask used to be corrupted * Stack imbalance in ExitPoll if SWI Portable_Speed didn't preserve flags * 32-bit mode test speedups * Builds without RO4 option set Admin: Tested on Tungsten and Risc PC. Version 4.79. Tagged as 'Wimp-4_79'
-
- 30 Oct, 2002 1 commit
-
-
Ben Avison authored
Detail: RISC OS 4 changes: * Font blending for desktop font (based on NC code, but now configurable) * 3-D window/menu/iconbar borders * Textured menu backgrounds * Loss of rubout box in unfilled text+sprite icons * *WimpVisualFlags controls various aspects of cosmetic changes above * Iconise button "slot" glyph slightly shorter (but only adopted in the RO400 Resource directory) * Command window has front-window flag set * Byte at +39 of the window block has gained two new flag bits: bit 2 set => this window must never be given a 3D border bit 3 set => this window must always be given a 3D border (note that ResEd erroneously created windows with both bits set, this case is treated as though both bits were clear) * Another two colour specifiers on the end of C validation string command for icons controls the foreground and background colours to be used when the icon is selected * Pointer shape is correctly reprogrammed by the creation of icon underneath it * Full stops in writable icons are treated the same as spaces from the point of view of cursor navigation * spritesize routine returns a size of 0 if the sprite didn't exist (probably fixes some rendering problems) * Adjust-click on back icon brings window to front My changes: * DeleteRight turned on * Icon bar title background is set to default in all resource sets (avoids translation table recalc) * Error box title now cream across all resource sets * RISC OS 4 changes made 32-bit compatible / high addresses safe * Undocumented FullIconClipping option disabled * Command help made consistent for internationalised and non- internationalised builds * WimpVisualFlags defaults made sensible * Menu side width affected by ThreeD option at *run* time not assemble time * Right-clicking on menus with writable items no longer data aborts * Auto-opened menus are now at RHS of current icon (matches RISC OS 3.1) * Colour menus were knackered unless menu tiling was enabled * Fixed a bug whereby adding messages to a task that wanted all messages actually caused it to lose all other messages. The RISC OS 4 fix for this didn't work * Fixed bug introduced in version 4.76: tasks that wanted no messages got all of them * Autoscrolling is updated every 8 cs rather than every 12 cs * Added menu texture to pre-RISC OS 4 sprites files Admin: Tested on Tungsten. Version 4.78. Tagged as 'Wimp-4_78'
-
- 25 Oct, 2002 1 commit
-
-
Ben Avison authored
Detail: * Default UpCall handler is installed when an application is paged out, so there is no danger of it being called by naughty people issuing UpCalls in the background. * AMBControl builds now sit on Service_MemoryMoved so that they can issue Message_SlotSize when the kernel has resized the application slot independently (eg because the memory was needed to grow a dynamic area, and nobody objected via Service_Memory or UpCall_MovingMemory). * Medusa-onwards builds no longer request Service_ValidateAddress, because we're not managing the free pool any more, and the code that was here only called an ineffectual SWI! * SafeChangeDynamic wasn't setting the CAO high enough to be free of big application slots; now it points it at itself. * The free pool wasn't being shrunk/grown enough on initfirsttask / closelast. It still can't do by more than 1GB without stiffing - bug in kernel? * Bugs in top-bit-safe changes fixed: dragbox resizing was broken, Escape state wasn't being restored for new tasks. Admin: Tested on high-ROM/stack, 48M-appslot Tungsten. Version 4.77. Tagged as 'Wimp-4_77'
-
- 23 Oct, 2002 1 commit
-
-
Ben Avison authored
Detail: All pointers passed to the Wimp (mode selectors, menus, sprite areas, palettes, pollwords, validation strings, message lists, routines etc etc) in any of its APIs can now be anywhere within the 32-bit address range. In general, whenever "<= 0" was accepted as a null condition, the value must now be either 0 or -1. It should also be tolerant of system memory areas (supervisor stack and RMA) being in the top half of memory. Also: * Default next slot now a build option - Ursula builds (eg Tungsten) use 1024K instead of 640K * Ursula builds no longer have a build variant in the help string * Autosenses ROM location * CR-LFs in *Configure messages replaced with LF-CRs * Added Iyonix resources (currently based on Morris4) * Morris4 sprites files have gained file_lxa, small_lxa, file_unf, small_unf and lo!help sprites * Ursula sprites files have gained lo!help sprites * *WimpSlot can take memory sizes in megabytes or gigabytes Admin: Tested on a "traditional" memory-mapped Tungsten. Version 4.76. Tagged as 'Wimp-4_76'
-
- 14 Sep, 2001 1 commit
-
-
Ben Avison authored
Detail: * The pointer passed to Wimp_CommandWindow can now be top-bit-set. * Bugfix to Wimp_CommandWindow: if the current task was uninitialised, or initialised as a non-multitasking task, then although entering the CommandWindow would restore escape condition generation to the way it was before entering the desktop, exiting the CommandWindow did not reset escape condition generation to the default desktop state (which is for escape condition generation to be disabled). * Escape condition generation is disabled for the duration of SWI Wimp_ReportError (instead of setting the default escape key for the duration). The previous state is restored on exit. * Added a minimal environment for the service call Service_ErrorButtonPressed, so that claimants can call OS_Exit without leaving the global Wimp error box in an undefined state. * In the Wimp_Poll loop, if there are no events to deliver to any tasks (not even null events), then rather than sitting in a SVC mode loop, the Wimp now triggers transient callbacks. This is particularly important in order not to halt all activity in the Internet stack. The option LeaveOS can be set to make the Wimp use the as-yet unimplemented SWI OS_LeaveOS for this purpose; this is currently unset for all builds. * By (persistent) request, reinstated the old iconbar popping code, though it is currently a build switch that is turned off for all builds. Admin: Tested on a Risc PC. Version 4.69. Tagged as 'Wimp-4_69'
-
- 23 Mar, 2001 1 commit
-
-
Ben Avison authored
Detail: * Any top-bit-set sprite area pointer in a window definition was treated as a null pointer, and any top-bit-set program name pointer in Wimp_ReportError was similarly treated as a null pointer. * For 24-bit window colour builds, when the Wimp drew a title bar with the input focus, and there were sprite icons in the previously redrawn window, and the most recently plotted icon sprite was unpaletted and not selected or inverted, then the translation table for the icon sprite (in the RMA) would leak. I suppose that's what I get for re-using a bit of dead code without fully working out why it was bypassed in the first place... * The key handling code used to be over-eager to read bytes from the keyboard buffer: it would attempt to read up to 6 bytes ahead to ease the recognition of UTF-8 character sequences. This could cause problems, in particular if F12 was one of those 6 bytes, then any following bytes would be queued for use as Wimp keypresses, rather than being left in the keyboard buffer for use by ShellCLI. The Wimp now analyses the first byte read to make a sensible estimate of how many bytes it needs to read ahead. * Select-dragging (including Select-resizing) of windows with panes used to soak up all the processor time. This was because when the task received an Open_Window_Request, it would re-open the pane in front of the main window, but this would cause the Wimp to believe that it had to re-open the main window at the front of the stack again when Wimp_Poll was next called. The problem has been fixed so that the Wimp now examines all the windows in front of the drag window to see if they have the pane window flag bit set, and doesn't reshuffle the windows if they all do. (Actually, the test is performed such that foreground windows in front of the drag window are also ignored.) Admin: Tested on a desktop machine. Version 4.65. Tagged as 'Wimp-4_65'
-
- 20 Oct, 2000 1 commit
-
-
Ben Avison authored
Detail: * Added new functionality for menu trees: submenus can now be opened by clicking on their parent menu item. This is particularly aimed at touchscreen devices, and is configurable via the new *Configure keyword WimpClickSubmenu. * Change to the menu inactivity timeout behaviour after auto-opening of submenus (either by hovering over the parent menu item or by the new click-to-open functionality): although all hover operations are still ignored for this period, any click operations *will* now be obeyed. * Corrected numerous misleading comments in the menu handling code. * Added some suspiciously absent ALIGNs in the *Configure keyword handlers. * Uses new ASCII case-forcing macros so there are now fewer warnings printed during assembly (and it should run faster now too). * Added an AREA directive so that objasm's -ABS switch is no longer needed. * Standardised ErrMem token across all Messages files that use English. Admin: Tested on a desktop machine. Requires HdrSrc 1.06. Version 4.57. Tagged as 'Wimp-4_57'
-
- 15 Jun, 2000 1 commit
-
-
Ben Avison authored
Detail: * The character codes returned from the Key_Pressed event were incorrect when the caret was in a writeable icon with Kd in the validation string, and either (a) the caret was not at the start and Delete or Backspace were pressed, or (b) the caret was not at the end and Copy was pressed. (This was because, in these cases, the writeable icon code exited through passbacktouser rather than exitprocess; the former expects the keycode to be preserved, but the UTF-8 extensions to key handling were corrupting it.) Shift-Copy, Ctrl-Copy and Ctrl-U were not affected. * The various checkhandle routines now preserve flags again, as they did before 32-bit support was added. This is crucial in a number of spots, because the flags are based upon a test of handle, and checkhandle corrupts the handle register. This fixes at least two bugs: you can now send messages to menus or dialogue boxes again, and Wimp_RedrawWindow called without a Redraw_Window_Request is back (so for example, the Desktop Welcome screen now works again). * Fixed a bit of errant 26-bitism in the multiple-window iconise code. Admin: Tested briefly on an Ursula build. Version 4.52. Tagged as 'Wimp-4_52'
-
- 25 Apr, 2000 1 commit
-
-
Kevin Bracey authored
Detail: Lots of little changes throughout a lot of source. Admin: Appears to work - not stress tested with things like lots of tasks, big transfers, and all the other things that tend to go wrong. Version 4.47. Tagged as 'Wimp-4_47'
-
- 26 Nov, 1998 1 commit
-
-
Ben Avison authored
builds: now behaves like desktop builds (only detects button-down events). * When mouse pointer is hidden following Wimp_Extend 12, changes of mouse button state will no longer cause the pointer to be reinstated. Version 4.12. Tagged as 'Wimp-4_12'
-
- 09 Nov, 1998 1 commit
-
-
Ben Avison authored
Optimisation to new WimpSymbol substitution code: in icons containing fonts other than the desktop font, the substitution table is only calculated when a symbol character is encountered. Embryonic cut-n-paste support introduced (currently in desktop builds only): * workspace is allocated and initialised; * extended Wimp_GetCaretPosition implemented; * pushfontstring adapted to allow insertion of arbitrary control sequences in font strings (to allow selected text to be plotted in inverted colours). Inverted, unfilled text icons now work properly again in <256-colour modes. Reworked NC error box code: see Doc.IconHigh. Version 4.11. Tagged as 'Wimp-4_11'
-
- 23 Oct, 1998 1 commit
-
-
Ben Avison authored
Adapted assembly process so that the choice of Options file (previously based purely on the "System" variable) can be overridden by passing "OPTIONS=foo" as an argument to either MkRom, or to amu/amu_machine directly, or indirectly, by specifying it in the components file for a build. To accomplish this, it was necessary to switch from using aasm to objasm - hence the large number of source files affected in this commit. Version 4.09. Tagged as 'Wimp-4_09'
-
- 20 Oct, 1998 1 commit
-
-
Ben Avison authored
UTF-8 support from previous version switched in; additional alphabet- conditional support added as follows: * Correctly converts character index returned from Font_FindCaret into byte index into raw string. * Left-arrow, right-arrow, delete-left and delete-right now act as far as the next character boundary, instead of to the next byte. * Menu item text justification works again (it relies on overwriting spaces with hard space characters, which are two-byte characters in UTF-8). * General key handling code has been rewritten. The Wimp now has three internal key input buffers - one each for taking keyboard-generated, task-generated, and function-key-generated strings. Each input buffer is processed in chunks of one character, rather than one byte; malformed UTF-8 characters are rejected, so tasks don't have to worry about them (simplifying their character-handling code). There is also a key output buffer, to ensure that (UTF-8) sequences of Key_Pressed events are not broken up. * As a result of the above, multiple calls to Wimp_ProcessKey are now possible between calls to Wimp_Poll. Previously, this resulted in bytes getting jumbled up - making it useless for input of UTF-8 characters. * Multi-byte characters are inserted into writeable icons in one go, so you don't see a brief flicker of the "malformed character" symbol while the initial bytes are being inserted. * Multi-byte characters that don't entirely fit in a writeable icon buffer are not inserted at all. * A new validation string command ("U") can limit the contents of a writeable by number of characters, instead of bytes. This will hide the character sizes from the user interface. * Allowable characters (validation string command "A") now works on Unicode characters and character ranges. * Various other minor bugs are fixed (Wimp_ProcessKey 13 can activate a writeable menu item, Shift-arrow keys are always consistent in firing off Key_Pressed events, etc.) * Password icons supported: one symbol is displayed for each character (instead of for each byte); the display character (validation string command "D") can be any UTF-8 character; correctly displays the caret after set-caret-by-index calls, even though characters in the processed string are different width to those in the raw string, in password icons. Other changes: * The border around NC-style error boxes is resized when the error window is grown or shrunk. * Messages, CmdHelp and Template files made consistent across resource directories, including support for all Ursula features. * ShrinkableAreas turned back on in System=RCA builds. * User interface features of desktop OS builds standardised. Version 4.06. Tagged as 'Wimp-4_06'
-
- 30 Sep, 1998 1 commit
-
-
Kevin Bracey authored
Changed to use srccommit. All conditionals on "Version" removed. Version 4.01. Tagged as 'Wimp-4_01'
-
- 18 Sep, 1998 1 commit
-
-
Ben Avison authored
-
- 07 May, 1997 2 commits
-
-
Kevin Bracey authored
Made options files specify any text wanted after the module version number. Auto-fronting iconbar now returns to previous position rather than back, so it interacts with Shift+F12 better.
-
Kevin Bracey authored
-
- 13 Jan, 1997 1 commit
-
-
Neil Turton authored
-
- 05 Nov, 1996 1 commit
-
-
Neil Turton authored
-