xforms-development
[Top][All Lists]
Advanced

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

Re: [XForms] New prerelease xforms-1.0.94pre13


From: Jens Thoms Toerring
Subject: Re: [XForms] New prerelease xforms-1.0.94pre13
Date: Tue, 25 Dec 2012 13:42:05 +0100
User-agent: Mutt/1.5.21 (2010-09-15)

Hi Paul,

On Tue, Dec 25, 2012 at 12:22:46PM +0000, Paul wrote:
> The canvas window is lost in fl_hide_canvas().
> 
> In pre11, a new window is created during fl_unfreeze_form() by
> a call to init_canvas(), but in pre12 init_canvas() is not
> called, so the canvas window remains zero.
> 
> In objects.c:redraw() there is
> 
>     for ( obj = form->first; obj; obj = obj->next )
>     {
>         int needs_redraw = obj->redraw;
> 
>         obj->redraw = 0;
> 
>         if (    ! obj->visible
>              || ! ( needs_redraw || form->needs_full_redraw )
>              || obj->objclass == FL_BEGIN_GROUP
>              || obj->objclass == FL_END_GROUP
>              || is_object_clipped( obj ) )
>             continue;
> 
> We have both needs_redraw and form->needs_full_redraw
> set to zero and therefore it does the 'continue' and
> skips redrawing the canvas.
> 
> Something should have set obj->redraw for the canvas.
> Not sure where that should be?
> 
> Maybe in canvas.c:fl_hide_canvas() where the window is
> set to zero?
> 
> I try:-
> 
> void
> fl_hide_canvas( FL_OBJECT * ob )
> {
>    ...
> 
>    sp->window = None;
>    ob->redraw = 1;       // *** Added ***
> }
> 
> This fixes the problem but I don't know if it is the 'correct'
> fix - not familiar enough with the code.

Thanks a lot for finding this and all the analysis you
have done! I'll take a look at it shortly...

                            Best regard, Jens
-- 
  \   Jens Thoms Toerring  ________      address@hidden
   \_______________________________      http://toerring.de



reply via email to

[Prev in Thread] Current Thread [Next in Thread]