Commit of my Wimp changes that have trickled in over the last four months.
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'
Showing with 152 additions and 32 deletions