CHANGES IN FLTK 1.3.9                                   RELEASED: Dec 09 2023

FLTK 1.3.9 is a maintenance release with some fixes and enhancements.

Highlights in this release:

  - Support macOS up to macOS 14 "Sonoma".
  - Update bundled libraries to current versions (see below).
  - Introduce bundled image library "prefixing" to avoid conflicts
    with system libraries.
  - New CMake option FLTK_MSVC_RUNTIME_DLL to select Visual Studio
    Runtime version: DLL (/MDx) or static (/MTx), see README.CMake.txt


Bundled library versions (see also README.bundled-libs.txt):

    Library       Version            Release date
    ---------------------------------------------
    jpeg          jpeg-9e            2022-01-16
    png           libpng-1.6.40      2023-06-21
    zlib          zlib-1.3           2023-08-18


Details:

  Albrecht Schlosser:
    Backport X11 INCR protocol fixes from 1.4.0 (issue #451)
    X11: Suppress compiler warnings when using gcc or clang
    Fix crash if a program exits before it opens a window (STR 3484).
    Fix compilation error with current Visual Studio 2022
    Windows: #define WIN32 if not defined by user
    Backport warning fixes from 1.4.0 in src/fl_draw.cxx (#693)
    Fix compiler warning as pointed out in PR #693
    Fix another compiler warning (#693)
    Remove unused variable, fix "type issue" (#445, part 2)
    Fix stack buffer overflow found by address sanitizer
    Fix "gtk+ rendering" (GitHub Issue #443)
    Fix doxygen warnings
    Bump version numbers, prepare release 1.3.9
    Fix several compiler warnings
    Update bundled image libraries and zlib to current versions
    Update README, README.CMake.txt, and some support files
    Fix compiler warnings: backported from 1.4 (git 'master')
    CMake/MSVC: remove confusing recommendation to rerun CMake
    Documentation: remove dark color on title page
    Raise CMake minimum required version to 3.15 and more

  ManoloFLTK:
    macOS platform: Issue #325 "Disabling IM disables Greek and Cyrillic layouts"
    Fix fullscreen window level corner cases on macOS
    Fix issue #373 apparent with macOS platform and SDK ≤ 10.13
    Issue #452: Fl::get_font_name failure on OS-X.
    Issue #454: crash in Fl::get_font_name().
    Issue #469: Fl_Sys_Menu_Bar menu item shortcuts using Esc or Tab don't work on Mac
    Fix "Focus is lost leaving full screen on macOS 13" (#608)
    Add support of macOS Ventura 13.0 and macOS Sonoma 14.0
    macOS: remove configure option --enable-x11 and CMake OPTION_APPLE_X11;
      this functionality remains in FLTK 1.4.
    configure.ac: make sure local-png and local-zlib always run together
    Remove the -mwindows argument from CFLAGS and CXXFLAGS

Matthias Melcher:
    Issue #188: Fix reference counts and search for Fl_Shared_Image original

  YX:
    Fix IME problem (issue #270)


CHANGES IN FLTK 1.3.8                                   RELEASED: Nov 20 2021

FLTK 1.3.8 is a maintenance release with some fixes and enhancements.

Details:

  Albrecht Schlosser:
    Make "FLTK_CONSOLIDATE_MOTION" user-definable (issue #76)
    Fix compiler warnings (backported from 1.4)
    Add new dialog fl_choice_n() with extended return values (#282)

  ManoloFLTK:
    Account for deprecation of [NSBitmapImageRep initWithFocusedViewRect:]
      in macOS 10.14
    macOS: fix fullscreen window when other windows were created before
    Fix issue #287: "FLTK 1.3.6 doesn't handle fullscreen on macOS"
    Fix issue #288: "FLTK 1.3.6+ doesn't notify window movement on macOS"
    Fix issue #279: "HiDpi issue on macOS with retina display"
    macOS: Allow building with non-Apple compiler that may not support blocks


CHANGES IN FLTK 1.3.7                                   RELEASED: Jul 25 2021

FLTK 1.3.7 is a maintenance release for macOS only. It fixes one
regression introduced in FLTK 1.3.6 and two long standing timer
issues on macOS.

Other platforms than macOS are not concerned.

Changes:

  Avoid premature FL_RELEASE event at start of drag-n-drop operation
  Fix a timer inconsistency and prevent a crash
  Fl::add_timeout() must always create a new timer (#248)



CHANGES IN FLTK 1.3.6                                   RELEASED: May 15 2021

There have been no changes since FLTK 1.3.6rc2.


CHANGES IN FLTK 1.3.6rc2                                RELEASED: May 04 2021

FLTK 1.3.6rc2 fixes some minor issues of 1.3.6rc1, particularly macOS
bundle generation. It addresses an issue that bundles can't be executed
on macOS 11.3 Big Sur if built with configure/make after downloading
the release tarball because of the macOS "quarantine" feature.

Details:

  Albrecht Schlosser:
    Rename file 'VERSION' to 'fltk_version.dat' (#191)
    Fix version number in doxygen docs
    Fix build with Cairo for CMake < 3.13
    CMake: fix old (pre 3.13) link_directories() usage
    Enhance CMake build configuration summary
    Refactor macOS bundle generation to avoid "quarantine"
    Fix a new compiler warning


CHANGES IN FLTK 1.3.6rc1                                RELEASED: Apr 26 2021

FLTK 1.3.6 is a maintenance release with new macOS Big Sur support
and some bug fixes. macOS Big Sur is supported on both Intel and the
new Apple Silicon (M1) chips.

CMake support has been improved but is not yet "perfect". Documentation
has been enhanced, bundled image libraries have been updated to current
versions.

The following lists are subsets of all commits. References in '(...)'
are either STR numbers (STR xxxx) or GitHub Issues or Pull Requests
(#nnn).


Bug fixes and other improvements

  Albrecht Schlosser:
    Fix Fl::add_timeout() in draw() under Linux (STR 3188)
    X11: Fix X Input Methods (XIM) (STR 3502, 3192)
    Fix overly restrictive JPEG filter (#81)
    Fix DND in read-only Fl_Input (Fl_Output) (#113)
    Fix offscreen drawing under X11 (STR 3384)
    Fix potential fluid crashes (STR 3420) + memory leak
    Fix X11 copy-paste and drag-and-drop target selection (#182)
    Fix CMake install procedure (#212)
    Avoid "Bogus FL_MOVE/FL_DRAG events" (#76)
    CMake: Document FLTKConfig.cmake and set FLTK_INCLUDE_DIR

  Greg Ercolano:
    Fix issue92, added -d debug flag to fluid (#92)
    Merge pull request #176 from ComputerNerd/errmsg-fix-13

  ManoloFLTK:
    X11: add support for copy+paste of image within one app
    Windows: add bitmap version of graphics when copying to clipboard
    Fix use of Xrender extension with old, 16-bit framebuffers.
    Fix for Fl_Native_File_Chooser under macOS 10.15 Catalina and ...
    Restore macOS capacity to turn window fullscreen encompassing several screens.
    Improve Fl_Copy_Surface under macOS
    Set OPTION_USE_SYSTEM_LIBPNG/JPEG off under macOS by default
    Have Fl_Pack::draw() call Fl_Group::init_sizes() on its parent group.
    CMake support of the Darwin+XQuartz test platform
    Add support of macOS "Big Sur" 11.0
    Fix when building with SDK 10.15 and running with 11.0 Big Sur
    Backport fix for issue #185 "Shared Image reload() loses initial dimensions" from branch 1.4
    Fix fl_endpoints() for macOS platform that was not effective.
    Fix stack corruption when loading GIF (pull request #200)
    Restore ./configure --enable-x11 on macOS
    Fix crash when terminating any macOS app by cmd-Q

  OKAMURA, Yasunobu:
    Fix JIS Keyboard dead keys


CHANGES IN FLTK 1.3.5                            RELEASED: Mar 03 2019

  Bug fixes and other improvements

  - Updated CHANGES for release, removed one wrong entry


CHANGES IN FLTK 1.3.5rc2                         RELEASED: Feb 17 2019

  Bug fixes and other improvements

  - Fix Xcode FLTK project for use under macOS 10.14


CHANGES IN FLTK 1.3.5rc1                         RELEASED: Feb 11 2019

  New features and enhancements (highlights)

  - Add support for macOS 10.13 "High Sierra" and 10.14 "Mojave".
  - Add FL/platform.H for compatibility with FLTK 1.4 and higher.
  - Improve OpenGL(3+) support.
  - Improve Cairo support and (CMake) Cairo detection.

  Bug fixes and other improvements

  - Fix for STR 3473 (and its duplicate STR 3507) to restore configure-based
    builds on recent Linux/Unix distributions where the freetype-config
    command has been replaced by pkg-config.
  - Fix Fl_Tree::insert() with pos out ouf range (issue #18).
  - Fix Fl_GIF_Image Color Table handling (STR 3491).
  - Make sure not to access Fl_Menu_ widgets if the widget gets
    deleted while the menu (pulldown) is open (STR 3503).
  - Fix CMake build (fluid) on case sensitive macOS file systems.
  - Windows/OpenGL: improve pixel format detection (STR 3119).
  - Add support for macOS 10.14 "Mojave": all drawing to windows is done
    through "layer-backed views" when the app is linked to SDK 10.14.
  - MacOS platform: fix regression in macOS 10.13 where an unbundled app
    had its system menu bar unresponsive.
  - MacOS 10.10 platform: Fl_Window::fullscreen() and fullscreen_off()
    no longer call Fl_Window::hide() + Fl_Window::show().
    The new procedure essentially resizes the window, as done on
    the X11+EWMH and Windows platforms. This improves in particular
    the possibility to turn an Fl_Gl_Window fullscreen on and off.
  - MacOS platform: Support \r\n as end of line used by recent
    MS Office apps in clipboard.
  - Fix Fl_Text_Editor overstrike mode (STR 3463).
  - More consistent and optimized "gleam" scheme box drawing.
  - Fix a MinGW build error with new MinGW versions as of Feb 2018
    (undefined S_OK and __FD_ISSET), see STR 3454.
  - Windows/CMake: Add missing definition of WIN32 for Windows builds.
    This seems to be necessary for VS2017 and other compilers that
    don't #define WIN32, but FLTK relies on this preprocessor macro.
    Autoconf/configure and bundled IDE files #define WIN32 as well.
  - Fix illegal memory access after free when closing fluid (valgrind
    reports "Invalid read of size 4"), see also STR 3427.
  - Fix crash when closing fluid with Fl_Table (STR 3427).
  - Fix ignored buffer pre-allocation (requestedSize) in Fl_Text_Buffer.
    See fltk.general "Fl_Text_Buffer constructor bug" on Dec 5, 2016.
  - Fix Fl_Browser background and text color parsing (STR 3376).
  - Fix Windows CreateDC/DeleteDC mismatch (STR 3373).
  - Update bundled configure scripts config.guess and config.sub.
  - Fix configure --enable-cairo --enable-cairoext,
    see report in fltk.general:
    https://groups.google.com/forum/#!topic/fltkgeneral/x80qQ6wt0s4
  - Fix macOS timer implementation (STR 3387).
  - Fix drop-to-FLTK-widget under MSWindows when the desktop is
    rescaled (STR 3390).
  - Add support for macOS 10.13 "High Sierra". Subwindows don't
    move correctly under 10.13 without this fix.


CHANGES IN FLTK 1.3.4-1                          RELEASED: Nov 15 2016

  Bug fixes and other improvements

  - Fix Windows IDE solutions VisualC2008 and VisualC2010 to
    build properly if the FLTK source directory is located
    in a path that contains spaces.

  Note: this is a source tar file update that is only necessary
  if you build one of the above mentioned Visual Studio IDE
  solutions in a path with spaces. Nothing else changed, no
  documentation updates.


CHANGES IN FLTK 1.3.4                            RELEASED: Nov 11 2016

  Bug fixes and other improvements

  - Fix test/native-filechooser help display artifact (STR #3349).
  - MacOS: fix a crash when closing a fullscreen window.
  - Accept empty Fl_Pixmap in Fl_RGB_Image c'tor (STR #3348).
  - MacOS: fix drawing error when a window containing a hidden subwindow
    is changed to fullscreen (error visible with the tabs test program).
  - MacOS: fix possible crash when enabling fullscreen in test/scroll.
  - Add a snapshot of known STR's and RFE's (KNOWN_BUGS.html).

CHANGES IN FLTK 1.3.4rc3                         RELEASED: Oct 31 2016

  Bug fixes and other improvements

  - Fix string truncation in fluid (STR #2722 continued).
  - MacOS: fix a small problem where the Command-Quit menu hotkey
    may not work if Fl_Native_File_Chooser is used before any
    window is shown.


CHANGES IN FLTK 1.3.4rc2                         RELEASED: Oct 24 2016

  Bug fixes and other improvements

  - Make sure the "File Systems" menu item of Fl_File_Chooser
    lists "/" as the first mounted file system (Linux/Unix platform).
  - Added line numbers to fluid Edit -> Show Source Code viewer.
  - Improved fluid's template handling (STR #3335).


CHANGES IN FLTK 1.3.4rc1                         RELEASED: Oct 17 2016

  New features and extensions

  - Added support for Mac OS 10.11 "El Capitan" and 10.12 "Sierra".
  - 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(),
    and Fl_Copy_Surface::draw_decorated_window().
  - 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 customization of the application menu (Mac OS X only).
  - 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(). Constants can be used to determine the compiled
    FLTK version. Functions can be used to find the linked library version.
  - 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 allow for easier error detection when loading images (STR #2873).
  - Added line numbers to fluid's source code viewer for New -> 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 Fl_Shared_Image::scale(width, height) which gives a shared
    image its own drawing size, independently of the size of the
    underlying image. This improves image drawing on high resolution
    surfaces such as Laser printers, PDF files, and Apple retina displays.

  Other improvements

  - 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 now much smaller by using 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
    Xrender.
  - 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 unless
    you know what you're doing).
  - FLTK code and fluid-generated code can be used in static initializers.
  - Added light gray separator line to fluid's 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.
  - Fixed many compiler 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
    report issues.
  - Updated bundled zlib from 1.2.5 to 1.2.8.
  - Updated bundled libjpeg from jpeg-8c to jpeg-9a.


  Bug fixes

  - Fix potential crash when using keyboard navigation on Fl_Tabs
    widget without 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
    (STR #3206).
  - Fixed reading .pbm image files: 1 is now interpreted as black,
    and images whose width are 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
    FLTK 1.3.0.
  - 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 (MSWindows: BEX64 error) and problem with
    MSWindows environment variables "HOME"(MinGW) vs. "UserProfile"(DOS)
  - 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
    (STR #3143).
  - 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).


CHANGES IN FLTK 1.3.3                            RELEASED: Nov 03 2014

  New features and extensions

  - New class Fl_Copy_Surface allows copying graphical data to the
    clipboard in a cross-platform way (STR #3058).
  - Support for pasting graphical data from the clipboard to a widget.
  - New class Fl_Image_Surface allows drawing into an Fl_Image object.
  - Methods Fl::add_clipboard_notify() and Fl::remove_clipboard_notify()
    to get notifications whenever the clipboard changes (STR #2636).
  - New method Fl_Window::wait_for_expose() (STR #3124, STR #3129).
  - New bilinear scaling method for RGB images (STR #2869, STR #3062).
  - New method Fl_Widget::top_window() (STR #2948).
  - New method Fl_Widget::top_window_offset() (part of STR #2944).
  - New Fl_Tree_Item methods label_x(), label_y(), label_w(), label_h().
  - New methods Fl::enable_im() and Fl::disable_im() to enable/disable
    system Input Methods (IM).
  - New methods Fl::add_system_handler() and Fl::remove_system_handler()
    to intercept low level system events.
  - New FLTK scheme "gleam" (STR #2672).
  - New method Fl::is_scheme() to compare the current scheme name.
  - New method to set custom icons for windows (STR #2816),
    see Fl_Window::icon() for more info.
  - New method to set any custom cursor, based on a Fl_RGB_Image object.
    Also changed fallback cursors to use this method, so that fallback
    cursors are handled in a platform independent manner (STR #2660).
  - New ability to convert Fl_Pixmap to Fl_RGB_Image (STR #2659).
  - Support for full screen windows over multiple monitors.
  - New optional line numbers in Fl_Text_Display and options to control
    line numbers and word wrapping (on/off) in example test/editor.cxx.
  - On Linux/Unix, class Fl_Native_File_Chooser uses file dialogs from
    the Gnome environment (provided by the libgtk dynamic library) if
    available, and falls back to Fl_File_Chooser if not (STR #3088).
    Use option Fl::OPTION_FNFC_USES_GTK to enable/disable this feature.
  - New support for the Mac OS text input system that deals with character
    composition and input of languages with large character sets (e.g.
    Chinese and Japanese). This implementation has been reported to work
    well for Chinese. Superficial testing suggests it's also operational
    for Japanese. In-depth testing remains needed though.

  Other improvements

  - Many CMake improvements (e.g. STR #2962, 2977, 2994, 3045, 3055).
  - Some autoconf, configure improvements.
  - Removed 1024 bytes constraint in labels and browser lines (STR #2990).
  - Mac OS version of Fl_Native_File_Chooser: when using filters in a
    save file dialog, the output file extension gets changed when the
    user modifies the output file type.
  - Many Mac OS X improvements related to Fl_Sys_Menu_Bar.
  - Improved Mac OS X keyboard handling of special keys or combinations.
  - General Mac OS X improvements, incl. high resolution (Retina)
    displays, and support up to Mac OS X 10.10.
  - Documentation improvements and clarifications.
  - Printing support improvements, including GL windows.
  - Many improvements related to Fl_Tree (some of them only as ABI
    breaking features, see below).
  - Some static data has been made 'const' to improve memory usage
    with shared libraries.
  - Don't grab navkeys with modifiers (CTRL, ALT), as the application
    may want them (STR #3104).
  - Check compiler support of -fvisibility, -fvisibility-inlines-hidden,
    and use it, if available. Reduces shared library size.
  - Drag'n'drop behaves better now: if text is dropped in the widget it
    comes from, then it works like cut and paste.
  - Other improvements of DND handling when dragging text from other
    applications, e.g. Firefox and Thunderbird.
  - Windows message WM_QUIT is processed like SIGTERM, i.e. as a
    request to terminate the program.
  - Fluid no longer closes the code window when hitting ESC (STR #2997).
  - Improved Fl_Widget::when() handling in Fl_Tabs (STR #2939).
  - Improved support for more recent compilers (clang and gcc) that
    issue more warnings, and fixed some 32-/64-bit compilation issues.
  - Added method Fl_Window::clear_modal_states() to make it possible
    to remove the modal or non-modal state from a window (STR #3123).

  Bug fixes

  - Fixed word selection dragging in text input (STR #3014).
  - Fixed border padding for special cases (STR #3061, Windows only).
  - Fixed crash if Fl_Window::flush() called while window not shown()
    (STR #3028).
  - Fixed segfault in fl_set_fonts_xft.cxx when loading fonts not named
    as expected (STR #2976).
  - Fixed a memory leak in font loading/allocation (STR #3069).
  - Fixed minor memory leaks in handling/freeing of X11 objects.
  - Fixed OS X fl_read_image() and Fl_Paged_Device::print_window_part()
    when using a Retina display.
  - Fixed MinGW build if configure didn't find strcasecmp() (STR #2994).
  - Fixed access of protected member under Linux/Unix (STR #2903).
  - Fixed various Mac specific OpenGL issues (STR #2944)
  - Fixed PostScript printing with non-english locale (STR #3130).
  - Fixed a regression in Fl_File_Chooser since FLTK 1.1.8: the
    Enter key now selects the file again.
  - Fixed a bug in Fl_Native_File_Chooser (Windows) for some file name
    input filters (STR #3101).
  - Fixed out-of-bounds memory access in Fl_Text_Display (STR #2730).

1.3.3 ABI FEATURES

  To enable the following ABI features, put:
  #define FLTK_ABI_VERSION 10303
  ..at the top of your FL/Enumerations.H and rebuild FLTK and your app.

  - Added Fl_Window::shape(const Fl_Image*) to create arbitrarily-shaped
    windows
  - Made Fl_Help_View::handle() public and Fl_Help_View::draw() protected
    to enable inheritance and for consistency (STR #2834).
    Note: both methods were private.
  - Made Fl_Scroll::recalc_scrollbars() protected so that it can be used
    in derived widgets to calculate scrollbar visibility and positions.
  - Added Fl_Table::tab_cell_nav() for controlling Tab key navigation of table
  - Added Fl_Tree::get_selected_items(), returns the selected items as an array
  - Added Fl_Tree::item_draw_callback(), letting one define a custom draw
    function for Fl_Tree_Item's.
  - Fl_Tree: various related changes:
      o Added horizontal scrollbar
      o Separated draw() and tree size calculation
      o Added new public methods:
          > resize()           -- uses optimized dim calc, avoids tree recalc
          > next_item()        -- added parameters: direction, visibility
          > extend_selection() -- added parameters, improved algorithm
          > calc_dimensions()  -- calc tix/y/w/h, tox/y/w/h and scrollbars
          > calc_tree()        -- calc tree_w/tree_h
          > recalc_tree()      -- schedules calc_tree()
          > first_visible_item(), last_visible_item(), next_visible_item()
          > first_selected_item(), last_selected_item(), next_selected_item()
      o Added protected variables:
          > _tix/y/w/h      -- tree widget 'inner' dimension
          > _tox/y/w/h      -- tree widget 'outer' dimension
          > _tree_w,_tree_h -- entire tree hierarchy width/height
      o Deprecated:
          > item_clicked() -- use callback_item() instead
          > first_visible() -- use first_visible_item() instead
          > last_visible() -- use last_visible_item() instead

  - Fl_Tree_Item: various related changes:
      o Added Fl_Tree ptr: needed for auto-recalc when item modified directly
      o Added new methods tree(), recalc_tree()
      o Added new ctor that accepts Fl_Tree*
      o draw() parameters changed to include tree size calculations
      o Deprecated:
          > ctor using Fl_Tree_Prefs parameter (Fl_Tree* version better,
            and must be used for 1.3.3 ABI features to work correctly)
          > next_displayed() -- use next_visible() instead
          > prev_displayed() -- use prev_visible() instead
  - test/tree: added tests for newly added features

CHANGES IN FLTK 1.3.2                            RELEASED: Dec 12 2012

  - Removed unnecessary drawing calls (STR #2898)
  - Fixed regression in FLTK 1.3.1 for unbundled Mac OS FLTK applications
    that did not appear in dock nor have a menu bar (STR #2890).
  - Fl_Table::clear() now calls table->clear() for consistency. (STR #2889)
  - Fixed Fl_Scroll widget that fails under Mac OS X 10.8 and Retina
    display (STR #2887).
  - Prevents scrollbars from drawing when widget is sized too small
    to be visible (STR #2886).
  - Documented how to make a Mac OS X FLTK application launchable
    by dropping files on its icon.
  - Fixed a Mac-specific issue that appeared with OS 10.8 (Mountain Lion):
    long delay before opening when the application is started by dragging
    a file on the application icon.
  - Fixed use of PNG image from in-memory data (STR #2884).
  - Added static Fl_RGB_Image::max_size(size_t) to limit the maximum
    memory size allowed to RGB images (STR #2881).

CHANGES IN FLTK 1.3.1                            RELEASED: Nov 06 2012

  - Fixed utf_strncasecmp and utf_strcasecmp
  - Moved all inline constructors into source file to avoid bad DLLs
  - Fixed Fl_Widget::copy_label() and Fl_Window::copy_label() when
    called with the old label() (STR #2836)
  - Fixed Fl_Input_::maximum_size() documentation and replace() method
    to honor maximum_size() as number of allowed characters (STR #2747).
  - Fixed a potential crash if Fl_Double_Window::flush() was called
    before show()
  - Fixed regression (in FLTK 1.3.0) that could clear a radio
    button by using the keyboard (space or shortcut) (STR #2748)
  - Fixed fl_pie() drawing too small on X11 (STR #2703)
  - Fixed Fl_Menu issue with unusual menu flags (STR #2680)
  - Fixed Windows DLL import of fl_xid() (STR #2670)
  - Added Fl::screen_work_area() functions that compute the work area
    of a screen. These functions improve the positioning of menus.
    Changed Fl::x(), Fl::y(), Fl::w(), Fl::h() functions
    to return the origin and size of the work area of the main screen
    (STR #2695 + 2697)
  - Created the FL_SCREEN_CONFIGURATION_CHANGED event that is triggered
    when a screen is added, removed, moved or when resolution is changed
    (STR #2600)
  - Improved the description of page size and orientation by
    Fl_PostScript_File_Device.
  - Added support for horizontal wheel movement under X11 and Windows
    Vista and above (STR #2644).

1.3.1 ABI FEATURES
    (To enable the following ABI features, put: #define FLTK_ABI_VERSION 10301
    at the top of your FL/Enumerations.H and rebuild FLTK and your app)
  - Fl_Tree optimized to support large trees (eg. 100k items):
    Added _next_sibling and _prev_sibling to Fl_Tree_Item class,
    and support methods.


CHANGES IN FLTK 1.3.0                            RELEASED: Jun 16 2011

  New Features

  - Added UTF-8 Unicode support throughout FLTK and Fluid
  - Added Fl_Tree widget for hierarchical views
  - Added Fl_Table widget for widget layout
  - Added Fl_Native_Filechooser as a widget and global options
  - Added printing support (Fl_Printer class and friends) for native
    printing on Windows and Mac OS X, PostScript printing on X11
    with CUPS or lp, and PostScript file output on all platforms
  - Added basic Fl_Device abstraction layer for all drawing functions
  - Moved OS X code base to the more modern Cocoa toolkit thanks
    to the awesome work of Manolo Gouy (STR #2221)

  API and ABI Compatibility to FLTK 1.1.x

  - All strings are expected to be in UTF-8 Unicode encoding
  - Replaced Fl_Scroll::position(int,int) with scroll_to(int,int)
    to avoid overriding Fl_Widget::position(int,int) (STR #1303)
  - Although FLTK 1.3 maintains source code compatibility as good
    as possible, the binary interface changed considerably.
  - Updated the bundled libpng to v1.5.1 (released Feb  3, 2011)
  - Updated the bundled libjpeg to v8c   (released Jan 16, 2011)
  - Updated the bundled zlib to v1.2.5   (released Apr 19, 2010)

  API Enhancements and Changes

  - Changed font index to 32 bit
  - Changed font size to 32 bit
  - Changed widget coordinates to 32 bit
  - Corrected const methods of Fl_Text_{Buffer|Display|Selection}
    to be declared const, corrected an Fl_Text_Buffer attrib. typo
  - All draw() methods of widgets are now protected (STR #2142).
  - Changed Fl_Group::clip_children() to public (STR #2017)
  - Changed socket library to winsock2 (ws2_32.dll) instead of
    wsock32.dll for Windows. The dll is now loaded dynamically only
    if/when needed.
  - Changed hide() and show() methods. They are now virtual from
    Fl_Widget.
  - Added new label and image alignments (STR #2269)
  - Added global UI options (STR #2471)
  - Added class Fl_Widget_Tracker to simplify safe handling of widget
    deletion in callbacks. This is used in Fl_Widget::do_callback()
    to prevent accessing widgets after deletion in the callback.
  - Added sorting to Fl_Browser_ (STR #2113)
  - Added new method client_area() for easier positioning of children
    in Fl_Tabs (STR #2480)
  - Added interface to set color chooser mode (STR #2407)
  - Added Fl_Menu_::find_item by callback
  - Added loading jpeg images from memory
  - Added support for shortcuts for Fl_Input_, Fl_Value_Input, and
    Fl_Text_Display derived widgets (STR #1770)
  - Added Fl_Menu_ methods: insert(), find_index(), clear_submenu()
  - Hotspot behavior of fl_message() and other common dialogs is now
    optional (STR #2561).
  - Common dialogs like fl_message() and fl_ask() can now have a window
    title (STR #2562).

  IDE Support and Command Line Build Options

  - FLTK now supports Apple Xcode 3, MS VisualC 2008, and
    MS VisualC 2010. MS VisualC 6 support is maintained as a
    compatibility base for VisualC.net, etc. . FLTK continues
    to support configure/make and improved CMake build files.
  - Added step by step README's for MSWindows, OS X, and four
    Linux distros.
  - Added "ide" subdirectory for all IDE support files
  - Added template to generate new projects with Xcode.
  - Added --enable-cairo and --enable-cairoext  configure options.
  - redesigned CMake files (STR #2317).
  - The new configure option --enable-x11 (lowercase 'x') enables
    Cygwin builds under Windows (with --enable-cygwin) to use X11
    instead of GDI drawing (STR #2147, #2183) and is ignored otherwise.
  - Changed "fltk-config --post foo" to create an application
    bundle rather than attaching a resource fork.
  - Changed default for configure option --with-links for common
    misspellings on case sensitive file systems like Unix/Linux.
    The new default is --without-links; use --with-links on
    Unix/Linux only if you need the links (e.g. lowercase '.h')

  Fluid

  - Added argument-less constructor in Fluid Widget Class
  - Added jpeg support to Fluid image() element
  - Added binary data type to Fluid
  - Empty functions in Fluid no longer create an
    implementation (STR #2259)
  - Fixed internationalisation of menus using Fluid (STR #2246)
  - Fixed menu item counting issue in Fluid (STR #2322)
  - Fixed lost top item in Fluid's tree browser (STR #2233)
  - Fixed Fluid dependency on X11 (STR #2261)
  - Fixed Fluid textcolor output (STR #1992)
  - Fixed wrong default value of Fl_Spinner in Fluid (STR #1991)

  Documentation

  - Added documentation for event delivery (STR #1983)
  - Added Fl_Scroll::bbox() documentation (STR #1893)
  - Updated documentation for Fl_Input_
  - Updated Copyright dates to 2010 (STR #2036)
  - Updated mirror sites in documentation (STR #2220)
  - Fixed documentation for Fl_Progress (STR #2209)
  - Fixed documentation (added missing COMCTL32.LIB dependency)

  Other Improvements

  - Added drag'n'drop support for Fl_Text_*
  - Added visual feedback for button shortcuts (STR #2372)
  - Added callback when double-clicking file in a file chooser
    (STR #2346)
  - Added alternative Xft font names (STR #2215)
  - Added mouse!=0 check in Fl_Glut_Window::handle (STR #2381)
  - Added indexing to Fl_Preferences
  - Added OS X cursor control to Fl_Input (STR #2169)
  - Added menu shortcut alignment for OS X
  - Added drop box to UTF-8 test that will show the UTF-8 encoding
    for the first dropped character
  - Added flexible gap size for text buffer (STR #2046)
  - Added clarification to Fl_GL_Window mode function (STR #1945)
  - Added alternative text input awareness on OS X
  - Improved handling of composed keys in OS X 10.5 and up
  - Improved stability of fl_read_image (STR #2021)
  - Much faster fl_read_image() for Windows (STR #2387).
  - Improved support for faulty X11 clients (STR #2385)
  - Integrated default menu into Demo test app
  - Replaced _WIN32 symbols that had come with UTF-8 and the
    new Fl_Table widget with WIN32
  - Widgets now remove stale entries from the default callback
    queue when they are deleted (STR #2302)
  - Managing all Widget flags in a single location now (STR #2161)
  - File chooser preview now recognizes UTF-8 encoded
    text files (STR #2218)
  - Setting a default font for Xft (STR #2216)
  - Restructured the unittest application
  - Fl_Preferences.H now doesn't include windows.h any more
    (Windows only, STR #2173).
  - Fl_Window::draw() now doesn't reset its x/y-coordinates to 0
    anymore before drawing itself and its children.
  - Fl_Help_View handles HTML2 font color specification (STR #890)
  - Widgets now remove themselves from their parent group (if any),
    when destroyed (STR #1894)
  - Changed Fl_Group and Fl_Scroll to resize themselves before
    resizing their children (STR #2032)

  Bug Fixes

  - Fixed potential crash in fl_xid() on Linux (STR #2635)
  - Fixed keyboard navigation in fl_choice() (STR #2591)
  - Fixed alpha blending under X11 when line data size != 0 (STR #2606)
  - Fixed Fl_Tabs selection border drawing, if tabs are at the bottom
    of the widget (STR #2480)
  - Fixed Compiling with mingw-w64 (STR #2308).
  - Fixed crashes when detecting illegal UTF-8 sequences
    in Fl_Text_* widgets (STR #2348)
  - Fixed Fl_Text_Display Tabulator calculations (STR #2450)
  - Fixed file access code to use UTF-8 strings (STR #2440)
  - Fixed ARM Unicode cross compilation issue (STR #2432)
  - Fixed xclass support for Fl_Window (STR #2053)
  - Fixed Caps Lock handling in X11/XIM (STR #2366)
  - Fixed handling of missing fonts in Xft (STR #2355)
  - Fixed OpenGL hide/show issue in OS X (STR #2260)
  - Fixed File Chooser preview hang if a device was choosen
  - Fixed blinking of selection when the mouse was dragged
    outside of the Fl_Text_* widget
  - Fixed Unicode support for Fl_Text_* widgets
  - Fixed menu and shortcut handling (STR #2243)
  - Fixed fltk-config to give --libs on one line (STR #2408)
  - Fixed outside label redraw damage areas (STR #2436)
  - Fixed compile errors when HAVE_LIBJPEG was not defined
    (STR #2382)
  - Fixed special handling for ISO back-tab keycode (STR #2369)
  - Fixed static allocation in Fl_Tabs (STR #2370)
  - Fixed Fl_Widget::measure_label() to const (STR #2406)
  - Fixed unbalanced Windows OleInitialize/OleUnitialize calls
    when loading/unloading the FLTK dll (STR #2417)
  - Fixed X11/XDBE double buffering (STR #2152, #2197)
  - Fixed menu and tooltip window animation bug under X11 (compiz)
    by setting an appropriate window type (STR #2082)
  - Fixed max. fd calculation, if USE_POLL is enabled (STR #2324)
  - Fixed clipping for offscreen rendering (OSX, STR #2330)
  - Fixed possibility of wrong flags() in Fl_Window::iconlabel()
    (STR #2161)
  - Fixed Scrollbar events when max is less than min (STR #2283)
  - Fixed crash in test/Editor when freeing buffer
    too soon (STR #2294)
  - Fixed Fl_Preferences Cygwin wide character bug (STR #2164)
  - Fixed sorting in Fl_Browser - last item would not
    be sorted (STR #2300)
  - Fixed window levels in OS X Cocoa (STR #2316)
  - Fixed a buffer overflow in fl_utf8from_mb() (STR #2279)
  - Fixed a Windows GDI leak when testing alpha blending capabilities
  - Fixed crashes for recursive common dialogs (STR #1986, #2150)
  - Fixed a name conflict with new (VS 2008 Express) winsock2.h
    versions and another conflict that produced compile errors
    with VS 2008 Express (STR #2301)
  - Fixed all color related calls to Fl_Color type (STR #2208)
  - Fixed Fl_Choice contrast with light-on-dark settings (STR #2219)
  - Fixed X server "lock", if a modal dialog window is opened
    while a menu is active (STR #1986)
  - Fixed Windows compile bug with "#define USE_COLORMAP 0"
    (STR #2241)
  - Fixed glibc 2.10 compiler problems (Fedora 11 and others)
    with scandir() and strchr() (STR #2222)
  - Fixed OpenGL shared context handling (STR #2135)
  - Fixed gray-scale images with alpha channel (STR #2105)
  - Fixed unexpected shortcut behavior for Win32 (STR #2199)
  - Fixed fl_draw_image to obey the alpha channel (OS X only)
  - Fix for multiple popups, when dragging and calling fl_alert()
    and friends from the callback (STR #2159)
  - Fixed control key keycodes with modifiers on OS X
  - Fixed bad system menu handling in OS X (STR #2153)
  - Fixed File Input mouse pointer dragging (STR #2181)
  - Fixed 'del' keycode on OS X
  - Fixed OS X support for sending and receiving dnd data as UTF-8
  - Fixed Copy/Paste operations with UTF-8, UTF-16 support and
    fltk1.1 compatibility. (STR #2104, 2121).
  - Fixed fl_set_spot() for Windows (STR #2101)
  - Fixed callback that would not be called when shortcut was used
    with radio and toggle buttons in default FL_RELEASE mode.
  - Fixed a problem with TrackMouseEvent() (Windows only) that would
    generate wrong FL_LEAVE events with subwindows. TrackMouseEvent
    is now enabled by default (it was disabled for GNU compilers).
    It can be disabled by defining NO_TRACK_MOUSE.
    Improved test/subwindow.cxx (STR #2079)
  - Fixed menu position close to screen border (STR #2057)
  - Fixed adding an idle handler during a draw() call (STR #1950)
  - Fixed first modifier key event (STR #1952)
  - Fixed Fl_Scroll inside Fl_Scroll (STR #265)

  Removed Features

  - Removed Watcom compiler support because it was introduced in
    1.1.6 as a partial solution and never completed.
  - Removed an XForms compatibility "feature" that prevented the
    down array of Fl_Menu_Button from drawing (STR #2141).
  - Removed support for gcc 2.x (or older)
  - Removed redundant Fl_Group casts


CHANGES IN FLTK 1.1

  See CHANGES_1.1.txt


CHANGES IN FLTK 1.0

  See CHANGES_1.0.txt
