[ Return to Articles | Show Comments | Submit Comment ]
Article #1487: FLTK 1.3.4 Release Candidate 1 released on Oct 17, 2016
Created at 07:24 Oct 17, 2016 by AlbrechtS
Last modified at 07:50 Oct 17, 2016
Even though FLTK 1.3.4 does not fix all STRs, we decided to release
FLTK 1.3.4 as it contains many new features, bug fixes, and adaptations
to new compiler releases.
CHANGES IN FLTK 1.3.4
New features and extensions
- Added support for Mac OS 10.11 "El Capitan".
- Added full support of true subwindows to the Mac OS X platform.
Window nesting to any depth is possible. An Fl_Gl_Window window or
subwindow can contain Fl_Window's as subwindows.
- Fluid now supports external editors (STR#3213)
See: Edit -> GUI Settings -> Use external editor
- Added method Fl_Widget::is_label_copied().
- Added methods Fl_Copy_Surface::w(), Fl_Copy_Surface::h(),
- Added method Fl_Image_Surface::draw_decorated_window().
- Added method Fl_Shared_Image *Fl_Image_Surface::highres_image()
to draw into a high-resolution bitmap image (Mac OS X only).
- Added support for OpenGL version 3 and later.
- Added method Fl_Mac_App_Menu::custom_application_menu_items()
allowing to customize the application menu on the Mac OS X platform.
- Added 'fluid -u' command-line switch to upgrade fluid files in
batch mode. This option opens a fluid ('.fl') file and saves it
overwriting the old file with the current syntax and library version
number. Use with care (input file is overwritten unconditionally).
- Added FL_ZOOM_GESTURE gesture for OS X (only). Needs implementation
on other platforms.
- Added FL_ABI_VERSION, FL_API_VERSION, Fl::abi_version(), and
Fl::api_version(). The constants can be used to determine the
compiled FLTK version, whereas the functions can be used to
find the version of the linked library.
- Added Fl::abi_check() method to test if the runtime (linked)
ABI version is correct.
- Added Fl_Image::fail() to test if an image was loaded successfully
to make life easier when loading images (STR #2873).
- Added line numbers to fluid Edit -> Show Source Code
New configuration options (ABI version)
- FLTK's ABI version can now be configured with configure, CMake, or
by editing a supplied file when using the bundled IDE projects.
See documentation in README.abi-version.txt.
1.3.4 ABI FEATURES
- Added deactivated user icon to Fl_Tree.
- Added the Fl_Shared_Image::scale(width, height) function which gives
a shared image its own drawing size, independently of the size of the
underlying image. This improves much image drawing on high resolution
surfaces such as Laser printers, PDF files, or Apple retina displays.
- Configure now correctly sets HAVE_* variables only if both the
library and the header files were found. The configuration process
is aborted if Xft was requested explicitly with --enable-xft and
Xft was not found. The configuration summary now shows _found_
options as opposed to requested options.
- Improved drawing of rounded box (STR #2943).
- Full support of Apple 'retina' displays for which one drawing unit
corresponds to two pixels.
- The Mac OS X platform no longer uses the deprecated AGL
(Apple GL library) to draw OpenGL data. Instead, it uses standard
cocoa APIs. This allows FLTK to support drawing GL scenes at high
resolution when an Fl_Gl_Window is mapped to a 'retina' display.
- Added Fl_Gl_Window::pixel_w(), Fl_Gl_Window::pixel_h(), and
Fl_Gl_Window::pixels_per_unit() useful for high resolution OpenGL windows.
- fl_read_image() now captures all pixels within the rectangle
described by its arguments, whether they belong to a GL scene
or not (STR #3142). It also captures subwindows of GL windows.
- Fl::delete_widget() now hides the widget or window immediately
(i.e. when called) - only destruction is delayed as before.
- FLTK header files don't expose X11 definitions in user code any more
unless requested by including FL/x.H explicitly or implicitly.
- The PostScript code output when printing images under Linux/Unix
is quite smaller due to use of lossless compression techniques.
- The Linux/Unix printer dialog now uses BSD-style printing commands
(lpr/lpq) when SystemV-style commands (lp/lpstat) are not available.
- Drawing alpha-blended images under X11 is now accelerated with
- The font used for the FL_COURIER font family was changed on the Mac OS X
platform from 'Courier New' to 'Courier' because it was too thin.
- Text drawing on the Mac platform supports Unicode 'variation selectors'
in the range [0xFE00-0xFE0F].
- Added a Mac OS implementation of Fl_Window::wait_for_expose() that
became necessary with Mac OS 10.10 "Yosemite".
- Added the libfltk target to the Xcode project producing a static
version of the FLTK library (Mac OS X).
- Restored the possibility to call Fl::set_font() before main() starts.
- Allow using the --enable-x11 configure option on the Mac OS platform
which produces an X11 version of the FLTK library (don't use that
unless you know what you do).
- FLTK code and fluid-generated code can be used in static initializers.
- Added light gray separator line to fluid widget browser (STR #2997).
- Improved tooltip behavior for huge tooltips: remove flicker, support
key/mouse dismiss (STR #2650).
- Modifier key names displayed in shortcut labels can now be localized.
See documentation of fl_shortcut_label(). You can set modifier key
names for Ctrl, Alt, Shift, and Meta by assigning global string
pointers to your translated modifier key names.
- Many documentation improvements and fixes.
- Removed many compilation warnings (STR #2988).
- Fluid now generates code with less compiler warnings (STR #2813).
- Many CMake improvements and fixes. Note: CMake is mostly operating
now, but not yet recommended for production use. Please test and
- Updated bundled zlib from 1.2.5 to 1.2.8.
- Updated bundled libjpeg from jpeg-8c to jpeg-9a.
- Fix potential crash when using keyboard navigation on an Fl_Tabs
widget w/o children (STR #3333).
- Fix potential crash if Fl_Window::icon(NULL) was called to clear
(reset) a window icon. This is now legal and documented behavior.
The same applies to Fl_Window::default_icon().
- Allow widget callback to be NULL, i.e. no callback (STR #2835).
- Fixed Fl_Help_View buffer overflow (STR #3275).
- Fl_Browser now correctly adjusts its scrollbars when the default
text size is changed with textsize(int) (STR #3057).
- Fixed Fl_Text_Display/Fl_Text_Editor slow scrolling, line number
display, wrap mode "hiding" text behind scrollbars, and more
scrollbar handling (alignment) (STR #3272).
- Fixed valgrind warning (uninitialized variable) in Fl_Window.
Visible only with FLTK_ABI_VERSION >= 10303, since FLTK 1.3.3.
- Fixed Windows drag'n'drop not showing insert position if the drop
target is inside the same window or process (STR #3209).
- Fixed undefined reference building shared cairo library (STR #3276).
- Fixed Fl_Browser if text argument to some methods is NULL (STR #3269).
- Fixed missing image release in fluid (STR #2840).
- Fixed out-of-bounds memory access in fluid (STR #3263).
- Fixed trailing white space in fluid .fl files (STR #3239).
- Several box types were not drawn correctly when deactivated.
The background color for deactivated widgets is now correct:
fl_inactive(color()) (STR #2907).
- Fix inconsistent interpretation of ld() in image handling
(STR #3308). This is a minor issue since ld() is usually 0 or
w()*d(). Documentation has been fixed, and ld() handling is now
consistent in Fl_(RGB_)Image and fl_draw_image() and friends. See
documentation of Fl_Image and Fl_RGB_Image for more information.
- Fixed Fl_Pixmap (background) drawing to respect the clip region
- Reading of .pbm image files is fixed: 1 is now interpreted as
black, and images of width a multiple of 8 are correctly read.
Note: if you relied on the faulty behavior you may need to fix
your image files.
- Restored window background drawing, particularly the 'plastic'
scheme's background (STR #3059). This was a regression since
- Prevent sending (FL_SHORTCUT) events to inactive widgets (STR #3216).
- Fixed button label clipping (STR #3237).
- Fixed Fl_Menu_::item_pathname() handling of descending submenu
pointers (STR #3177).
- Fl_Text_Display: style buffer colors are no longer manipulated by
fl_contrast() for normal text drawing (fltk.coredev thread started
04/08/15, Subject: "RFC: Fl_Text_Display style buffer color weirdness")
- Fl_Tree::deactivate() now affects draw color of items (must have
ABI 1.3.3 or higher enabled). For icons to draw deactivated,
enable ABI 1.3.4. (test/tree has a 'deactivate tree' button)
- Fl_Tree::find_item() did not find items if the pathname contained
identical strings (STR #3234).
- Fixed possible bad border effect when a set of radio menu items
is located first in its menu (STR #3176): Fl_Menu_Item::set_only()
is deprecated and replaced by Fl_Menu_::set_only(Fl_Menu_item*).
- Restore the correct state of mouse buttons and keyboard modifier keys
after closing a file or printer dialog (STR #3221).
- Fix for deactivate colors issue with Fl_Text_Display/Editor (STR #3219).
- Fixed issue with MSWindows platform where the program kept running
after closing all its windows (STR #3165).
- Fix potential buffer overflow (Windows: BEX64 error) and home
directory (STR #3166).
- Fix issue with MSWindows platform where a window would decrease
in size after each close/open (STR #3167).
- Fix undefined reference XGetUtf8FontAndGlyph (STR #3191).
- Fix potential keyboard hangup (STR #3192).
- Fix for: .xbm images were not previewed (STR #3131).
- Fixed crash on Mac platform when resizing a not yet shown() Fl_Gl_Window.
- Fixed potential Windows GDI leak (STR #3254).
- Fixed Linux/Unix potential program hang when dialog pops up while
a menu is open (STR #3179).
- Fixed a crash when a Unix/Linux program calls take_focus() before any
window has been show()n.
- Fixed an error on the Mac platform when drawing to an Fl_Image_Surface
object without using the Fl_Image_Surface::draw() method.
- Fixed STR #3268 where a fullscreen window could become relocated
behind the menu bar and dock (Mac OS only).
- Fixed STR #3207: ^C not working when numlock or capslock is on.
- Fixed code editor in Fluid (STR #3184).
- Fixed a potential hangup of the Fl::awake() queue under Windows if
a window is resized or moved while the Fl::awake() message is sent
- Fixed a regression: restore the possibility to call
fl_draw_image(buf,X,Y,W,H,D,L) with negative D and/or L arguments.
- Fixed overflow in Fl_Valuator::precision(int) to 0...9 (STR #3280).
[ Listing ]
[ Submit Comment ]