GNOME Bugzilla – Bug 81636
Confusing behavior of "Repeat Last"/"Re-Show Last" after Cancel
Last modified: 2005-01-01 21:56:06 UTC
As mentioned in bug #81479, The behavior of "Repeat Last (Alt-F)" is confusing if it is used after cancelling a previous plug-in, because it will "repeat" the cancelled action (which was never performed) instead of repeating the last plug-in that was successfully executed. The behavior of "Re-Show Last (Shift-Alt-F)" is correct because the user interface of the plug-in was show even if it was cancelled, so "Re-Show Last" will do what one would expect. But this is not correct for "Repeat Last" because there is nothing to repeat. To reproduce the problem, try the following: - open or create a new image, - use some filter (for example, Gaussian Blur) and press OK, - use another filter (for example, Noisify) but press Cancel because you do not want to execute it, - press Alt-F or select "Repeat Last" in the menu. The expected behavior would be to repeat the Gaussian Blur plug-in because this is the last one that was executed. But instead of that, the Noisify plug-in is executed for the first time. I think that the problem has been mentioned some time ago, but I could not find any reference to it. This could be solved by keeping two separate sets of "last values" for the plug-ins: one for "Repeat Last" and one for "Re-Show Last". Both of them would be modified when a plug-in is executed successfully. When a plug-in is cancelled, only the second set would be modified.
Changes at the request of Dave Neary on the developer mailing list. I am changing many of the bugzilla reports that have not specified a target milestone to Future milestone. Hope that is acceptable.
1.3.16 does The Right Thing(tm).
It looks like the current version in CVS does not do The Right Thing. Re-opening... :-(
I don't think that having Repeat and Re-Show invoke different plugins would be helpful. I believe it would be quite confusing. IMO the current behaviour is OK. An alternate approach would be to just repeat/reshow plugins that really did something, but I think I prefer the current behaviour.
It could be useful to allow Repeat Last and Re-Show Last to refer to two different plug-ins, considering the following use cases: 1) You select a plug-in from the menu. You change some options, but then you prefer to start again from scratch because this plug-in has too many options and cancelling it is the fastest way to start again with the default settings. Or maybe you see a bit late that you invoked the plug-in from the wrong image or layer, so you cancel it before re-starting it. In this case, having it listed in Re-Show Last is useful so that you do not have to go through all menus again. 2) You run a plug-in successfully. It appears in both Repeat and Re-Show. Later, you start another plug-in but you cancel it almost immediately, either because you started it by accident (from the menus or from some user-defined shortcut key) or because you changed your mind. In this case, although Re-Show Last should list the plug-in that you cancelled (see use case 1), it would be nice for Repeat Last to invoke the previous plug-in so that you do not have to find it again in the menus. Both of these cases happened to me several times, although not very frequently. So this is a minor issue, but I think that it would be nicer to allow Repeat and Re-Show to list different plug-ins.
I understand what you want to tell me, and I see that under some circumstances might be useful to have it behave like this, but I still think that it is confusing. Repeat Last and Re-Show last are two functions that have a very close relationship: They both run a plugin that recently has been active in some manner. You have a natural idea of which plugin was the last active one. Having these two functions operate on two different plugins makes the effective use harder, since I now mentally have to track two plugins (assuming a lazy reader or a keyboard shortcut user). Plus as I already mentioned in another bug report that it is not yet possible to distinguish between a cancelled and a regular plugin run. Mitch suggested a plugin history which I think is a very good idea when done in a proper and consistent manner.
OK. If we have a plug-in history later, then we do not have to fix this issue -> resolving as WONTFIX.