summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-03-17Fix comparison that's always trueAlbrecht Schlosser
... because base_dir[0] and dest_dir[0] are *signed* chars.
2025-03-17Windows: fix "heap-use-after-free" in home_directory_name()Albrecht Schlosser
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.
2025-03-17Wayland: improve support of addition/removal of displays while FLTK runsManoloFLTK
2025-03-17Wayland: compute work area size under MUTTER or when single displayManoloFLTK
2025-03-16Fluid: restructuring and rejuvenation of the source code.Matthias Melcher
* Add classes for application and project * Removed all globals from Fluid.h * Extracting args and project history into their own classes * Moving globals into Application class * Initialize values inside headers for some classes. * Undo functionality wrapped in a class inside Project. * File reader and writer are now linked to a project. * Avoid global project access * Nodes (former Types) will be managed by a new Tree class. * Removed static members (hidden globals) form Node/Fl_Type. * Adding Tree iterator. * Use nullptr instead of 0, NULL, or 0L * Renamed Fl_..._Type to ..._Node, FL_OVERRIDE -> override * Renaming ..._type to ...::prototype * Splitting Widget Panel into multiple files. * Moved callback code into widget panel file. * Cleaning up Fluid_Image -> Image_asset * Moving Fd_Snap_Action into new namespace fld::app::Snap_Action etc. * Moved mergeback into proj folder. * `enum ID` is now `enum class Type`.
2025-03-16Fix font termination bug from 2e1730d2f0f1 (#1221)Albrecht Schlosser
See also #1223, and thanks to Gonzalo for finding it.
2025-03-16Remove libfltk_cairo (fltk::cairo)Albrecht Schlosser
This library is no longer needed and was "empty" for backwards compatibility since FLTK 1.4.0.
2025-03-15Fix potential buffer overflow on Windows when loading fonts (#1221)Albrecht Schlosser
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.
2025-03-14Wayland: simplify handling of tall menu windowsManoloFLTK
2025-03-13CMake: improve setting C++ standard and configuration summaryAlbrecht Schlosser
CMake/fl_add_library.cmake: set target_compile_features(.. cxx_std_NN) which is inherited by consumers of the library. This prevents CMake user projects from failing if they would otherwise compile with an older C++ standard. CMake/fl_debug_var.cmake: add INTERFACE_COMPILE_FEATURES to fl_debug_target() CMake/fl_summary.cmake: update summary format for longer variable names CMakeLists.txt: - check CMAKE_CXX_STANDARD given by the user (commandline) and set C++ standard related CMake variables in the CMake cache. The latter is experimental: setting in the cache may be reverted. - add C++ standard related info to configure summary.
2025-03-13Improve support of screen addition/removal while FLTK runsManoloFLTK
2025-03-12Restore support of the sway compositor destroyed by 9b5d40aManoloFLTK
2025-03-12Under KDE V6 and Wayland, handling of taller-than-display menu windows fails ↵ManoloFLTK
(#1216)
2025-03-11Fix "Wayland: Huge menu hiding unexpectedly when moving a mouse (#1115)ManoloFLTK
This commit also computes work-area size for single-display settings.
2025-03-11CI for Wayland: replace libgtk-3-dev by libdecor-0-dev libxfixes-dev ↵ManoloFLTK
libxcursor-dev libxinerama-dev
2025-03-10Update README.md for FLTK 1.5Albrecht Schlosser
This is the main README file on GitHub. It is similar to README.txt but doesn't contain every detail to keep it somewhat shorter but still informative. The "badges" at the end show details about GitHub Actions (CI).
2025-03-10Fix fluid documentation generationAlbrecht Schlosser
std::string doesn't allow nullptr as input string
2025-03-10More (mostly) documentation updates for FLTK 1.5.0Albrecht Schlosser
All files: remove autoconf/configure related stuff, update links. - README.txt: describe prerequisites, provide generic instructions on how to use CMake to build FLTK - test/demo.cxx: remove code used for configure/make build - test/CMakeLists.txt: remove obsolete 'target_compile_definitions()'
2025-03-10Fix handling of menu widnows taller than their screenManoloFLTK
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.
2025-03-09Update bundled libdecor to last upstream version (6 mar 2025)ManoloFLTK
2025-03-08Update more README files for 1.5.0Albrecht Schlosser
2025-03-08CMake: set FLTK_OPTION_STD effectively "always on"Albrecht Schlosser
Temporarily done by setting the internal variable FLTK_USE_STD to 1. This affects FL/fl_config.h where FLTK_USE_STD will always be 1. Source code that checks this variable should be fixed soon.
2025-03-08Update .gitignore: remove configure stuffAlbrecht Schlosser
2025-03-08Update README and configure related stuff for 1.5.0Albrecht Schlosser
- remove configure stuff from more README files - move documentation/README.txt to README.documentation.txt
2025-03-08Add Fl_Darwin_System_Driver::filename_relative()ManoloFLTK
This removes the last instance in FLTK of use of #if __APPLE__ instead of the driver mechanism.
2025-03-08Update two README files for 1.5.0Albrecht Schlosser
- remove configure related stuff - improve documentation in these files
2025-03-08Remove warning sent by Doxygen about too many #endifManoloFLTK
2025-03-08Remove 'configure' from README's and sources (partially)Albrecht Schlosser
More to come...
2025-03-08Fluid: one small fix.Matthias Melcher
2025-03-08Fluid: last incremental chage, restructuringMatthias Melcher
2025-03-08Fluid: last incremental change: restructuringMatthias Melcher
2025-03-07Update GitLab CI for FLTK 1.5.0Albrecht Schlosser
- remove autotools build (build-autotools) - build documentation with `cmake`, not `make` To do: build fluid docs
2025-03-07Making fl_filename_... public for std::string.Matthias Melcher
New functions append "_str" to the function name to avoid ambiguities when calling them. So 'char *fl_filename_name(const char *)' becomes 'std::string fl_filename_name_str(const std::string &)'
2025-03-07Cleaning up widget browser, renamed to Node_Browser.Matthias Melcher
2025-03-07Fluid: Rebuilding most of the widget directory.Matthias Melcher
One file per logical unit. Namespaces. Non-static data member initializers to never get an uninitialized field again.
2025-03-07Remove platform-specific code from file cp936ext.hManoloFLTK
2025-03-07Fixes for icon path and Windows includes.Matthias Melcher
2025-03-07Restructuring Fluid source files.Matthias Melcher
2025-03-07Improve setting minimal compiler standard (C++11)Albrecht Schlosser
... so the user can override all settings. This may need more tweaks in the future.
2025-03-07Fixing error where std::string could be assigned NULL'Matthias Melcher
2025-03-07Fix "fltk autotools build does not link against libXft" (#1202)ManoloFLTK
libXft was erroneously present in the link command when using Pango and Cairo. This is fixed by disconnecting the GUI scaling code from use of Xft. This commit also makes sure that when Wayland is used, pkg-config is available on the build machine. This allows to remove from file CMake/options.cmake code that was labelled with "FIXME".
2025-03-07Removes the remaining references to Fl_String.Matthias Melcher
Still to do: rename fl_filename... to fl_filename..._str and introduce into core library.
2025-03-07Fixing a couple of warnings.Matthias Melcher
2025-03-07One more FL_String::apend fix,Matthias Melcher
2025-03-07Replce Fl_String in Fluid with std::string.Matthias Melcher
Also fix for Linux.
2025-03-07Fl_String is now just an alias for std::string.Matthias Melcher
All mentions of Fl_String will be replaced with std::string and the Fl_String implementation will be removed.
2025-03-06Define FL_OVERRIDE unconditionally as 'override'Albrecht Schlosser
FLTK 1.5 requires at least C++11, hence we can always use 'override'. To do: the FL_OVERRIDE macro can be replaced by 'override' everywhere in the FLTK code. There are more than 2400 occurrences and this would be a large commit. Therefore it's not done right now... Note: user code may continue to use FL_OVERRIDE.
2025-03-06Fl_Group: convert array of children to std::vectorAlbrecht Schlosser
Note: this is only a hidden implementation detail: all concerned variables are private, and the code is simplified (less error prone). Size of Fl_Group on 64-bit Linux: 168 -> 176 Bytes (+8 Bytes). test/group.cxx: test for Fl_Group::{add, insert, remove} etc.
2025-03-06CMake/CI: Switch CXX standard to C++11 for all buildsAlbrecht Schlosser
Note: current minimum for future 1.5.0 is C++11, this may be raised after further discussion.
2025-03-06Add new CHANGES.txt for FLTK 1.5Albrecht Schlosser