Hi everyone,
Here is a small bugfix release. Thank you to everyone that tested
and reported bugs. Below is what's changed in this release:
v2.0.1 (2026-02-11)
- Bug Fixes* Fixed infinite recursion crash when default font fails to load on
distros with non-standard font paths (Arch, Void, Fedora). Raises
a clear EfpGUIException instead. (Fixes #143)
* Added /usr/share/fonts/ as a recursive font search path, covering
all Linux distro font directory layouts. Added ~/.local/share/fonts/
for XDG user fonts.
* Fixed ERangeError in DoDrawImagePart when the image rectangle is
fully clipped out of the visible area. (Fixes #121)
* Fixed Canvas.GetClipRect returning an empty rectangle when no
explicit clip rect was set. (Fixes #113)
* Fixed access violation in timer list when a timer destroys itself
during its own callback, or after Windows hibernation. (Fixes #17)
* Widened TfpgMsgParmUser.Param1/2/3 from Integer to PtrInt for
correct 64-bit window handle passing.
* Added missing extrafpc.cfg in hexviewer example folder.
* Fixed AggPas Win32 font engine compilation and rendering: added
proper ifdef splits for Win32 TrueType vs FreeType font engines,
fixed font size DPI scaling, and removed unnecessary freetype.dll
dependency when using the default Win32 font engine.
- Improvements* Timer architecture redesign:
- X11 message loop now uses the calculated timeout instead of a
hardcoded 10ms poll, reducing idle CPU wakeups
- GDI message loop replaced blocking GetMessage with
MsgWaitForMultipleObjects, enabling proper timeout support
- Removed redundant native Windows.SetTimer mechanism; timer
checking is now unified through the main loop
- All timer arithmetic switched from wall-clock time (TDateTime/Now)
to monotonic time (GetTickCount64/CLOCK_MONOTONIC), making timers
immune to NTP sync, DST changes, and system hibernation
* Normalized GDI clip rect storage to widget-local coordinates,
matching the X11 and Cocoa backends.
* About fpGUI dialog now shows the canvas backend type (AggPas or
Native) after the version number.
* Added 'freetype' build profile for PasBuild, allowing Windows
users to toggle between the Win32 TrueType and FreeType font
engines via: pasbuild compile -p windows,agg,freetype
https://github.com/graemeg/fpGUIPrevious release:
https://forum.lazarus.freepascal.org/index.php/topic,73438.0.html