[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: gEDA: Rotate while moving
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