DO NOT REPLY TO THIS MESSAGE.  INSTEAD, POST ANY RESPONSES TO THE LINK BELOW.

[STR New]

Link: http://www.fltk.org/str.php?L1972
Version: 1.3-current


Under MacOS X 10.x, when compiled for Quartz, fltk 1.3 (and fltk 1.1.9)
causes segmentation fault in fl_cursor.cxx, line 233 (function void
Fl_Window::cursor(Fl_Cursor c, Fl_Color, Fl_Color)) if
Fl_Wizard::value(Fl_Widget *kid) is called before the window is 'shown'.
This means, you cannot preset the page of a Fl_Wizard-widget before you
'show' your window. This happens only under Quartz. Under MS Windows,
Linux and Quickdraw, this does not happen.

The matter is that under Quartz, fl_cursor.cxx operates with pointers to
the cursors. The current pointer is stored in fl_default_cursor. This
pointer is initialized in void fl_open_display() (file Fl_mac.cxx). Before
that, its value is NULL: fl_default_cursor is declared in Fl_mac.cxx as a
global variable (cf. line 91). For this, operation *icrsr in
fl_cursor.cxx, line 233 fails.

To overcome this bug under Quartz, I hide the call SetCursor( *icrsr ) in
line 233 of fl_cursor.cxx in the body of 'if (icrsr != NULL)'. (Thus, I
patch fltk.) This works. But there could be other ways that ensure that
icrsr (i.e. fl_default_cursor) is initialized properly before the first
use.


Link: http://www.fltk.org/str.php?L1972
Version: 1.3-current

_______________________________________________
fltk-bugs mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-bugs

Reply via email to