Ticket #520 (Open)Sun Jul 25 08:05:39 UTC 2021
Paint's drag-loading is horribly broken
Reported by: | Rick Murray (539) | Severity: | Normal |
Part: | RISC OS: Application | Release: | |
Milestone: | Status | Open |
Details by Rick Murray (539):
In 2012, Paint was changed in order to highlight and select sprites. This change was done in order to have Paint behave in a manner more consistent with the Filer, and also to make it clearer which sprite(s) an action will happen to. In older versions of Paint, with no highlighting, this wasn’t always particularly clear.
When it comes to loading sprites by dragging them into the sprite list window, there are two serious failures here.
1. The first failure is that a loaded sprite will REPLACE whatever sprite is currently selected. This is wrong and indefensible. The Filer does NOT replace random files upon dragging in a file (actually, it is impossible as selecting a file and then clicking to drag a file from anywhere else (even other filing systems) will clear that selected file as the new one being clicked upon is then the selected one). Furthermore, in normal operation the Filer will prompt before overwriting a file (the user can choose to disable this confirmation), and finally the Filer will replace files OF THE SAME NAME. Paint’s behaviour is broken.
2. The second failure is that a loaded sprite is automatically marked as selected (the Filer doesn’t do this either).
Which leads to the following problems:
1. When loading any sprites into a sprite list window, if there are any sprites in that viewer that are selected (even if off screen), they WILL be wiped. Silently.
2. When loading multiple sprites into a sprite list window, the process is basically: if there’s a selected sprite, delete it; then load the sprite; then select that sprite; and repeat for each sprite to be loaded.
Which means the following buckets of crazy happen:
1. Dragging ten individual sprites into a list window will complete the operation with the LAST sprite loaded, and selected. The other nine would have been loaded and then deleted.
2. Dragging a large sprite file with many sprites into the list window will complete the operation will all of the sprites loaded and marked as selected. Adding one more sprite file will nuke the entire lot just loaded, and complete with just that one single sprite visible and loaded.
This is insanity. Horribly horribly broken behaviour.
Suggested fixes:
1. Don’t automatically select newly loaded sprites. The only sensible behaviour if the list of sprites changes is to unselect all of them.
2. Don’t delete selected sprites when loading new ones. There is no justification whatsoever for loading a sprite to cause any deletions EXCEPT for the case where there’s a name clash. The loaded sprite “xyzzy” should NOT affect the loaded sprite “urgle” in any way. Furthermore, to delete random sprites silently is reprehensible.
I have uploaded a little video (a minute long) comparing drag-load behaviour between Paint in RISC OS 3.11 and the current version of Paint – https://youtu.be/tJG_3KpRDwo