With modern CMake libcairo doesn't need to linked explicitly in the
test/cairo_test.cxx demo program. Either '-lcairo' is implied by
linking with fltk::fltk or it is not used at all.
This fixes a linker warning on macOS:
"ld: warning: ignoring duplicate libraries ..."
Fl_X11_Screen_Driver::set_spot() did not free the list of missing
fonts returned by XCreateFontSet().
This commit also initializes some variables and reformats code, but
the only notable change is to call XFreeStringList(missing_list) if
missing_list is not NULL.
Works now much better with old C99 and C++98 standard compilers.
Fixed: C++ comments in C files and headers included by C files.
There are still some warnings with C90 though but these would be
hard to fix and left as-is for now.
test/fractals.cxx: some arrays were too small by 1, or the compiler
warned at least (false positive?). Anyway, it's fixed now.
- it's no longer necessary to take care of the change in the layout of "struct libdecor"
between versions ≤ 0.2.2 and > 0.2.2 of libdecor
- version > 0.2.2 contains MR131, that is, it defines LIBDECOR_WINDOW_STATE_RESIZING
so the hack to emulate it is no longer necessary
- CMake option FLTK_USE_SYSTEM_LIBDECOR now requires libdecor version > 0.2.2
to be activated, otherwise the bundled libdecor is used
- what will be the libdecor version after 0.2.2 (0.2.3? 0.3.0?) is not known as of today
Thanks to Mike Qin for finding how to query the possibly changed DPI value
of an X11 display while an FLTK app keeps running without running
an external command in a pipe.
This involved enlarging the unittest main window to make room
for the additional test.
Adding this test revealed a problem in Fl_Terminal's global
scrollbar size handling, which is fixed here as well.
Also fixed a small issue in the demo's debugging terminal
with the horiz scrollbar.
(1) Ensure that the terminal widgets doesn't use keyboard events.
Advantage: keyboard navigation and selection doesn't interfere
with the display.
Drawback: Contents of the terminal can no longer be copied.
This will be addressed in a later update.
(2) Thanks to Manolo for his addition of the "GUI scaling" button.
Although GUI scaling can be useful, it can also be annoying while
testing shortcuts.
(3) Changed all light buttons to check buttons.
Esc is intentionally consumed by the test program (see comment) but
other keystrokes (shortcuts) must pass to allow zooming with ctrl/+/-/0.
The old code filtered all shortcuts which turned out to be wrong.
Not being able to zoom was caused by a previous commit that lowered
the priority of the zoom key handler - which alone was not wrong.