GitLab has been upgraded to 13.3.6. If you encounter any issues mail code@riscosopen.org

  1. 06 Sep, 2020 6 commits
    • Andy Vawer's avatar
    • Andy Vawer's avatar
      Fix issue in Wimp_SetCaretPosition if called with invalid icon handle and... · 73892fee
      Andy Vawer authored
      Fix issue in Wimp_SetCaretPosition if called with invalid icon handle and invalid flags in R4 - stack was pulled twice
      73892fee
    • Andy Vawer's avatar
      Support Clipboard KeyPress event changes. · cd1fb5d0
      Andy Vawer authored
      cd1fb5d0
    • Andy Vawer's avatar
      There is an issue whereby a task trying to perform its own clipboard... · 15a87128
      Andy Vawer authored
      There is an issue whereby a task trying to perform its own clipboard operations on writable icons clashes with the Wimp handling of such things when it has asked for all keypresses to be notified in the icon validation string.  Change behaviour to match that of RISCOS 4 and family whereby clipboard operation keypresses are hidden from the client task unless they have been disabled for that icon.
      15a87128
    • Andy Vawer's avatar
      Support for Clipboard KeyPress event changes. · a51954b8
      Andy Vawer authored
      a51954b8
    • Andy Vawer's avatar
      When data is pasted into an icon by a drag or a paste keypress there is no... · a886b78e
      Andy Vawer authored
      When data is pasted into an icon by a drag or a paste keypress there is no notification to the client task that anything has happened.  Some applications would like to know if the value of a writable icon has changed and monitor the Wimp_KeyPress event for this and set the validation string to KA.  Add an extension so that the RISCOS 4 action is imitated whereby KeyPress events are emitted for each character written to the icon.
      
      If dragging text from a writable icon and the source text or selection disappears during the drag, an ofla error occurs.  Change to abort quietly (ie no text copied as nothing to copy) and remove the ghost caret from view.
      
      When data is cut from an icon by a drag operation there is no notification to the client task that anything has happened.  Some applications would like to know if the value of a writable icon has changed and monitor the Wimp_KeyPress event for this and set the validation string to KA.  Trigger a KeyPress event on the source icon if this is so with a key value of 0x100.  We don't want to send a 'known' keypress as that may cause the source task to do something else.
      a886b78e
  2. 26 Aug, 2020 1 commit
  3. 20 Jul, 2020 1 commit
    • Robert Sprowson's avatar
      Rename clashing CLI macro · 85171512
      Robert Sprowson authored
      The name clashes with the recently added clear IRQ flag macro, CLI, but is only used in a debug case.
      
      Version 5.77. Not tagged
      85171512
  4. 08 Jul, 2020 2 commits
  5. 29 Jun, 2020 2 commits
  6. 23 May, 2020 1 commit
  7. 11 May, 2020 1 commit
  8. 02 May, 2020 1 commit
    • Jeffrey Lee's avatar
      Fix delivery of extended scroll requests · b752d15a
      Jeffrey Lee authored
      Extended scroll requests and regular scroll requests share the same
      reason code, but are different sizes. Update calcmessagesize to
      calculate the size of extended scroll messages correctly, so that the
      icon number won't get chopped off when the message is being passed to
      the target task.
      
      Version 5.73. Tagged as 'Wimp-5_73'
      b752d15a
  9. 11 Apr, 2020 1 commit
    • Andy Vawer's avatar
      Allow text to be dragged from writable icons to icon bar icons · 791a168f
      Andy Vawer authored
      Check destination window handle and add destination icon handle if sending message to window handle -2.
      Improve window handle validation (not assuming all -ve handles are invalid, should the RMA move to have top bit set).
      
      Version 5.72. Tagged as 'Wimp-5_72'
      791a168f
  10. 30 Jan, 2020 1 commit
    • Andy Vawer's avatar
      Fix issue where dragging text from icon caused a crash in foreground task · 1475387a
      Andy Vawer authored
      When releasing claim, use of stale register meant that the foreground task wasn't correctly bouncing Message_Dragging when the pointer moved out of range. Also added a sanity check in get_selected_text so that if for some reason the selection window disappears mid action it will be caught and not cause a crash.
      
      Version 5.71. Tagged as 'Wimp-5_71'
      1475387a
  11. 25 Jan, 2020 1 commit
  12. 18 Jan, 2020 1 commit
    • Andy Vawer's avatar
      Fix zero page access looking for ptr_ sprite validation · 384a1ec5
      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'
      384a1ec5
  13. 04 Jan, 2020 5 commits
    • ROOL's avatar
      Fix lost menu clicks on icons when window partly off screen · 28d1efb9
      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'
      28d1efb9
    • ROOL's avatar
      Fix for abort on pasting into writeable menus · 14056f15
      ROOL authored
      Detail:
        Menu windows don't store the task handle in their datablock, so an incorrect one was used as part of the data transfer sequence.
        Also, minor fix for Message_ClaimEntity when bit 2 was clear (bits 0,1 set). The response meant that, for example, Alt-click to rename, select text in writeable and press ^C - copied to clipboard, but writeable is removed.
      Admin:
        Submission for Clipboard Support bounty.
      14056f15
    • ROOL's avatar
      Fix for lack of input focus clicking on no icon · 11d21750
      ROOL authored
      Detail:
        If R0=valid window handle, R1<0 (not an icon) and R4=-1 then R4 is internally set to 'invisible caret' to ensure that we get the full input focus event and visible cues.
        Ref: https://www.riscosopen.org/forum/forums/5/topics/14945?page=2#posts-97886
      Admin:
        Submission for Clipboard Support bounty.
      11d21750
    • ROOL's avatar
      Apply same vetting to SetCaretPosition window handle as non cut & paste Wimp · 091831e4
      ROOL authored
      Detail:
        Summary of how non-CnP Wimp treats the window handle for Wimp_SetCaretPosition
        R0 = valid window handle
          or invalid window handle (mapped to -1)
          or any negative number or 0 (mapped to -1)
      
        With this change, the CnP Wimp does
        R0 = valid window handle
          or invalid window handle (throws error)
          or any negative number or 0 if pre RISC OS 5 (mapped to -1)
          or 0 for RISC OS 5 (mapped to -1)
      
        Noting the use of AcceptLoosePointer macro if built for a 26 bit target.
      091831e4
    • Jeffrey Lee's avatar
      Add Wimp_Extend 15, "read slot size" · 4610877c
      Jeffrey Lee authored
      Wimp_Extend 15 is equivalent to Wimp_SlotSize,-1,-1, with the exception
      that the sizes returned in R0-R2 are now measured in pages instead of
      bytes. This allows code to accurately read the amount of free memory on
      machines with >2GB of RAM, and provides some future-proofing should we
      ever wish to support tasks with >2GB of RAM (e.g. via a future
      super-jumbo wimpslot, or more likely via sparse/PMP wimpslots, where
      the physical size is larger than the logical size).
      
      Currently there's no need to provide a page-based call to set the slot
      size (~2GB is fine for the forseeable future), so this call only
      focuses on reading the sizes.
      
      Version 5.67. Tagged as 'Wimp-5_67'
      4610877c
  14. 18 Dec, 2019 1 commit
    • ROOL's avatar
      Clipboard caret/task fixes · 9cc627ac
      ROOL authored
      Detail:
        In CnPCaret.s
          * Clear any invalid window handles currently stored in caret blocks on Wimp_SetCaretPosition entry
          * Clear R2 on exit if R0=-1,R2=TASK on entry to Wimp_SetCaretPosition
          * If window is not open or able to receive a focus, then return WimpFocus error rather than causing an alignment exception
        In CBTask.s
          A drag to writeable with invalid (eg.rejection due to validation string mismatch or overlong insert) caused ghost caret to be left behind and still deletes the source text.
          * Changed LDR R2,=cbtask_TASK to LDR r2,cbtask3_TASK
          * Ensure cbtask_insert_text_into_icon returns V set on error
          Drag and drop text from icon to non-d&d application, the last message was erroneously sent as DataSaveAck, not Dataload
      Admin:
        Submission for Clipboard Support bounty.
      
      Version 5.66. Tagged as 'Wimp-5_66'
      9cc627ac
  15. 14 Dec, 2019 3 commits
    • ROOL's avatar
      Add copy & paste and drag & drop operations to the Wimp · 0fb14a00
      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'
      0fb14a00
    • ROOL's avatar
      Messages additions · 5a8c8508
      ROOL authored
      Detail:
        3 extra tokens in support of clipboard operations.
      Admin:
        Submission for Clipboard Support bounty.
      5a8c8508
    • Timothy E Baldwin's avatar
      Zip non-ascii filename [⇐⇒£⇓⇑] · cddecfe6
      Timothy E Baldwin authored
      This solves difficulty in handling on other operating systems,
      including being an illegal filename in macOS.
      
      Fixes https://www.riscosopen.org/tracker/tickets/473
      
      
      Version 5.64. Not tagged
      cddecfe6
  16. 17 Aug, 2019 1 commit
  17. 22 Jun, 2019 1 commit
    • ROOL's avatar
      New Wimp_Extend subreason · 32f2e389
      ROOL authored
      Detail:
        Subreason 14 gives a means to read the validation string from a window/icon that is not in the current task. This is useful for determining whether clipboard operations should be allowed.
      Admin:
        Submission for Clipboard Support bounty.
      
      Version 5.64. Tagged as 'Wimp-5_64'
      32f2e389
  18. 05 Jun, 2019 1 commit
  19. 01 Jul, 2018 1 commit
    • Jeffrey Lee's avatar
      Fix handling of tool sprite palettes in alpha-blended screen modes · 39485b7c
      Jeffrey Lee authored
      Detail:
        s/Wimp10 - Update mastertoactive to force the palette/translation table to be sent through ColourTrans if either &RGB component ordering or alpha blending is in use for the current screen mode. Otherwise, for alpha modes, the alpha channel would typically be left at zero.
      Admin:
        Tested on Raspberry Pi 3
      
      
      Version 5.62. Tagged as 'Wimp-5_62'
      39485b7c
  20. 16 Apr, 2018 1 commit
  21. 11 Apr, 2018 1 commit
  22. 18 Mar, 2018 1 commit
    • Robert Sprowson's avatar
      Fix for bad error pointer deleting non existent sprite · 431bcb1a
      Robert Sprowson authored
      Doing *WimpKillSprite _not_there_  had the following behaviour
      
      Priority   | Sprite exists  Sprite doesn't  Sprite is ROM
      Lo then Hi | Deletes        Bad error ptr   Silence
      Hi then Lo | Deletes        Silence         Silence
      
      The bad error pointer was caused by an early return if the high priority pool is the ROM sprites (because the earlier failure to find it in the low priority pools set V, and the early return used TEQ, so the error pointer in R0 was the SpriteOp reason code).
      Proceed to try to look up the sprite, even if there's no hope of deleting it, in order to get a valid error message.
      
      Version 5.61. Tagged as 'Wimp-5_61'
      431bcb1a
  23. 17 Feb, 2018 1 commit
    • Jeffrey Lee's avatar
      Fix crashes when a Wimp_Poll post-filter causes the Wimp to postpone switching... · 2fb1a8bf
      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'
      2fb1a8bf
  24. 24 Jul, 2017 1 commit
    • Jeffrey Lee's avatar
      Remove startup delay from power saving code · 74a6db0a
      Jeffrey Lee authored
      Detail:
        s/Wimp02 - Get rid of the magic ~30 second delay before the Portable_Speed/Portable_Idle power saving kicks in. The fast/slow thresholds are self-adjusting, and any non-null poll event will kick the system into high speed, so removing the startup delay isn't likely to have any adverse affect on desktop startup time.
        s/Wimp01 - MaxIdleEvents is now redundant, remove it
      Admin:
        Tested on Raspberry Pi 3
        Should resolve issue reported on the forums where RPCEmu thrashes the hosts's CPU for 30 seconds after entering the desktop:
        https://www.riscosopen.org/forum/forums/10/topics/8990
      
      
      Version 5.59. Tagged as 'Wimp-5_59'
      74a6db0a
  25. 11 Apr, 2017 1 commit
    • Robert Sprowson's avatar
      Gate the recache of currentmode · 50eea7b2
      Robert Sprowson authored
      The operations at module init and at Service_PreReset are both implicitly pre desktop, however it is valid to have Service_ModeFileChanged while in the desktop (for example, if selecting a different MDF from !ScrnSetup).
      Gate the one hanging off Service_ModeFileChanged to only act when there are no tasks active (ie. outside the Wimp).
      Fixes problem reported https://www.riscosopen.org/forum/forums/4/topics/9206 with NetSurf redraw.
      
      Version 5.58. Tagged as 'Wimp-5_58'
      50eea7b2
  26. 08 Apr, 2017 1 commit
    • ROOL's avatar
      Recache currentmode at the right time · 121acd27
      ROOL authored
      Detail:
        Modification to make the Wimp reread 'currentmode' by calling OS_ReadSysInfo 1 in the following circumstances
        1. On module init (accounts for being softloaded off disc)
        2. At Service_Reset (accounts for any graphics driver starting after it in ROM module order)
        3. When Service_ModeFileChange (new, this catches the new mode selected by an MDF or EDID during !Boot)
        Commoned up these 3 cases into 1 function.
        This restores the design intent that to get the monitor's native resolution it is *not* required to configure the MonitorType=EDID, indeed doing so wouldn't have helped loading EDID off disc if the monitor's data is found to be incorrect and needing overriding.
      Admin:
        Tested on a Pandaboard with MonitorType=Auto and resolution chosen as "Native", resulting in a desktop at the panel resolution.
      
      Version 5.57. Tagged as 'Wimp-5_57'
      121acd27
  27. 25 Mar, 2017 1 commit
    • Jeffrey Lee's avatar
      Fix use of uninitialised pointer · 4d355e68
      Jeffrey Lee authored
      Detail:
        s/Wimp01 - initwcfda tries to look up the dynamic area name using MsgTrans, so make sure the 'messages' pointer is initialised before we call it
      Admin:
        Tested on iMx6
      
      
      Version 5.56. Tagged as 'Wimp-5_56'
      4d355e68