- use Fl_Terminal instead of Fl_Browser for prime display
- add Fl::lock()/Fl::unlock() at thread initialization
- format "Max Prime" output as integer number
- use a fixed font for better readability
- close all windows when the user closes one of them
- use standard background and text colors
Note: This commit is a compromise. The version in FLTK 1.5 uses
std::vector<> and can't be fully backported to 1.4.
- allocate a new struct 'load_stat' on the heap
- use struct load_stat to open image file (fp) and for error counters
The previous fix of #1207 unfortunately decremented volatile variables
which caused (plausible) compiler warnings by clang.
Backported from master (340caa2dc3)
This method was erroneously declared 'deprecated' in previous versions.
However, this method is public and calls the *protected* method
Fl_Window::force_position(). Therefore it is kept as a regular
public method.
Backported from master: 0960f1c066
Original issue title:
"Windows: dotted lines may be drawn solid when GUI is rescaled"
Unfortunately commit 880636eb12 broke
the ABI because it added a variable to a public header. This commit
uses ABI guards '#if FL_ABI_VERSION >= 10403" for the same fix.
Note: The full fix w/o ABI guards is already available in FLTK 1.5.
- If shared libraries are built, then fluid, fltk-options, and the
"games" are linked against the shared FLTK libraries. On some
platforms the static and the shared versions of fluid and
fltk-options are built. The games are only built if
FLTK_BUILD_TEST is enabled.
- The CMake 'install' target now installs the games (if built)
and their man pages on all platforms (no matter if that is
useful, for instance on Windows).
- On macOS 'CMAKE_INSTALL_RPATH' is set so *installed* programs
automatically find their shared FLTK libraries. The "shared"
versions of fluid and fltk-options got their own '.plist' files.
This works for both the executables themselves as well as those
included in bundles. There may be more to do on the macOS platform.
Backported from 'master' (1066b69c8e).
For details please see description in the source code in
test/checkers.cxx lines 620++
This commit also disables unused code: function dumpnode() which is
used only in VT100 mode.
(cherry picked from commit 5b648d2cfc)
Use Fl_String instead of std::string.Windows: fix "heap-use-after-free" in home_directory_name()
Calling getenv() twice with different output vars and accessing both
later could cause "heap-use-after-free" error in some Windows versions.
The result of home_directory_name() would be unpredictable.
Found using Wine and/or MSYS2/clang/libc++ with Address Sanitizer.
(cherry picked from commit 719fed2b13)
Calling getenv() twice with different output vars and accessing both
later could cause "heap-use-after-free" error in some Windows versions.
The result of home_directory_name() would be unpredictable.
Found using Wine and/or MSYS2/clang/libc++ with Address Sanitizer.
(cherry picked from commit 719fed2b13)
This commit is bigger than necessary to fix the buffer allocation but
it also prevents some unnecessary string copies: the font name is
converted from UTF-16 to UTF-8 directly in the buffer used later.
Code reformatted and clarified as well, some duplicated code was
removed.
(cherry picked from commit 2e1730d2f0)
A problem was visible with the menubar test app and a 2-screen system where screens are one above the other.
When moving down the huge menu, it became positioned on the wrong screen.
(cherry picked from commit f4f93fda15)
- define variable MAIN_FILES to avoid repetition
- make target_include_directories(fluid-lib) PUBLIC rather than PRIVATE
Backported and slightly modified from master,
commit 61f132845b
Prepare for installation of `games` demo programs. Fix inconsistencies
and typos in man pages. In the future the man pages can be installed
together with the executables. This will be done in a later commit.
documentation/src/glpuzzle.man: new file.
Backported from master (eb1e0f423d).
* Use CMake's built-in timestamp formatting.
It notably honors SOURCE_DATE_EPOCH if set, making for reproducible
output. For even better reproducibility, use UTC. (Unlike the date
command's output, the result is already always in English.) Extend
this approach to the book, introducing appropriately formatted
PDF_DATE and TODAY variables for its PDF metadata and title page
respectively and making make_pdf configurable.
Under the traditional build system, don't attempt to handle
SOURCE_DATE_EPOCH because date's portable interface is too limited,
just supply PDF_DATE and TODAY values corresponding to the current
date (and time zone) and use the C (English) locale for month names
and abbreviations.
* Fix missing parts and a syntax error in documentation/Makefile
- documentation/Makefile:
- add make_pdf to target 'clean'
- add make_pdf to dependencies of 'refman.pdf'
- add missing quotes to `date` command
- documentation/.gitignore: add make_pdf
---------
Co-authored-by: Albrecht Schlosser <albrechts.fltk@online.de>
Debug only, if fl_debug_target() is used:
Prior to CMake 3.19 some properties of "INTERFACE_LIBRARY targets"
can't be read with get_property(). These properties are now
excluded if the CMake version is lower than 3.19.
(Backported from master)
so users can enable ABI features designated for the *next* release
when using FLTK from Git (or snapshots) before the API version has
been raised for the next release.
For reference, see fltk.general thread started Mar 26 2025, entitled:
"Make some Fl_Tree_Item methods virtual?"
Backported Greg's commit from master (1.5.0) by Albrecht-S,
added ABI guards for FLTK 1.4.3