Basic X11 backend for druid-shell. (#599)
@crsaracco has implemented basic support to run druid on bare-metal X11!
While still incomplete this lays the foundation for running druid on Linux without relying on GTK.
Mostly complete Wasm backend for druid-shell. (#759)
@elrnv continued the work of @tedsta and implemented a mostly complete Wasm backend and enabled all druid examples to run in the browser.
While some features like the clipboard, menus or file dialogs are not yet available, all fundamental features are there.
Using Core Graphics on macOS. (#905)
@cmyr continued the work of @jrmuizel and implemented Core Graphics support for piet in piet#176.
Those changes made it into druid via #905. This means that druid no longer requires cairo on macOS and uses Core Graphics instead.
TextBox
can receiveEditAction
commands. (#814 by @cmyr)Split::min_splitter_area(f64)
to add padding around the splitter bar. (#738 by @xStrom)- Published
druid::text
module. (#816 by @cmyr) InternalEvent::MouseLeave
signalling the cursor left the window. (#821 by @teddemunnik)children_changed
now always includes layout and paint request. (#839 by @xStrom)UpdateCtx::submit_command
. (#855 by @cmyr)request_paint_rect
for partial invalidation. (#817 by @jneem)- Window title can be any
LabelText
(such as a simpleString
). (#869 by @cmyr) Label::with_font
andset_font
. (#785 by @thecodewarrior)InternalEvent::RouteTimer
to route timer events. (#831 by @sjoshid)MouseEvent
now has afocus
field which istrue
with window focusing left clicks on macOS. (#842 by @xStrom)MouseButtons
toMouseEvent
to track which buttons are being held down during an event. (#843 by @xStrom)Env
andKey
gained methods for inspecting anEnv
at runtime (#880 by @Zarenor)UpdateCtx::request_timer
andUpdateCtx::request_anim_frame
. (#898 by @finnerale)LifeCycleCtx::request_timer
. (#954 by @xStrom)scale
method toWinHandler
. (#904 by @xStrom)WinHandler::scale
method to inform of scale changes. (#904 by @xStrom)UpdateCtx::size
andLifeCycleCtx::size
. (#917 by @jneem)WidgetExt::debug_widget_id
, for displaying widget ids on hover. (#876 by @cmyr)im
feature, withData
support for theim
crate collections. (#924 by @cmyr)im::Vector
support for theList
widget. (#940 by @xStrom)LifeCycle::Size
event to inform widgets that their size changed. (#953 by @xStrom)Button::dynamic
constructor. (#963 by @totsteps)
- Renamed
Split
constructors toSplit::rows
andcolumns
. (#738 by @xStrom) Split::splitter_size
no longer includes padding. (#738 by @xStrom)- Renamed
Event::MouseMoved
toMouseMove
. (#825 by @teddemunnik) has_focus
no longer returns false positives. (#819 by @xStrom)Event::Internal(InternalEvent)
bundles all internal events. (#833 by @xStrom)WidgetPod::set_layout_rect
now requiresLayoutCtx
, data andEnv
. (#841 by @xStrom)request_timer
usesDuration
instead ofInstant
. (#847 by @finnerale)- Global
Application
associated functions are instance methods instead, e.g.Application::global().quit()
instead of the oldApplication::quit()
. (#763 by @xStrom) - Timer events will only be delivered to the widgets that requested them. (#831 by @sjoshid)
Event::Wheel
now contains aMouseEvent
structure. (#895 by @teddemunnik)- The
WindowHandle::get_dpi
method got replaced byWindowHandle::get_scale
. (#904 by @xStrom) - The
WinHandler::size
method now gets aSize
in display points. (#904 by @xStrom) AppDelegate::command
now receives aTarget
instead of a&Target
. (#909 by @xStrom)SHOW_WINDOW
andCLOSE_WINDOW
commands now only useTarget
to determine the affected window. (#928 by @finnerale)- Replaced
NEW_WINDOW
,SET_MENU
andSHOW_CONTEXT_MENU
commands with methods onEventCtx
andDelegateCtx
. (#931 by @finnerale) - Replaced
Command::one_shot
and::take_object
with aSingleUse
payload wrapper type. (#959 by @finnerale)
- Nothing
- The optional GTK feature for non-Linux platforms. (#611 by @pyroxymat)
- GTK: Use the system locale. (#798 by @finnerale)
- GTK: Actually close windows. (#797 by @finnerale)
- Windows: Respect the minimum window size. (#727 by @teddemunnik)
- Windows: Respect resizability. (#712 by @teddemunnik)
Event::HotChanged(false)
will be emitted when the cursor leaves the window. (#821 by @teddemunnik)- Windows: Capture mouse for drag actions. (#695 by @teddemunnik)
- Start focus cycling from non-registered-for-focus widgets. (#819 by @xStrom)
- Propagate
Event::FocusChanged
to focus gaining widgets as well. (#819 by @xStrom) - GTK: Prevent crashing on pop-ups. (#837 by @finnerale)
- Keep hot state consistent with mouse position. (#841 by @xStrom)
- Open file menu item works again. (#851 by @kindlychung)
- Supply correct
LifeCycleCtx
toEvent::FocusChanged
. (#878 by @cmyr) - Windows: Terminate app when all windows have closed. (#763 by @xStrom)
- macOS:
Application::quit
now quits the run loop instead of killing the process. (#763 by @xStrom) - macOS/GTK/web:
MouseButton::X1
andMouseButton::X2
clicks are now recognized. (#843 by @xStrom) - GTK: Support disabled menu items. (#897 by @jneem)
- X11: Support individual window closing. (#900 by @xStrom)
- X11: Support
Application::quit
. (#900 by @xStrom) - GTK: Support file filters in open/save dialogs. (#903 by @jneem)
- GTK: Support DPI values other than 96. (#904 by @xStrom)
- Windows: Removed flashes of white background at the edge of the window when resizing. (#915 by @xStrom)
- Windows: Reduced chance of white flash when opening a new window. (#916 by @xStrom)
- X11: Support key and mouse button state. (#920 by @jneem)
- Routing
LifeCycle::FocusChanged
to descendant widgets. (#925 by @yrns) - Built-in open and save menu items now show the correct label and submit the right commands. (#930 by @finnerale)
- Focus request handling is now predictable with the last request overriding earlier ones. (#948 by @xStrom)
- Wheel events now properly update hot state. (#951 by @xStrom)
- X11: Support mouse scrolling. (#961 by @jneem)
- Improved
Split
accuracy. (#738 by @xStrom) - Built-in widgets no longer stroke outside their
paint_rect
. (#861 by @jneem) Switch
toggles with animation when its data changes externally. (#898 by @finnerale)- Render progress bar correctly. (#949 by @scholtzan)
- Reduce the flashing in ext_event and identity examples. (#782 by @futurepaul)
- Added example and usage hints to
Env
. (#796 by @finnerale) - Added documentation about the usage of bloom filters. (#818 by @xStrom)
- Added Book chapters about
Painter
andController
. (#832 by @cmyr) - Added hot glow option to multiwin example. (#845 by @xStrom)
- Added new example for blocking functions. (#840 by @mastfissh)
- Added a changelog containing development since the 0.5 release. (#889 by @finnerale)
- Removed references to cairo on macOS. (#943 by @xStrom)
- Updated screenshots in
README.md
. (#967 by @xStrom)
- Replaced
#[macro_use]
with normaluse
. (#808 by @totsteps) - Enabled Clippy checks for all targets. (#850 by @xStrom)
- Added rendering tests. (#784 by @fishrockz)
- Revamped CI testing to optimize coverage and speed. (#857 by @xStrom)
- GTK: Refactored
Application
to use the new structure. (#892 by @xStrom) - X11: Refactored
Application
to use the new structure. (#894 by @xStrom) - X11: Refactored
Window
to support some reentrancy and invalidation. (#894 by @xStrom) - Refactored DPI scaling. (#904 by @xStrom)
- Added docs generation testing for all features. (#942 by @xStrom)
- Renamed
BaseState
toWidgetState
(#969 by @cmyr)
- There are two new projects using druid:
- Kondo Save disk space by cleaning unneeded files from software projects.
- jack-mixer A jack client that provides mixing, levels and a 3-band eq.
0.5.0 - 2020-04-01
Last release without a changelog :(