FLTK now supports 2 types of fullscreen modes under macOS:
1) normal macOS fullscreen mode where the menubar and titlebar appear when mouse is moved to top of screen
and the window covers one screen only;
2) multiple-screen mode that requires calling Fl_Window::fullscreen_screens() before.
This commit fixes all possible transitions between these fullscreen modes and normal window mode.
If FLTK has been built with bundled image libs the include directory
of the *installed* library headers is 'FL/images' relative to the
normal 'include' directory.
The CMake property "include_directories" is now added to the installed
fltk_images library so it is used when building user programs with
bundled image libs.
Adjust internal vector sizes before and after changing the rows() in
the base class to avoid inconsisten sizes.
Note that the crash reported by the OP of PR #1187 was caused by
more than one issue, not only the one fixed here. Thanks for the
original patch to the author, GitHub user 'basiliscos'.
Users who need the old behavior for strict backwards compatibility under Windows can load the previous (Arial) font at program startup with only a few lines of code:
#ifdef _WIN32
// reset Windows fonts to pre-1.4.2 state
Fl::set_font(FL_HELVETICA, " Arial");
Fl::set_font(FL_HELVETICA + 1, "BArial");
Fl::set_font(FL_HELVETICA + 2, "IArial");
Fl::set_font(FL_HELVETICA + 3, "PArial");
#endif
On FreeBSD some of the required header files (and libraries) are not
in standard (known) locations, hence they wouldn't be found under
certain circumstances. Making all dependencies 'PUBLIC' adds the
needed include directories and link libraries to all builds.
For details see GitHub Issue #1173 with title
"FLUID compilation error on FreeBSD when FLTK_BACKEND_X11=ON"
The Windows doc at https://learn.microsoft.com/en-us/typography/font-list/arial-unicode-ms
of the "Arial Unicode MS" font reads
"The font was included with Office but not Windows. …
We stopped servicing and updating Arial Unicode and no longer install it as part of Office."
Using that font is therefore not the best choice.
This commmit uses "Microsoft Sans Serif" instead available in all Windows versions
since Windows 2000.
Unfortunately this *appears* to be a new constraint caused by the great
new features of Fl_Tabs like overflow handling etc. and fixing drawing
issues in the tab area (since FLTK 1.4).
However, this conflict has already been there in 1.3 but didn't cause
visual artifacts in normal use.
As discussed in the context of PR #1187 the previous return value '-1'
was misleading and undocumented. The docs mentioned only '1' and '0'.
User code that used the return value as documented (like a `bool`)
would make the wrong decision if the return value was '-1': true
(selected) instead false (out of range).
This commit fixes the code by doing what the docs define and clarifies
the documentation.
Further documentation improvements of Fl_Table (example code used a
method that is not defined in Fl_Table) and of Fl_Table_Row are
included as well.
Doxygen docs of two methods of Fl_Table_Row moved to the .cxx file
where they belong according to the CMP.
Member function Fl_Cairo_Graphics_Driver::set_cairo() needs be called only to initialize the driver.
Doing it also later undoes the effect of Fl_Widget_Surface::translate() if used
when Fl_Surface_Device::pop_current() calls the overridden Fl_Surface_Device::set_current().
Damage flag `FL_DAMAGE_ALL` is set during Fl_Pack::draw if child
is repositioned. If the child is outside the clipping area, if will not redraw
and the flag will remain set even after Fl_Pack::draw which is not allowed.