-
Ben Avison authored
Detail: Page 33 of the RiscOS 3 volume 3 Programmers manual states that the active point can be set from the sprite's mask. This was never implemented but it is very useful as it means that the active point is no longer hardwired into programs but dependant on the sprite used. The obvious problem is ptr_write. At present the active point is at the top left. If you run !ptr_test and run the pointer over the 'standard active point position' writable icons from the bottom you will see that the pointer changes to an I with its top at the bottom of the writable icon. If you move the pointer until the top of the I is just inside the upper writable icon of the 2 and click, the focus goes into the upper writable - not what you'd expect. Similarly it's difficult to place the caret between the 2 lls in will. The bottom two icons shows the difference with the active point in the correct position in the I beam. You could change the wimp to put the caret in the correct position like I have in the bottom 2 writables of !Ptr_test however this would have the wrong active point position if the mode had rectangular y pixels and it wouldn't fix all instances where programmers had set ther own values. It also means that themes can change the pointer active point as well as the shape. The routine added copes with old and new type sprites of any bit depth though OS_SpriteOp 36 has a 8bit limit. Admin: Tested on Iyonix 5.17. Author: Colin Granville Version 1.42. Tagged as 'SprExtend-1_42'
de25c04d