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.
Applications written for RISCOS 4 and family may interrogate the Wimp so that they can match the user configured clipboard behaviour for text insert/delete/cut in writable icons if they are doing it themselves. Although there isn't an implementation at this time for configurable behaviour, implement the ReadSysInfo call so that it returns a correct status for these applications to read. This will also allow clients to see if there is Wimp clipboard functionality available or not in a uniform manner.
- Add Wimp_ReadSysInfo 21
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.
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.
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.