Re: Canvas freeze/thaw



On Sun, 03 Sep 2000 06:01:03 Federico Mena Quintero wrote:
> 
> Rusty Conover <rconover@zootweb.com> writes:
> 
> > In my dealings with the canvas I've come to a point where I would like to
add
> > the feature of freezing and thawing to the canvas.  The reason is that I'm
doing a
> > number of object creations and transforms at once, and the canvas displays
> > these actions before they are finished.  Having the canvas updated mid
> > transformation degrades the total user experience.
> > 
> > How I plan to implement the freeze capability is adding a conditional check
to
> > the do_update() to stop the redraw of the canvas is the conditional is
true. 
> > When the conditional is false the update will occur as planned.  Upon thaw
the
> > only action is a gnome_canvas_request_update() call.
> > 
> > The reason the conditional must go into do_update() is that there may
already
> > be queued updates pending and I want to stop those from occuring.
> 
> Huh?  The whole point of having the canvas delay all the updates until
> the idle loop is precisely to avoid what you described in your first
> paragraph.
> 
> I wonder why you are seeing partial updates; does your application not
> finish all its item tweaking between two consecutive runs of the idle
> loop?

No, because it has to force a repaint on the objects created due to the bug of
the gnome canvas items not following the update/redraw paradigm correctly in the
antialias canvas mode.  On second thought I think I could avoid this my just
hiding the objects, queueing the appropriate update calls on each object, then
once all of the operations are complete, make all of the objects visable then force
an update on them so that they will show up properly.

Rusty
-- 
---------------------------------------------
Rusty Conover        | rusty@zootweb.com 
Systems Programmer   | 406-586-5050 x226
Zoot Enterprises     | http://www.zootweb.com






[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]