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: Paul
Subject: Re: [XForms] New prerelease xforms-1.0.94pre13
Date: Tue, 25 Dec 2012 12:22:46 +0000
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.28) Gecko/20120313 Thunderbird/3.1.20

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.
--
Paul Nicholson
--



reply via email to

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