===============
Version 3.31.90
===============

Changes in this release:

 • A number of improvements to DzlSuggestionEntry to act more like
   GtkEntryCompletion. It now uses pointer grabs while the popover
   is displayed.
 • Styling for the suggestion entry was tweaked to allow themes more
   control over styling.
 • DzlProgressMenuButton got a fix for improper gvalue accessor usage.

==============
Version 3.31.4
==============

Changes in the release:

 • Improvements to documentation
 • Improvements to suggestion entry resiliency
 • GIR fixes for DzlGraphModel
 • Fixes for ctrl+shift+d
 • Use GtkPopover for GMenuModel
 • Animation improvements
 • Various memory leaks were plugged
 • Additional Radio API was added
 • A new remove-file signal was added to the directory reaper. This is not
   efficient as it passes state to the main thread from a worker thread.
   It may be optimized in the future
 • Various performance improvements
 • File transfer progress callback improvements

==============
Version 3.31.1
==============

Changes in the release:

 • DzlPrefernces gained API to do simplified table layouts.
 • DzlMenuButton hides separators that are not needed.
 • Build requires gtk+-3.0 3.24.0.
 • Handle changes to fullscreen state by the window-manager.
 • Fixes for mouse tracking on fullscreen windows.
 • Align menu shortcuts to the right.
 • Fixes for shift-tab to move between widgets.
 • Add helper for shortcut tooltips.
 • Correctness fixes for listmodel filter.

==============
Version 3.30.0
==============

Changes in this release:

 • Fix for shift-modifier in keybindings, fixes some issues on
   AZERTY keyboards.
 • Added DzlListModelFilter for filtering GListModel using a wrapper
   model. This has been used in Sysprof for a while now.
 • DzlApplication will avoid setting the application app menu unless
   it has been set by the application/plugins.

===============
Version 3.29.92
===============

Changes in this release:

 • Fixes to the DzlGraphModel for va_list usage on various architectures.
 • State machine is a bit more defensive against improper input.
 • Fullscreen transitions now change the headerbar to be immediately
   visible after the transition.
 • A new DzlReadOnlyListModel wrapper has been added which allows
   developers to create an opaque wrapper around a GListModel.
 • bindir fixes when used as a subproject

===============
Version 3.29.91
===============

Changes in this release:

 • Build system improvements for subproject usage.
 • Many improvements to DzlSuggestionEntry to allow for more flexible usage
   that originally designed. You can now use cairo_surface_t for icons as well
   as GIcon. You can also now have more control over selection changes and
   activation of items from click or touch events.
 • DzlDockBin and DzlDockOverlay gained improved control over focus events.
 • Many leaks have been fixed, including those in unit tests.
 • You can run unit tests under ASAN so long as you have a minimal suppression
   file for some Gio module leaks.
 • Some memory safety improvements and safe-guards across the library.
 • Animations of zero-length have been improved. This fixes some long-standing
   issues for systems where shell/gtk animations were disabled.

==============
Version 3.29.4
==============

Changes in this release:

 • Add various missing object _new() functions
 • ApplicationWindow ref count fixes when doing fullscreen transitions
 • Preferences layout tweaks to allow for stackswitcher use
 • A new DzlDockItem::presented signal that can be used to track when
   a dock item has been displayed by its relative container.
 • Transient grab improvements with dock panels.
 • A correctness fix in the action muxer.
 • A leak was fixed in the bolding label's use of pango attributes.
 • DzlSuggestion gained new API for acquiring GIcon or cairo_surface_t

==============
Version 3.29.3
==============

Changes in this release:

 • Build reproducibility work
 • Version and ABI macros were added to enforce symbol visibility
 • Various fixes due to increased warnings in GCC
 • Preferences can now optionally use stackswitcher instead of stacksidebar
 • Animation uses g_signal_connect_object() to simplify lifecycle tracking
 • CPU graph model now re-uses FDs and parse buffers
 • Realtime graphs now try harder to detect when the widget is obscured to
   reduce overhead in that situation.
 • GCancellable chaining tries harder to release state struct.
 • A number of improvements to be more defensive.

==============
Version 3.29.1
==============

Changes in this release:

 • DzlListBox allows ellipsis control in GtkBuilder interfaces.
 • DzlThemeManager avoids creating CSS providers when no resources
   were found within the given path.
 • Various fixes to the shortcut engine to closer match gtk.
 • Various GObject Introspection fixes.

==============
Version 3.28.0
==============

Changes in this release:

 • DzlRecursiveFileMonitor will now translate symlink root directories
   up-front to increase the chance that the GFile you see will match
   GFile in other GIO based API. This fixes some issues in Builder on
   systems such as Fedora Atomic Workstation where home is a symlink.
 • dzl_g_date_time_format_for_display() now uses the new %OB format
   present in glib 3.56.

===============
Version 3.27.92
===============

Changes in this release:

 • Improvements to animation frame timings to more closely match
   upstream changes in Gtk.
 • DZL_DEFINE_ACTION_GROUP macro will now set initial action state.
 • ElasticBin will avoid animating when duration is 0.

===============
Version 3.27.91
===============

Changes in this release:

 • libdazzle now properly sets the default ABI visibility for symbols
   so that symbols without DZL_AVAILABLE_IN_* macros are not exported.
 • DzlTab now supports tooltips using the tab's title.
 • Various gtk-doc generation issues have been fixed.
 • DzlGraphModel now provides an accessor to get the column count.
 • Some fixes for pedantic compiler warnings.

===============
Version 3.27.90
===============

Changes in this release:

 • Further protections to ensure we don't follow symlinks in the
   directory reaper.
 • DzlSignalGroup now uses GWeakRef. Additionally, it allows objects
   to invalidate closures instead of doing weak-ref tracking. This
   should improve a number of situations.

==============
Version 3.27.5
==============

Changes in this release:

 • A memory leak in the fuzzy index builder was fixed.
 • DzlTab now properly sinks a variant floating ref.
 • Various memory leak fixes in DzlTree and associated objects.
 • The shortcut manager now properly activates mnemonics.
 • Signal group ties to be more flexible with re-entrancy situations.
 • DirectoryReaper and FileTransfer attempt to be more defensive against
   following through symlinks.

==============
Version 3.27.4
==============

Changes in this release:

 • DzlTree has gained a number of improvements for dynamically styling tree
   nodes.
 • DzlMultiPaned gained a helper to locate a widget at an X,Y coordinate.
 • Various memory leak fixes in shortcuts and unit tests.
 • DzlListBox allows setting the number of rows to recycle. This may improve
   performance in situations where the consuming API knows the maximum number
   of rows, saving on widget creation and style propagation costs.
 • A new cancellation chain helper that can be used until g_cancellable_chain()
   lands upstream. When that happens, this will wrap that API, or be removed
   in case it lands in 2.56.
 • DzlTree gained support for inserting a child at a specific position.
 • Fixes for API deprecations in Gdk.
 • Fixes for main thread assertions on Linux.

==============
Version 3.27.3
==============

Changes in this release:

 • A new DzlRecursiveFileMonitor for recursive file monitors. This is
   only guaranteed to use a single FD when inotify is used (ie: Linux).
 • Fixes for age comparison in directory reaper.
 • Improvements to legacy activation in shortcuts.
 • Avoid potential spinning in progress-menu-button.
 • DzlFileTransfer is a new high-level API to help in copying or moving
   directory trees. It is not as smart as libglnx, but it is simpler to
   use and we'd like to see this improve.
 • DzlTreeBuilder has broken ABI this cycle and gained padding to help
   us avoid breaking ABI in the future. Those who only use it from signals
   and dzl_tree_builder_new() are not effected by this alone.
 • DzlTreeBuilder has also added build-children signal so that it can
   disambiguate between building nodes (adding anscillary data) and
   creating children in a lazy tree. This does, unfortunately, break
   existing code as it needs to switch to using build-children.

==============
Version 3.27.2
==============

Changes in this release:

 • A performance improvement to CSS and resource loading by ensuring
   resource directory paths are suffixed with a /.
 • Use export macros instead of linker script to simplify ABI conformance
   on alternative platforms.
 • add missing dzl_preferences_view_new() symbol.
 • Various gobject introspection annotation fixes.
 • Use g_build_path() when appropriate.
 • Add dzl_state_machine_is_state() for checking the current state.

==============
Version 3.27.1
==============

 • actions: add DZL_DEFINE_ACTION_GROUP() for creating action groups

==============
Version 3.26.1
==============

Changes in this release:

 • icons: avoid thrashing the GtkIconTheme on startup
 • prefs: track destruction state of pref widgets
 • macros: add a few internally used macros to public API
 • trie: various alignment fixes for Win32 and Win64
 • tests: crib some test data for portable tests
 • file-chooser-entry: be lazy with dialog construction

==============
Version 3.26.0
==============

This is our first stable release! Thanks to everyone involved in making
that happen!

Changes in this release:

 • Fix tab/shift+tab to change focus when using shortcut manager.
 • Manually set marshaller and va marshallers on DzlTreeBuilder
   which helps slightly with performance of signal emission.
 • Various Mingw build fixes.

===============
Version 3.25.92
===============

Changes in this release:

 • Enforce GNU11 C standard when configuring project.
 • DzlApplicationWindow automatically queries the shortcut manager.
 • The shortcut manager now checks GtkApplication registered accelerators
   providing an improved migration strategy for applications.
 • Lifecycle tests were removed from the test-fuzzy-index as they were
   racy via delayed disposal of threaded workers. This should fix unit
   tests for various distributions on less common hardware.
 • Menu buttons now remove the proper section item when handling GMenuModel
   changes.
 • Our meson-based build system now checks if version-script is supported
   and only applies the ABI map in that case. We may consider switching to
   export macros in the future.
 • Counters are now disabled on Windows.
 • Various compiler pre-processor checks have been improved.
 • A fallback for strcasecmp() is included for Windows.
 • DzlSuggestion will now use intern'd strings for icon-names to help
   reduce the number of duplicate strings in memory.
 • Various CSS styling refinements.
 • DzlListBox fixed a lingering pointer to the cached row during disposal.
   This fixes a crash that would occur if GObjectClass.dispose() was called
   multiple times.

===============
Version 3.25.91
===============

Changes in this release:

 • DzlDirectoryReaper now properly removes recursive directories
 • DzlListStoreAdapter is a new GListModel->GtkTreeModel adapter
 • DzlSignalGroup had an overzealous assertion which was removed
   and corner case handled.
 • DzlShortcutTheme properly handles closure chain parse failure case
 • DzlShortcutManager can handle DzlShortcutEntry that are not static
   allocations.

===============
Version 3.25.90
===============

Changes in this release:

 • DzlSignalGroup and DzlBIndingGroup were made LGPLv2.1+ so they can be
   copied into projects that cannot link against libdazzle.
 • DzlDockBin got a number of bug fixes.
 • Various compilation fixes for less used compilers.
 • DzlTree gained support for "expanded icon names".
 • DzlTree has a new "always-expand" property to ensure it stays expanded.
 • DzlDockStack no longer requires homogeneous sized children.
 • DzlStackList transition animations have been tweaked to more closely
   reflect physical locality.
 • Calculated animation duration was sped up 1.5x.

==============
Version 3.25.5
==============

We are quickly releasing a followup to 3.25.4 to fix a number of bugs with
the shortcut engine that were found as Builder transitioned to it.

 • DzlShortcutManager is not in control of event delivery. This allows the
   capture/bubble phase to act as expected and still integrate with
   GtkBindingSet.
 • DzlSuggestionEntry now properly places the popover window when using the
   X11 backend.
 • Various license blurbs have been updated to reflect reality.

Thanks to everyone who was quick to report bugs.

==============
Version 3.25.4
==============

We are mid-development cycle for GNOME 3.26 and so as you can imagine, we are
busy adding the features we need to libdazzle. Given how early the project is,
the pace of development has been quite rapid.

 • Updated build system to make things easier to maintain.
 • Soname and libtool-like versioning has been added. Like GObject and Gtk,
   we don't intend on bumping this when we break ABI during development
   snapshots. Only in the stable series.
 • Consistent LGPL-2.1+ usage.
 • DzlJoinedMenu is a new GMenuModel implementation that allows you to
   concatenate multiple GMenuModel implementations. This can be useful
   in various plugin scenarios.
 • DzlMultiPaned has gone through more improvements. We know of a few more
   that need to be shaken out before 3.26, but things are stabilizing.
 • Utilities to proxy action groups between GtkWidgets.
 • WIN64 build fixes for DzlTrie.
 • Examples have been added for DzlApplication and the CPU graph.
 • Many theming improvements.
 • DzlDockBin now tries to unpin a panel when animating out. This can give
   the effect of smoother transitions where the cost of resizing the main
   window content is high (such as with textviews).
 • Utilities for insertion with GtkListStore have been added.
 • DzlPropertiesGroup is a new GActionGroup that can help simplify exposing
   groups of properties on a single object as a GActionGroup.
 • The DzlMenuMerger can now perform multi-phase sorting to increase the
   chances of ideal placement with before/after among multiple menu items.
 • A new DzlMenuButton has been added that has a consistent style for a few
   forms of MenuButton type scenarios. It can have icons, accelerators and
   we expect in the future to keep the accelerator in sync with the active
   shortcut theme. Some extended attributes with menus.ui are used.
 • DzlSuggestionEntry now supports a position function which can specify being
   relative to the window or to the entry widget. Various position functions
   are provided as a convenience.
 • The shortcut engine has gained support for CAPTURE/BUBBLE semantics.
 • The shortcut engine has gained support for specifying global shortcuts
   which can be activated outside the chain of focus.

We hope you enjoy using libdazzle!


==============
Version 3.25.3
==============

This is our first release of libdazzle. While we would love for a perfect first
release, we expect you'll find issues. So please help us get things stable as
we move towards GNOME 3.26.

Our focus is building a utility kit GNOME applications. If you want to see
practical examples of using Dazzle, we suggestion looking at the GNOME Builder
project which uses Dazzle extensively.
