GNOME Bugzilla – Bug 324224
Always show the clone source handle
Last modified: 2008-01-15 13:03:21 UTC
As it is, clone tool functionalities are good but tool manipulation is not very user friendly. CTRL + click allows you to point the center where you want to copy pixels. Then moving your cursor and click will copy pixels under cursor position and a cross indicates origin of pixels copied. Unfortunately , cross is hidden when you release mouse key and you have to remember where it was before clicking again somewhere else. It is very disappointing. Enhancement proposal : Display copy shape of the selected tool around the origin cross and maintain it as mouse key is released. With such a feature, user will be able to visualize all the time pixels which will be cloned. You will have two shapes moving together, and when you will click again, you will copy pixels. Very user friendly, when suppressing dust dots after a film scan. In addition, maintaining CTRL key depressed could fixed the position of the pixels to be cloned, then moving mouse and clicking will copy the same pixels at different places. Both of these two features would make clone tool much easier to use. Note: these features were implemented with key "shift" in Picture Publisher from Micrographics, company acquiered by Corel.
Note that you can already clone from a fixed position, see bug #322791.
Created attachment 56089 [details] [review] Always show the clone source handle The patch changes the tool's behaviour to always show the clone source handle. This is fine for the alignment modes 'none' and 'fixed', but confusing for 'aligned' and 'registered', because for these it should always move, not only when the tool is painting.
We should have a look at the patch before the tree is feature frozen for 2.4. Either modify it so that it can be accepted or postpone until the next development cycle.
I'm currently working on this and I'm hopefully only a few steps from completion.
Michael, I am very amazed by your efficiency. When I posted my request, I was not shure to get a answer. And it will be added to next release. Many thanks for your job. It shows the powerfullness of open world
Created attachment 62705 [details] [review] Always show the clone source handle Same as patch 56089, but will apply to current cvs...
Created attachment 62706 [details] [review] ... and move the handle as well (or not, well, somewhat) This is the current state and shows how far I got until now... the handle flickers when moving the mouse (without painting, that is), and the first and last handle of a stroke just stays there... I don't really get how the handle drawing works, any help is appreciated.
I quite agree that this would make the tool a good bit easier to use -- I have wanted it myself for some time. Accordingly I will confirm this enhancement request. However, because 2.4 is around the corner and this is not essential to it, I am going to bump the target to Future. It can still be included in 2.4 if a correct patch exists. Cencerning comment #7, the problem with the attached patch is that any time you change a variable that affects what gets drawn by the tool, you must call gimp_draw_tool_pause() before making the change, and then gimp_draw_tool_resume() afterward. The "pause" call erases the current drawing, and the "resume" call produces the modified drawing. The flickering of the handle on mouse-movement is not a serious problem, I think.
Created attachment 65960 [details] [review] Always show the handle, move it and don't leave ghosts behind This seems to work know; pause and resume are exactly what I needed here. Wouldn't hurt if they were explained a bit more in the API docs :)
It's not clear to me that the added code belongs in cursor_update rather than oper_update, but I have tested the changes and they seem to work quite well. I went ahead and committed the patch to HEAD: 2006-05-21 Bill Skaggs <weskaggs@primate.ucdavis.edu> * app/tools/gimpclonetool.c: apply patch from Michael Schumacher to show clone source even while not painting; fixes bug #324224. Target reset back to 2.4. I am leaving this bug report open for comments.
Reopening: 2006-05-22 Michael Natterer <mitch@gimp.org> * app/tools/gimpclonetool.c: revert previous change. Tools must not do anything essential in cursor_update(), and poking in the GimpClone struct is a bad hack. Will look into this.
Fixed in CVS: 2006-05-22 Michael Natterer <mitch@gimp.org> * app/tools/gimpclonetool.[ch]: re-apply heavily modified patch from Michael Schumacher which shows the clone source even while not painting. Fixes bug #324224. Did some additional cleanup.