The commit's purpose if to create what can be called a hybrid Wayland/X11 platform.
Resulting FLTK executables will manage their windows with
Wayland if Wayland is available at run-time, and will fallback to using
X11 if it's not. An environment variable can also be used to force one or another of these outcomes.
The Wayland leg of this 2-legged platform is identical to what was produced by option OPTION_USE_WAYLAND before this commit.
The X11 leg of this 2-legged platform differs somewhat from the regular X11 platform in that it uses Cairo for all its drawing and Pango for all text.
In practical terms, the hybrid platform puts both X11-platform and Wayland-platform code inside libfltk and libfltk_gl.
We, Albrecht and I, believe this is a much stronger way to introduce Wayland support into FLTK since it reproduces what the GTK GUI toollkit does, to support both Wayland and X11-based windowing in the same app.
Comments welcome.
One hiccup I noticed:In a program compiled with OPTION_USE_WAYLAND, if the program is started with FLTK_BACKEND=x11, calls to Fl::background(uchar, uchar, uchar) seem to be ignored.