Hi Werner, El mar, 02-05-2006 a las 23:12 +0200, Werner Hoch escribió: [snip] > The rotate comand erases (the not exising) original buffer and redraws > it as selection at the screen. Thats the garbage. Let's delete it. > > o_erase_selected(w_current);
It worked!. I could still see some drawing-erasing, so I solved it modifying o_rotate_90 so it accepts two new boolean parameters: erase_objs, and redraw_objs, which controls the erasing and redrawing of the objects. This way, no erasing or redrawing is made if not desired. > But I think this will leed to problems when rotating in ENDCOPY state. > The ENDCOPY will cause additional headache. When rotating we're rotating > the original buffer too. =:-( Yes. As you pointed out, this also happens when hitting the ESC key after the fist rotation... The problem is that the list of selected objects is really a list of pointers to the objects. If we are going to allow operations while moving/copying, etc, we need to work with a list of selected objects which are really a copy of the real objects. I'm not sure about how to deal with this.... Regards, Carlos