|
fpGUI v2.0.1 is available
I'm glad to announce the v2.0.1 release of fpGUI.
Source Code
from SourceForge:
git clone git://git.code.sf.net/p/fpgui/code fpgui
from GitHub:
git clone git://github.com/graemeg/fpGUI.git
or
git clone https://github.com/graemeg/fpGUI.git
For more details, please visit the fpGUI home page:
http://fpgui.sourceforge.net
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
Feedback, bug reports, and questions are welcome as always.
I mostly monitor the GitHub bugtracker and the fpGUI support
newsgroup - see website for details.
For more details, please visit the fpGUI home page:
http://fpgui.sourceforge.net
|