summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-05-30Fix for #1260 - part2: improve position of menu button window under WaylandManoloFLTK
2025-05-29Wayland: fix "A flag to set how menus should show up" (#1260)ManoloFLTK
2025-05-28Fix usage of FLTK_BACKEND_WAYLAND and FLTK_USE_WAYLANDAlbrecht Schlosser
- Do not change or remove the cache variable FLTK_BACKEND_WAYLAND: this is an option set (and must only be changed) by the user. - CMake/options.cmake: check Wayland availability if option FLTK_BACKEND_WAYLAND is ON and set the result variable FLTK_USE_WAYLAND accordingly. - Replace FLTK_BACKEND_WAYLAND with FLTK_USE_WAYLAND everywhere else, except as noted above: in options.cmake.
2025-05-24Update makesrcdist to reflect packaging (CPack) and moreAlbrecht Schlosser
- remove conversion of fltk.spec.in to fltk.spec - improve code related to working directory (variables) - remove old (disabled) debug code - create a standard MD5SUM file for verification of packages - improve comments and output of instructions
2025-05-24Enable CPack support to build binary packages and installersAlbrecht Schlosser
This minimal implementation works and enables basic (mostly default) CPack support to build binary packages of FLTK (RPM, TGZ, NSIS, ...). Users need the required tools like `rpmbuild` to build a particular type of package or installer. Using EPM or rpmbuild directly with a provided "list" file has been discontinued: fltk.list.in (EPM) and fltk.spec.in (RPM) have consequently been deleted. README.CPack.txt: basic documentation
2025-05-21Update bundled libdecor to last upstream version (May 14, 2025)ManoloFLTK
2025-05-21Add change necessary to support new class Fl_Native_Input, possibly as addonManoloFLTK
The added if() statement's condition is always false in FLTK before addition to it of class Fl_Native_Input. Therefore, the present modification is effectless unless this new class is added to the library, either in its core or as an addon.
2025-05-14Fl_Window::free_position() must not be deprecatedAlbrecht Schlosser
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.
2025-05-14Fix doxygen warningsAlbrecht Schlosser
1. src/Fl_add_idle.cxx: add missing parameter docs 2. FL/fl_draw.H: rename 1st parameter of fl_draw_pixmap(...) from 'data' to 'cdata'. The 2nd warning appears to be caused by a 'friend' declaration in FL/Fl_Graphics_Driver.H, line 98: 'friend FL_EXPORT int fl_draw_pixmap(const char*const* cdata, ...)' This 'friend' declaration seems to "confuse" some (newer?) doxygen versions, definitely doxygen 1.13.2.
2025-05-13Remove deprecated function Fl::set_idle()Albrecht Schlosser
This turned out to be more complicated than just to delete a function because it was used internally, and the callback signatures were a bit flaky. I also added a lot of documentation to clarify matters. FL/Fl.H: document idle callback signatures, make some internal functions of class Fl private, add public Fl::idle() accessor (read- only), add Fl::add_idle(Fl_Old_Idle_Handler cb) to enable using old-style idle callbacks w/o 'data' argument. FL/forms.H: replace Fl::set_idle() with Fl::add_idle(). src/Fl.cxx: rename private Fl::idle_ with trailing underscore. src/Fl_System_Driver.cxx: use new public accessor Fl::idle() to access Fl::idle_ which is now private. src/Fl_add_idle.cxx: improve documentation, clarify idle callback matching, add example code in docs, rename methods, add overloaded Fl::add_idle(Fl_Old_Idle_Handler cb). src/Fl_win32.cxx: use public Fl::idle() rather than private member. src/drivers/Unix/Fl_Unix_System_Driver.cxx: same as above. src/Fl_cocoa.mm: same as above.
2025-05-11Add more documentation about ABI checking and a script to do itAlbrecht Schlosser
misc/abi-check: This new script can be used (on Linux) to check ABI compatibility between patch releases. It does everything required in one execution (after installing the prerequisites once). Documentation is included in the script. It may be modified for other platforms, or ABI checking can be done manually. README.abi-version.txt: add a chapter regarding ABI checks misc/abi-compliance-checker.txt: update documentation on how to run misc/abi-check. In previous versions (1.4) building was done using configure/make. Thus this file was almost completely rewritten. documentation/src/migration_1_4.dox: an unrelated but tiny correction.
2025-05-11Remove obsolete class Fl_StringAlbrecht Schlosser
Note: it's still in branch-1.4 and in git history for reference
2025-05-11Fix unused parameterMatthias Melcher
2025-05-11Set default DPI to 300 in fl_write_pngMatthias Melcher
Previously, the DPI value was completely random, resulting in some interesting scaling when reading the png in other apps.
2025-05-11Fix address sanitizer exception for macOS native file chooserMatthias Melcher
The `memcmp` call would crash in Adress sanitizer if the memory compare would run into an undefined buffer. `memcmp` is not guaranteed to stop reading a buffer if a difference is found.
2025-05-10Wayland: remove crash when resizing hidden subwindowManoloFLTK
2025-05-09Fl_Terminal doc fixes, private->protected for utf8_char_at_*()Greg Ercolano
2025-05-09Fix erroneous #include directiveManoloFLTK
2025-05-09Remove declaration of Fl_Scalable_Graphics_Driver from FL/Fl_Graphics_Driver.HManoloFLTK
and declare it in non-public header src/Fl_Scalable_Graphics_Driver.H which also declares classes Fl_Font_Descriptor and Fl_Fontdesc.
2025-05-08Simplify CMake build config for test and demo programsAlbrecht Schlosser
Define platform specific library names as CMake variables so they can be used to build demo programs w/o platform specific instructions. This includes optional components (e.g. OpenGL) and the MSVC specific extra object library (call_main) and the fact that we build only one "monolithic" shared library with MSVC. Also, enable building FLTK Forms library in CI builds.
2025-05-07Remove hardcoded version numbers (part 2) and more documentationAlbrecht Schlosser
The goal is to change the version number for a new release only in CMakeLists.txt. This is the second step. This commit also adds a chapter "Migrating Code from FLTK 1.4 to 1.5". Details: - documentation/CMakeLists.txt: configure 'version.dox' - fluid/documentation/CMakeLists.txt: same as above - documentation/Doxyfile.in: add "Migrating Code from FLTK 1.4 to 1.5" - documentation/src/index.dox: include 'version.dox' and 'migrating...' - fluid/documentation/src/index.dox: same as above - documentation/src/preface.dox: include 'version.dox' - documentation/version.dox.in: input to CMake configure 'version.dox' - fluid/documentation/version.dox.in: same as above - documentation/src/migration_1_4.dox: update links - documentation/src/migration_1_5.dox: new documentation chapter
2025-05-06Fix a typo and improve formatting in README.mdAlbrecht Schlosser
2025-05-06Remove hardcoded version numbers: part 1Albrecht Schlosser
The goal is to change the version number for a new release only in CMakeLists.txt. This is the first step. Details: - CMake/gen_config.cmake: this new file is included to generate the header files config.h (private, root directory), and FL/fl_config.h (public, can be installed). This file implements also ABI version checks (removed from FL/Enumerations.H and with more checks). Warnings are issued if the chosen ABI version is invalid. - CMake/export.cmake: code to generate 'config.h' was moved to CMake/gen_config.cmake. - CMake/options.cmake: set default of FLTK_BUILD_FORMS=OFF + comments - CMakeLists.txt: move generation of FL/fl_config.h to gen_config.cmake, add API and ABI versions to CMake summary, - FL/Enumerations.H: remove most of the version number details which are now included in FL/fl_config.h. This needed also some doxygen related changes. - README.CMake.txt: improve docs of FL_ABI_VERSION and some more. Reflect the new default of CMake option FLTK_BUILD_FORMS (OFF). - documentation/Doxyfile.in: add FL/fl_config.h to file list. This file is created in the build tree (and may be "installed"). - fl_config.h.in: add version number details that have been moved here from Enumerations.H (used to generate FL/fl_config.h).
2025-05-05Rename config header input files to better namesAlbrecht Schlosser
Up to FLTK 1.4 we had two distinct input files for each header file: one for configure and one for CMake. Since 1.5 we have only one input file for each header which can now have a more appropriate name. 1) configh.cmake.in -> config.h.in 2) fl_config.cmake.in -> fl_config.h.in
2025-05-01Documentation: clarify version numbers and fix minor issuesAlbrecht Schlosser
Remove references to "current" version numbers, use 1.2.3 as example for clarity and to simplify version number updates. Also: minor textual fixes (typos), unwrap lines, etc.. Todo: Documentation states: "This file is not actively maintained any more, but is left here as a reference, until the doxygen documentation is completed." Check if the documentation generated by doxygen from source files contains everything needed so this file can be removed.
2025-04-29Fix Doxygen warning for older Doxygen versionsAlbrecht Schlosser
Note: doxygen versions < 1.9.6 are not recommended for PDF docs but *may* work for HTML documentation.
2025-04-28macOS: disable automatic code signing when using XcodeAlbrecht Schlosser
This is the default. Users can still override this if they have a valid certificate.
2025-04-23Fix forgotten `run_pdflatex` call (1.5)Matthias Melcher
2025-04-21Fix "fully support ... own shared libraries" (#1238)Albrecht Schlosser
- 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.
2025-04-18Fluid: update documentation scriptsMatthias Melcher
TeX and pdf generation untested at this point
2025-04-18Remove unused code from Fl_Wayland_Window_Driver (#1248)Albrecht Schlosser
This commit removes the unused static method Fl_Wayland_Window_Driver::resize_after_screen_change(void *data) and related data as discussed in the context of PR #1248.
2025-04-18Fix "heap-use-after-free" in resize_after_screen_change() (#1248)Timothy Lee
When a native window is destroyed, make sure the callback to Fl_WinAPI_Window_Driver::resize_after_screen_change() is removed. Added by Albrecht-S: Thanks for the original fix to Timothy Lee (@timothytylee). src/drivers/X11/Fl_X11_Window_Driver.cxx: equivalent fix for X11 as discussed on GitHub PR #1248
2025-04-15Fluid: hiding MergeBack form the main menu.Matthias Melcher
Hiding menuitem if option is not available. Also testing the new FL_BEFORE_MENU event.
2025-04-15Reactivating Mergeback functionality. (#1226)Matthias Melcher
Reactivated code. Various fixes. New documentation.
2025-04-15Fluid: avoid bad function pointer casting warning in Clang 17.Matthias Melcher
2025-04-07Revised version of the glpuzzle man page.Matthias Melcher
2025-04-06Adjusted .fl files too, regen code (#1245)Greg Ercolano
2025-04-05Fixes error: two consecutive '[' tokens on g++ with objcpp files (#1246)Mohammed Alyousef
Applying MoAlyousef's PR. -erco
2025-04-05Solve Mac 10.10.5 fluid build errors (#1245)Greg Ercolano
2025-04-04CMake: simplify fluid buildAlbrecht Schlosser
- define variable MAIN_FILES to avoid repetition - make target_include_directories(fluid-lib) PUBLIC rather than PRIVATE
2025-04-04Update man pages of games (demo programs), add glpuzzle.manAlbrecht Schlosser
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.
2025-04-04Remove reference to 'configure', fix typosAlbrecht Schlosser
Note: this file is not used in normal compilation, it can be used to help debugging. I'm not sure if it's still helpful, but anyway...
2025-04-04Update bundled libdecor to last upstream version (Apr 4, 2025)ManoloFLTK
2025-04-03Remove redundant Fl_Group::clear() from ~Fl_Scroll()Albrecht Schlosser
Fl_Group::clear() is called in Fl_Group's d'tor anyway. Technically we don't need to remove hscrollbar and scrollbar because they are destroyed (and thus removed from Fl_Group) before Fl_Group's d'tor is executed but this is left for clarity and to guarantee the order (see comment).
2025-04-03Fix "Minor drawing artifact at scale 200% under X11 session" (#1243)ManoloFLTK
2025-04-03Merge remote-tracking branch 'refs/remotes/origin/master'ManoloFLTK
2025-04-02Use CMake's built-in timestamp formatting.Aaron M. Ucko
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.
2025-04-02CMake: check version for some properties in fl_debug_target()Albrecht Schlosser
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.
2025-04-01options.cmake: Check Threads_FOUND, not CMAKE_HAVE_THREADS_LIBRARYAaron M. Ucko
The former's been available since CMake v2.8 and documented since v3.17; the latter was never documented and quietly went away in CMake v3.24.
2025-04-01Adding the FL_MENU_CHATTY flag to Fl_Menu_Item.Matthias Melcher
If set, menu items will also call the callback when highlighting changes. The reason is given with Fl::callback_reason(). #941