bulia byak wrote:
On 9/4/06, John Bintz <jcoswell@...1414...> wrote:
Hi, all. I wanted to give a quick update on the set of changes I committed this morning. Basically, buila's cool interruptible display code is now enhanced so that, for operations that require the whole display to be updated (rubberbanding, any sort of drawing operation), the interruptibility of the display code can be disabled and then re-enabled. During the disabled times, the entire affected screen rectangle will paint, making sure the previewed object is displayed accurately. This provides (I hope) the best balance between speed and precision while working in Inkscape.
Wait a minute. What were situations where something was NOT displayed accurately? I wasn't aware of any such cases, and if they do exist, I'd say it's preferable to fix them the right way, so that they work with interruptible display, instead of disabling interruptibility.
In situations where the redraw is very complicated, especially if the zoom factor is high (~1000-2000%) and if working with a tablet, the drawing of the dragged or new item on the screen can take longer than the processing of the events for this item. When drawing, say, a rectangle from top to bottom in one of these complicated areas, the preview item may not be finished drawing by the time the new event is received. This new event will cause the display to start updating again, ending the previous update and preventing the user from seeing a completed rectangle. I ran across this many times while working on some very calligraphy-path heavy drawings recently -- nodes and handles would not update completely, leaving me to guess as to how a drag operation would leave my finished drawing. Also, rectangles and arcs wouldn't draw at all sometimes, because the redraws were being interrupted with almost every mouse movement.
If you like, I can create a test document to send to you so that you can see the behavior for yourself. I personally would want to see a better method for handling this case, as well. What I think might be ideal is to flag particular objects as "must draw completely," objects such as ones that users are working on that have not been committed to the document. Again, this only occurs during times when screen redraws will take a long time (and with some of the documents I work on, they can be very slow due to the large number of paths and the zoom levels I work at).
John