Hi all,

while modifying the image map tools' ui I noticed that there's a strange
side effect.

Image map modifies the image in place and it's possible to do another
operation while an image map tool dialog (e.g. threshold) is active.

So the "other operation" (try e.g. <Image>/Image/Colors/Desaturate)
operates on the mapped image which was image_map_apply()'ed but not
yet image_map_commit()'ed.

Moreover, the current (mapped) drawable is pushed to the undo stack,
so it's not possible to get back the image you had before invoking the
image map tool.

I tried to insert "active_tool_control (HALT, active_tool->gdisp_ptr)"
as first command in "undo_push()" and "undo_push_group_start()" but
this only ensures that the pushed undo is correct. The image resulting
from the "other operation" may or may not (depending on "other op."'s 
implementation) be based on the not-yet-commited mapped image.

This is buggy, but I have no idea how to fix it (HALT-ing the active
tool at hundreds of places may be a workaround but is really ugly...)

any ideas??


Reply via email to