The old version would reschedule an existing timer if a matching timer
existed already which was unique to macOS.
The new behavior is consistent on all platforms and allows to create
multiple timer entries with the same callback and userdata.
Backported from 1.4: 135ba3a7e1
Calling Fl::repeat_timeout() instead of Fl::add_timeout() to create
a timer would crash on macOS but fall back to Fl::add_timeout() on
Windows and Unix/Linux. Although this is documented as "undefined
behavior" a crash should always be avoided and the fallback is now
consistent on all major platforms.
Backported from 1.4: 87475c20d6
Apple clang version 12.0.5 (clang-1205.0.22.9)
Target: arm64-apple-darwin20.4.0
Warning appeared after upgrade to Xcode 12.5 in several files,
example:
In file included from Fl_Scroll.cxx:19:
../FL/Fl_Scroll.H:102:17: warning: anonymous non-C-compatible type given name for linkage purposes by typedef declaration; add a tag name here [-Wnon-c-typedef-for-linkage]
typedef struct {
^
ScrollInfo
../FL/Fl_Scroll.H:104:5: note: type is not C-compatible due to this member declaration
typedef struct { int x,y,w,h; } Fl_Region_XYWH;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../FL/Fl_Scroll.H:128:5: note: type is given name 'ScrollInfo' for linkage purposes by this typedef declaration
} ScrollInfo;
^
macOS Big Sur 11.3 introduced a new "security feature" such that
app bundles created from existing bundle templates in downloaded
files (tar distibutions, expanded) could no longer be executed
without unsetting the "quarantine" attribute. This commit fixes
this by creating all bundles from scratch.
Known *workaround* for older tarballs and snapshots:
$ xattr -d -r com.apple.quarantine xxx.app
The file VERSION could be included erroneously on case insensitive
platforms (notably Windows) if the user included the c++ standard
header <version> directly or indirectly.
Renaming the file fixes this.
Backported from 1.4 (master).
Some of the output variables had not been documented, and the "new"
variable for FLTK include directories is 'FLTK_INCLUDE_DIRS' (plural)
rather than 'FLTK_INCLUDE_DIR'.
FLTK_INCLUDE_DIR is now also set for compatibility with FindFLTK.cmake
supplied by CMake.
Variables FL_XXX_VERSION (XXX = { MAJOR | MINOR | PATCH } ) have been
renamed to FLTK_VERSION_XXX for compatibility with CMake.
Note: FL_DSO_VERSION and FL_ABI_VERSION are not affected.
Select the "best" target rather than a random one out of a list of
suitable targets. The target selection algorithm would sometimes
select the wrong target and hence retrieve unexpected data.
This could happen in both copy-paste and drag-and-drop operations.
- fix undefined 'GC' if no window has been shown/drawn yet
- may still need to call fl_open_display() prior to offscreen-drawing
- improve documentation, add example code
Fix bug in CMake/posixScandir.cxx (backported from 1.4).
Fix table structure in test/help-test.html (backported from 1.4).
Clarify that the deprecated forms compatibility *may* be removed in
FLTK 1.4
Cherry-picking fix from FLTK 1.4 (master).
See report in fltk.coredev as of Jan 16, 2020:
"Fl_Input in readonly mode - wrong behaviour".
Summary: Drag and drop within a read-only Fl_Input (i.e. Fl_Output)
widget would not insert the dragged text (correct) but removed
the dragged text from the widget (error). This is now fixed.
Fl_Pack::draw() sometimes resizes itself. This must be followed
by a call to Fl_Group::init_sizes() as indicated in that function's doc:
"If you rearrange the widgets in your group, call this method to register
the new arrangement with the Fl_Group that contains them."