>
> David's workaround was to do:
>
> myi->other_xid = ( w() && h() ? fl_create_offscreen(w(),h()) : 0 );
>
> instead, i.e. only create the offscreen surface for the double
> buffering of the window if the window has non-zero size. Otherwise,
> other_xid is set to NULL.
>
> It looks like *most* other places where other_xid is used, it is
> checkedfor being NULL first, so this ought to be safe.
>
> David reports good results with this workaround in his tests,
> though I was initially sceptical.
> I'm now of the opinion that this workaround is probably good,
> though we need to check there are no places where other_xid is
> actually used without
> first being checked for NULL, just to be sure!
>
I double check, and find an global variable initialize with this value.
Using nested double window using box can trigger X error. (PolySegment, and
PolyText).
Here my full patch :
// Checking against 0 is not enough
myi->other_xid = ( w() >= 0 && h() >= 0 ? fl_create_offscreen(w(), h()) : 0
);
and (near line 416 of Fl_Double_Window.cxx)
#else // X:
fl_window = myi->other_xid;
draw();
fl_window = myi->xid;
#endif
is replaced by
#else // X:
if ( myi->other_xid ) {
// global init of the current X window
fl_window = myi->other_xid;
draw();
}
fl_window = myi->xid;
#endif
_______________________________________________
fltk-bugs mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-bugs