x11: Workaround nvidia driver lacking DRI
feat(mouse area): add double click
mouse area: add double click
compositor: Add code to extract adapter from x11
refactor: Extract ids_from_dev from wayland specific code
wayland: Don't crash if libwayland isn't available
feat(sctk): support for overflow widget
sctk: Fixes for cursor icon
* With multiple windows, `SetCursor` is only sent for the focused
window. Fixing a flicker between icons when two windows are using
different cursors.
* If there is a drag surface, let that surface set the cursor. And not
any other.
* Set cursor on `enter`, and when switching between CSDs and app area.
Fixes https://github.com/pop-os/libcosmic/issues/533.
improv(sctk): per-surface cursor position tracking
feat(sctk): support ShowWindowMenu
Make text wrap configurable
fix(core): state order and handling of new trees
fix: settings.decorations enables SSD
refactor(sctk): convert window actions
fix: enable the tokio feature for accesskit_unix
fix: only try to connect to clipboard if on linux
iced_wgpu: don't query Wayland on macos
Update `window_clipboard`
sctk: Unmap subsurfaces instead of immediately destroying them
Destroying a surface is immediate, rather than synchronized with
commits.
This fixes a flickering behavior with drag and drop in
cosmic-workspaces.
sctk: Add alpha setting to `Subsurface` widget
sctk: Update `sctk`, `wayland-protocols`
Update for cosmic-text undefined buffer size
Adapt to cosmic-text undefined width change
fix: unset VK_LOADER_DRIVERS_DISABLE after enumeration
Allows applications to be launched on the NVIDIA GPU with Vulkan support
Adapt to new cosmic-text
wgpu: Fix wayland device id conversion
wgpu: Fix querying adapter, even if we already have one
wgpu: fix nvidia gpu powering up in hybrid setups
cargo fmt
fix: refactor dnd impl to support responsive widget
fix: update read and write methods so they don't recurse
fix(core): replace debug_assert in diff
fix: avoid with_borrow_mut
fix: better handling of state tree
This persists widget state associated with widgets assigned custom IDs even when the tree structure changes, but resets state if the custom ID is not found.
fix: emit Event::Resized to fix nav bar in cosmic-settings
fix(image): guess the image format before decoding
iced_wgpu: Query wayland for the device to use, if possible
sctk: Support `start_drag` with drags started from touch events
sctk: Add touch support
fix: update widnow-clipboard tag
fix: clean up dnd surfaces when a window is removed
Adjust to line ending needing to be specified as part of cosmic_text::BufferLine
sctk: Add support for drag-and-drop surface offsets
This adds an offset `Vector` as an argument to `on_drag`, and allows
passing an offset to `start_drag`.
Some applications using drag and drop want the top left corner of the
drag surface (as happens without an offset). But others want the drag
surface to be offset based on where the cursor is on the widget when
starting the drag. This can just be `-1 * offset`, but may be scaled if
the drag surface is a different size from the original widget.
fix(sctk): nested popup parent
feat(mouseare): mouse enter and exit
fix(tiny_skia): damage
fix(scrollable): filter scroll events in the wrong direction
sctk: Use empty input region for subsurfaces
This seems to work, and is a better way to deal with subsurface input if
there aren't any problems. This way, input events simply go to the
parent surface, so we don't have to deal with various edge cases related
to that. (Though for compositor-side issues, we still need to fix those
for other clients.)
This helps with an issue with drag-and-drop and subsurfaces on Smithay,
and a different issue on Kwin (in KDE 5.27, at least).
Send `DataSource` events to all surfaces
Previously these events are directed to the first surface, then removed
from `sctk_events`. Which is definitely not right.
slider & toggler roundness
Update window_clipboard to pop-dnd-4
fix(tiny-skia): non-simple border scaling
the issue can be seen with sharp corners when using the screenshot portal with scaling
Add read_primary/write_primary
chore: update tag
fix: translate offer positions in scrollable
fix(winit multi-window): handle exit_on_close request
fix(scrollable): pass child layout when calculating drag destinations
fix(container): id and set_id should use content
Clean up after lock surfaces are destroyed
Call unlock on session lock
chore: update tag
fixes for dnd
sctk: Fix handling of DnD with subsurfaces (#122)
Map subsurface to parent and add offset.
refactor: remove Sync bound for Message
fix: pass correct state and layout for container widgets
fix: docs
feat: update advertised drag destinations after rebuilding an interface
fix: color format & multi-window
fix: doc
feat: winit dnd
fix: ambiguous import
chore: reexport mime from window_clipboard
chore: use tag
clippy
feat: add actions and commands for new clipboard methods
cleanup docs
feat: custom mime types for Clipboard
sctk: Fix handling of layer surface `pointer_interactivity` (#115)
A null `region` represents an infinite region (the default). To set an
empty region, we need to create a `wl_region`.
fix(tiny_skia): disable shadows due to rendering glitch
fix(winit): add static lifetimes to multi-window application update
fix(winit): add static lifetimes to application update
Use `TypeId` to identify `subscription::Map`
(cherry picked from commit f39a5fd895)
fix(sctk): destroy drag icon and send event after cancel action
fix: clipboard cleanup
fix(sctk): clipboard dummy impl typo
refactor(sctk): optional clipboard
fix(sctk): broadcast events after update
when broadcasting events for no specific surface, it should be done after update so that the runtime subscription is current
fix(multi_window): enable drag resize
sctk: Map subsurface pointer events to parent surface, with offset
sctk_subsurface: Use two surfaces, handle button presses
Useful for testing pointer input to subsurfaces.
sctk: Add `subsurface_ids` mapping subsurface to parent and offset
sctk_subsurface_gst: NV12 surface suppport; disabled
Whether or not this works seems to depend on driver, or gstreamer
version...
Handle frame callbacks for subsurfaces, and `commit` parent surface
If the main surface is occluded completely by opaque subsurfaces, it may
not receive `frame` events. So we need to request frame events for all
subsurfaces as well.
Additionally, with "synchronized" subsurfaces, we need to `commit` the
parent surface for subsurface changes to take effect.
Fixes issues with subsurfaces updating slowly, or only when mouse moved
under some circumstances.
examples/sctk_subsurface_gst: Cache `BufferSource` in `BufferRef` qdata
Similar to `waylandsink`. Allows us to avoid creating a buffer source
(and ultimately `wl_buffer`) for every buffer swap.
sctk/subsurface: Cache `wl_buffer`s
Creating a new `wl_buffer` each frame seems to perform poorly. We can
instead keep a cache of `wl_buffer`s we have created from a
`BufferSource`.
sctk/subsurface: Avoid unnecessary subsurface commits if unchanged
feat(slider): add breakpoints
fix: autosize surface layout
Autosized surfaces perform the layout step to get the size and then again when building the interface, but sometimes the calculated size is not enough space when used as a bound, so we need to add a tiny amount to the calculated size. This also makes the event loop timeout duration configurable. Viewport physical size is calculated directly from the logical size now as well in iced-sctk to avoid inconsistencies that resulted from recalculating the logical size after using it to calculate the physical size.
fix(sctk): send close event instead of close requested when a window is closed
sctk: add command to set maximize state
Add `show_window_menu` action
Winit currently supports this only on Windows and Wayland.
This requests that a context menu is shown at the cursor position,
like the menu normally triggered by right clicking the title bar. This
is important for implementing client side decorations with Iced widgets.
Remove unnecessary redraw request
This was particularly visible on Redox where there is no vsync, but also
causes unnecessary redraws on Linux
chore: update accesskit
Disable broken rustdoc links
sctk: Add `Subsurface` widget (#79)
This adds a widget that attaches an shm or dma buffer to a subsurface,
scaled with `wp_viewporter`.
By exposing this as a widget, rather than as a type of window, it can be
positioned and scaled like any other iced widget. It provides an API
that's similar to an iced image.
The initial version of this just took a `wl_buffer`. But this makes
buffer re-use problematic. In particular, the docs for `wl_surface::attach`
note that `wl_buffer::release` events become unreliable if a buffer is
attached to multiple surfaces. And indicates that a client should create
multiple `wl_buffer` instances, or use `wp_linux_buffer_release`.
So we store information about the buffer, and create `wl_buffer`s as
needed. `SubsurfaceBuffer::new` also returns a future that's signaled
when all references are destroyed, both `wl_buffer`s and any instance of
the `SubsurfaceBuffer` that might still be used in the `view`.
So this seems like the best solution for now, within the
model-view-update architecture.
This has two examples: `sctk_subsurface`, showing a single-color shm
buffer, and `sctk_subsurface_gst`, which plays an h264 video to a
subsurface with vaapi decoding.
chore: use pop-os fork of winit
chore: unpin cosmic-text
Update wgpu to a commit that fixes use on Nvidia drivers
This can be tested with something like
`VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json cargo run -p tour
--features iced/wgpu`.
On Nvidia I'm seeing a flood of `Suboptimal present of frame` warnings.
So some improvement may still be needed here. But if it doesn't regress
behavior on other hardware, that seems like an improvement over
freezing.
fix(winit): pass text with modifiers in event
chore: update cosmic-text and glyphon
fix: distinguish between the key character and the utf8 of a key event
feat(wgpu): use alpha modes for compositing if available
chore: use updated softbuffer
fix: typo
fix: downgrade resvg
fix: core/serde
chore: remove default features
typo: add rev to glyphon
Update to cosmic-text refactor
Fix docs error
Add function to fill a Raw
Fixes for last commit
fix: broadcast surface events
dnd_listener: Fix behavior when there are multiple listeners (#87)
A `dnd_listener` widget shouldn't handle a DnD event when the dnd drag
isn't within the widget's bounds. So add a few more checks for this.
Enter/leave events generated by `DndOfferEvent::Motion` also don't
behave as one might expect, since the enter may occur before the leave
depending on the order it calls `on_event` on the widget. Not sure how
to address that, but cosmic-workspaces can just ignore the leave events
for now.
Otherwise, this seems to be working fine, after these changes.
chore: fix sctk multi-window dependency
cleanup: formatting and clippy
fix(example): sctk_drag id
fix: translate the wayland event position for content inside a scrollable
fix: set web-sys to =0.3.64
fix: clip mask checks
chore: use advanced text shaping for pick list
fix: dnd widget layout
fix: ambiguous palette import
chore: remove artifacts job
fix: CI tests
fix: add back the window id to the frames subscription
fix: tooltip children and diff
refactor: udpate gradient angles for slider
reexport limits
fix: editor and sctk_todos examples
cleanup: clippy
cleanup git workflows
chore: cleanup iced_widget
refactor
Update mod.rs
chore: update softbuffer
Hack to remove image blur
iced_core: feature for serde serialization of KeyCode
fix(wgpu): handle border_radius property with image raster
feat: add border radius to image rendering
feat: Add side mouse button events
cleanup: clippy fixes and formatting
Part of this is a refactor of the ID
cleanup: clippy and fmt
fix: test workflow
fix: add note in CHANGELOG
fix: clippy
refactor: restore default style of slider
feat: allow setting the width and height of a rule
fix: slider gradient angle
feat: gradient backgground for the slider rail
feat(mouse-area): added on_drag method
fix(widget): container inherited wrong icon color from renderer
fix(button): inherit icon color if set to none
feat(renderer): define default icon color
By default, this is the same as the text color for best visibility.
feat(winit): client-side resize drag support
feat(winit): client-side resize drag support
Make vertical scroll properties optional
fix: quad rendering including border only inside of the bounds
Move `Screenshot` inside `window` module
Added offscreen rendering support for wgpu & tiny-skia exposed with the window::screenshot command.
Provide access to font from each crate
Use nested for lazy widgets
Use layout with children for nesting
Introduce internal `overlay::Nested` for `UserInterface`
fix: reset button state if the cursor leaves
runtime: Handle widget operations in `program::State` helper (#46)
chore: default line height, text size, and shaping for cosmic
feat: sctk shell
fix: quad rendering including border only inside of the bounds
fix: better slider drawing (it allows just the border part of the handle quad outside of the layout bouds, which isn't great, but is ok for our purposes due to being transparent)
cleanup: fix & format
fix: use iced_core::Font
cleanup
fix: allow leaving out winit & iced-sctk
fix: settings
fix: slider draw improvements
fix: websocket example
fix: modal example
fix: scrollable example
fix: toast example
fix: avoid panicking in iced_sctk with lazy widgets in auto-size surfaces
fix: todos panic
fix: only diff auto-sized surfaces in iced_sctk build_user_interface & improve sctk examples
wip (iced-sctk): window resize with icons
feat (iced-sctk): support for setting cursor
refactor: default decorations to client
fix: set window geometry after receiving configure
fix: size limits with no max bound must be cut off
fix: send size update when autosized surface resizes
fix: use ceil size for positioner
cleanup: remove dbg statement
fix: remove a destroyed surface from compositor surfaces
fix errors after rebase and wip scaling support
fix: handling of scale factor in set_logical_size
fix (sctk_drag example): add .into for border radius
fix: fractional scaling
sctk: Fire RedrawRequests
wip: animations via frame event
fix / refactor iced-sctk redraw & frame event handling
cleanup: note about frame request in iced-sctk
fix: send resize when necessary for layer surface and popups too
fix: always request redraw for a new surface
fix: scaling and autosize surface improvements
refactor: sctk_lazy keyboard interactivity
feat(sctk): configurable natural_scroll property
feat: send state and capabilities events when there are changes
fix: redraw when an update is needed and clean up the logic
Update sctk to latest commit
Fix compilation of sctk drag example
fix(sctk): update interface before checking if it has a redraw request
refactor: after autosize surface resize wait to redraw until the resize has been applied
refactor: better handling of autosize surfaces
chore: update sctk
chore: update sctk
fixes sctk_drag example
fix: default to ControlFlow::Wait for applications with no surface
this seems to help CPU usage for app library and launcher
default to 250ms timeout in the event loop
Update sctk
sctk: Implement xdg-activation support
fix: don't require Flags to be clone for settings on wayland
chore: error if neither winit or wayland feature is set
chore: Allow compiling without windowing system (#65)
fix(iced-sctk): handle exit_on_close_request
fix: make sure that each widget operation operates on every interface
This should be ok even for widget actions like focus next because there can only ever be a single focused widget
cargo fmt
cleanup: dbg statement
fix(iced-sctk): replace panic with handling for remaining enum variants
refactor: use iced clipboard for interacting with the selection
refactor: allow passing an activation token when creating a window
sctk: Add support for `ext-session-lock` protocol
fix(sctk): build and use tree for layout of autosize surfaces
Update winit to latest commit used by upstream iced
fix(sctk): send key characters
fix(sctk): check if key is a named key first
refactor(sctk): keep compositor surface in state
feat: accessibility with some widget impls
feat: stable ids
a11y: Don't unconditionally pull winit (#43)
Update conversion.rs
integration fixes
integration
integration
integration
integration
s
integration
some integration work
more integration
Update Cargo.toml
Update mod.rs
Update multi_window.rs
s
more integration
more integration (ryanabx wip #100000)
more integration!!
integration 2
integration
more integration (rbx)
s
integration
integration work
integration
Update Cargo.toml
integration
simple integration things
int
integration to 175
integration(170)
Co-Authored-By: Ashley Wulber <48420062+wash2@users.noreply.github.com>
Co-Authored-By: Victoria Brekenfeld <4404502+Drakulix@users.noreply.github.com>
Co-Authored-By: Eduardo Flores <edfloreshz@gmail.com>
Co-Authored-By: Michael Murphy <michael@mmurphy.dev>
Co-Authored-By: wiiznokes <78230769+wiiznokes@users.noreply.github.com>
Co-Authored-By: Jeremy Soller <jeremy@system76.com>
Co-Authored-By: Ryan Brue <56272643+ryanabx@users.noreply.github.com>
fix(column): handle keys len change
fix: iced-sctk a11y
wip: winit single window updates
tokio feature hangs even without a11y feature
fix: multiwindow a11y fixes
fix: component
update winit
wip: sctk integration to winit shell
refactor: remove accesskit_unix
fix: svg
fix: remove wayland default feature
feat: derive Hash for image Handle
fix: cleanup 0.13 rebase errors
fix: remove path dependencies
conversion for Radius
conversion for Padding
setter for Svg border radius
re-export Limits
fix: connect clipboard if disconnected on layer surface or popup creation
fix: connect clipboard if disconnected on session lock surface creation
fix: update size of layer surface after configure
fix: insert user interfaces for popup and lock surfaces on creation
fix: svg scaling
feat: popups on winit windows
fix: default text shaping to advanced
fix: fallback to renderer icon style if svg is symbolic
fixes
fix: sctk frame handling
feat: autosize handling
fix: better autosize handling
fix: avoid duplicate window events from sctk
fix: better handling of popups
fix: refactor redraw handling for sctk
fix: include id in frames
fix: image
fix: scrollable delta direction
sctk: unregister clipboard when surface is done
set min / max size when size is requested
fix: popups
filter pointer events
feat: add Hide variant to mouse Interaction
dnd fixes
fix: use physical width for DnD surface
fix: tiny-skia svg quality
refactor: peek_dnd try to parse data
cleanup text conversion
cleanup
svg scaling fixes
background color fix
Introduce consecutive_click_distance like other toolkits do such as gtk,qt,imgui.
85 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
0.14.0 - 2025-12-07
Added
- Reactive rendering. #2662
- Time travel debugging. #2910
AnimationAPI for application code. #2757- Headless mode testing. #2698
- First-class end-to-end testing. #3059
- Input method support. #2777
- Hot reloading. #3000
- Concurrent image decoding and uploading (and more cool stuff). #3092
cometdebugger anddevtoolsfoundations. #2879- Presentation metrics for
comet. #2881 - Custom performance metrics for
comet. #2891 - Smart scrollbars. #2922
- System theme reactions. #3051
tablewidget. #3018gridwidget. #2885sensorwidget. #2751floatwidget and other cool stuff. #2916pinwidget. #2673wrapmethod forcolumnwidget. #2884auto_scrollsupport forscrollablewidget. #2973delaysupport fortooltipwidget. #2960Autostrategy totext::Shaping. #3048- Incremental
markdownparsing. #2776 - Customizable markdown rendering and image support. #2786
- Quote support for
markdownwidget. #3005 - Tasklist support for
markdownwidget. #3022 crispfeature for default quad snapping. #2969- Basic layer merging for
graphics::layer::Stack. #3033 - Headless mode for
iced_wgpuand concurrency foundations. #2857 - Primitive culling in
columnandrowwidgets. #2611 - Lazy
Compositorinitialization inwinitshell. #2722 - Support for
Justifiedtext alignment. #2836 - Support for double click event to
mouse_area. #2602 Defaultimplementation foriced_wgpu::geometry::Cache. #2619physical_keyfield toKeyReleasedevent. #2608total_sizemethod forqr_codewidget. #2606PartialEqimplementations for widget styles. #2637Sendmarker toiced_wgpu::Rendererby usingArcin caches. #2692- Disabled
Statusforscrollbarwidget. #2585 warningcolor totheme::Palette. #2607maximizedandfullscreenfields towindow::Settings. #2627windowtasks for controlling sizes and resize increments. #2633windowtask for drag resizing. #2642- Helper functions for alignment to
widgetmodule. #2746 time::repeatsubscription. #2747- Vertical support for
progress_bar. #2748 scalesupport forimagewidget. #2755LineEndingsupport fortext_editor. #2759Mul<Transformation>implementation formouse::Cursorandmouse::Click. #2758animationmodule support for Wasm target. #2764- Flake for a dev shell in
DEPENDENCIES. #2769 unfocuswidget operation. #2804sippersupport and some QoL. #2805- Variable text size for preedit IME window. #2790
is_focusedwidget operation. #2812- Notification of
windowpre-presentation to windowing system. #2849 - Customizable vertical
spacingfor wrapped rows. #2852 - Indent and unindent actions for
text_editor. #2901 - Floating Images. #2903
min_sizemethod toPaneGrid. #2911- Generic key for
sensorwidget. #2944 Debugimplementation forTask. #2955draw_with_boundsmethod tocanvas::Cache. #3035- Synchronous
TaskExecution andRedrawRequestedConsistency. #3084 idmethod totext_editor. #2653horizontalandverticalmethods toPadding. #2655is_focusedselector andfind/find_alloperations. #2664pushandinto_optionsmethods tocombo_box::State. #2684Hiddenvariant tomouse::Interaction. #2685menu_heightmethod topick_listandcombo_boxwidgets. #2699text_colortotoggler::Style. #2707text_shapingmethod tocombo_boxwidget. #2714transparentfield forwindow::Settings. #2728closeableandminimizablefields towindow::Settings. #2735window::monitor_sizetask. #2754- Division operation for
SizeandVector. #2767 hiddenmethod toscrollablewidget. #2775- Support for macOS-specific key shortcuts with
Controlmodifier. #2801 - Additional variants to
mouse::Interaction. #2815 vsyncfield towindow::Settings. #2837wgpu-barefeature flag to disable defaultwgpufeatures. #2828ratiomethod forSize. #2861- Support for
⌘ + Backspaceand⌘ + DeletemacOS shortcuts. #2862 - Expandable selection-by-word after double click in text editors. #2865
x11andwaylandfeature flags. #2869labelmethod forcheckboxwidget. #2873shader::Pipelinetrait for easierwgpuresource management. #2876select_rangewidget operation. #2890grid!macro helper. #2904warningstyle forcontainerwidget. #2912- Current toggle state to
toggler::Status::Disabled. #2908 - Cursor size awareness for input methods. #2918
allow_automatic_tabbingtask toruntime::window. #2933FromStrandDisplayimplementations forColor. #2937text::Renderertrait iniced_graphicswithfill_rawmethod. #2958font_maybehelper fortextwidget. #2988filter_mapmethod toSubscription. #2981repeatfield tokeyboard::Event::KeyPressed. #2991- Additional settings to control the fonts used for
markdownrendering. #2999 Rescaledvariant towindow::Event. #3001- Environment variable to define
beaconserver listen address. #3003 push_undermethod tostackwidget. #3010NONEconstant tokeyboard::Modifiers. #3037shadowfield tooverlay::menu::Style. #3049draw_mesh_cachemethod inmesh::Renderertrait. #3070- Efficient
is_emptymethod fortext_editor::Content. #3117 *Assignimplementations forPointandVector. #3131- Support
Backgroundinstead ofColorstyling forscrollable. #3127 CornerPreferencewindow setting for Windows. #3128move_tomethod forEditorAPI. #3125Backgroundandpadding_ratiosupport fortogglerstyling. #3129- More syntaxes for
iced_highlighter. #2822 - Implement
Sub<Vector>forCursor. #3137
Changed
- Replace
RcwithArcformarkdowncaching. #2599 - Improved
button::CatalogandStyledocumentation. #2590 - Improved
clockexample to display ticks and numbers. #2644 - Derived
PartialEqandEqformouse::click::Kind. #2741 - Marked
Color::from_rgb8andColor::from_rgba8as const. #2749 - Replaced unmaintained
directories-nextcrate withdirectories. #2761 - Changed
Widget::updateto takeEventby reference. #2781 - Improved
galleryexample with blurhash previews. #2796 - Replaced
wasm-timerwithwasmtimer. #2780 - Tweaked
PaletteGeneration. #2811 - Relaxed
Task::performbound fromFntoFnOnce. #2827 - Improved
quadshader to use a single SDF iniced_wgpu. #2967 - Leveraged
Limits::mindirectly inscrollable::layout. #3004 - Overhauled
theme::Palettegeneration by leveragingOklch. #3028 - Mutable
WidgetMethods. #3038 - Prioritized
ShrinkoverFillinlayoutlogic. #3045 - Replaced
format!withconcat!for string literals. #2695 - Replaced
window::run_with_handlewith a more powerfulwindow::run. #2718 - Made color helpers in
palettemodule public. #2771 - Changed default
PowerPreferencetoHighPerformanceiniced_wgpu. #2813 - Made
button::DEFAULT_PADDINGpublic. #2858 - Replaced
Urlparsing inmarkdownwidget withStringURIs. #2992 - Improved alignment docs of
container. #2871 - Made
input_methodmodule public. #2897 icedlogo to built-in icons font. #2902- Made
Layout::childrenreturn anExactSizeIterator. #2915 - Enabled
fancy-regexinstead ofonigforsyntect. #2932 - Added
warningstatus totoastexample. #2936 - Improved
scroll_toandsnap_toto allow operating on a single axis. #2994 - Disabled
png-formatfeature fromiced_tiny_skia. #3043 - Unified
keyboardsubscriptions into a singlelistensubscription. #3135 - Updated to Rust 2024. #2809
- Updated
wgputo22.0. #2510 - Updated
wgputo23.0. #2663 - Updated
wgputo24.0. #2832 - Updated
wgputo26.0. #3019 - Updated
wgputo27.0. #3097 - Updated
imageto0.25. #2716 - Updated
cosmic-textto0.13. #2834 - Updated
cosmic-textto0.14. #2880 - Updated
cosmic-textto0.15. #3098 - Updated
resvgto0.45. #2846 - Updated
wasmtimerto0.4.2. #3012 - Updated
dark-lightto2.0. #2724 - Updated
opensslto0.10.70. #2783 - Updated our
winitfork with0.30.8fixes. #2737
Fixed
- Slow
wgpudocumentation. #2593 - Documentation for
open_events. #2594 - Layout for wrapped
rowwithspacing. #2596 - Flex layout of
Fillelements in aShrinkcross axis. #2598 - Incorrect triangle mesh counting in
wgpu. #2601 - Dropped images and meshes when pasting
Frame. #2605 loading_spinnersexample skipping part of the animation cycle. #2617- Window
File*events not marked as unsupported for Wayland. #2615 - Coupling of
markdown::viewiterator lifetime with resultingElement. #2623 - Delete key not working in
text_editorwidget. #2632 - Consecutive clicks triggering independently of distance. #2639
pane_gridlosing continuity when adding or removing panes. #2628- Synthetic keyboard events not being discarded. #2649
sort_bywithout total ordering intiny-skiadamage tracking. #2651- Outdated docs of
Scrollable::with_directionanddirection. #2668 buttoncalling itson_presshandler unnecessarily. #2683system_informationexample getting stuck at boot. #2681tooltipwidget not redrawing when hovered. #2675pane_grid::DragEvent::Cancelednot emitted within deadband. #2691- Inconsistent positions in window-related operations. #2688
text::Wrappingnot being applied toParagraph. #2723- Broken nested
markdownlists without empty line. #2641 - Unnecessary cast in
the_matrixexample. #2731 - Incorrect layer counting in
iced_wgpu. #2701 Imagenot respectingviewportbounds. #2752- Attempting to draw empty meshes in
iced_wgpu. #2782 - Input placeholder text not clearing when IME is activated. #2785
- Missing redraw request in
image::Viewer. #2795 - Wrong position of preedit text on scrolled content. #2798
- Wrong initial candidate position for IME. #2793
- Text spans in IME preedit not being properly cached. #2806
cpu_brandinsystem_informationalways being empty. #2797- Horizontal text alignment being ignored on multi-line text. #2835
- Missing redraw request in
mouse_areawhen hovered. #2845 futures-executorbeing pulled even when it's not the default executor. #2841- WebGPU failing to boot in Chromium. #2686
- Crash when using WebGL due to wrong binding alignment. #2883
- Wrong calculation of rows in
gridwidget when evenly distributed. #2896 - Panic in
combo_boxdue to cleared children duringdiff. #2905 - OpenGL backend in
wgpuinterpreting atlas texture as cube map instead of texture array. #2919 quadshader blending without pre-multiplication. #2925- Inconsistent primitive pixel snapping in
iced_wgpu. #2962 - Inconsistent
Rectangle::is_withinimplementation. #2966 - Text damage calculation in
iced_tiny_skia. #2964 - Leftover
titlemention in documentation. #2972 - Text bounds cutoff in
iced_wgpu. #2975 - Rectangle vertices not being snapped to the pixel grid independently. #2768
- Lints for Rust 1.89. #3030
debugbuilds on macOS Tahoe. #3056- Typo in documentation comment for
filter_map. #3052 container::Stylenot respectingcrispfeature. #3112- Incorrect padding in
text_editor. #3115 - Outdated documentation of
Widget::mouse_interaction. #2696 - Incorrect render pass viewport in
custom_shaderexample. #2738 - Capturing
ButtonReleasedevent insideimage::Viewer. #2744 - Incomplete docs for
on_link_clickinrich_text. #2803 - Stale syntax highlighting on
text_editorafter theme changes. #2818 - Wrong background color for
window::Preediton translucent themes. #2819 - Panic on Chromium-like browsers when canvas initial size is
(0, 0). #2829 - Outdated dev shell templates. #2840
- Missing
derivefeature forserdedependency. #2854 bezier_toollisted as an example in theWidgettrait docs. #2867- Incomplete doc comment of
Length::is_fill. #2892 scrollabletouch scrolling when out of bounds. #2906Element::explainbeing hidden by multi-layer widgets. #2913- Missing
Shell::request_redrawoncomponent. #2930 - Text clipping in
iced_tiny_skia. #2929 - Inconsistent naming of
treeparameter inWidgettrait. #2950 text_editorsyntax highlighting not updating on paste. #2947svgscaling iniced_tiny_skia. #2954- Stroke bounds calculation and clip transformations in
iced_tiny_skia. #2882 - Artifacts when drawing small arcs in
canvaswidget. #2959 - Path not being closed in
Path::circle. #2979 - Incorrect transformation of cached primitives in
iced_tiny_skia. #2977 - Panic when drawing empty image in
iced_tiny_skia. #2986 - Incorrect mapping of navigation keys on higher keyboard layers. #3007
Statusofsvgwidget not being updated on cursor movement. #3009hoverwidget ignoring events in certain conditions. #3015- OpenGL backend in
iced_wgpuchoosing wrong texture format inwgpu::image::atlas. #3016 - Missing redraw request in
geometryexample. #3020 - Buffer presentation logic in
iced_tiny_skia. #3032 combo_boxtext not getting cleared on selection. #3063wgpusurface not being reconfigured onSurfaceError::LostorOutdated. #3067- Incorrect cursor for
sliderwidget on Windows . #3068 Paragraph::hit_spanreturning false positives at end of content. #3072- Incorrect
Limits::loosedocumentation. #3116 - Missing semicolon triggering a
clippylint. #3118 iced_tiny_skiausing aWindowinstead of aDisplayhandle forsoftbuffer::Contextcreation. #3090- Missing
fn operateintooltipwidget. #3132 - Panic when rendering problematic
svg. #3123 - Hotkey combinations not working on non-latin keyboard layouts. #3134
keyboard::listenreporting captured key events. #3136
Removed
is_overmethod inOverlaytrait. #2921- Short-hand notation support for
color!macro. #2592 surfaceargument ofCompositor::screenshot. #2672once_celldependency. #2626winapidependency. #2760palettedependency. #2839
Many thanks to...
- @edwloef
- @rhysd
- @DKolter
- @pml68
- @andymandias
- @dtzxporter
- @tarkah
- @tvolk131
- @alex-ds13
- @B0ney
- @bbb651
- @JL710
- @kenz-gelsoft
- @mfreeborn
- @mtkennerly
- @watsaig
- @13r0ck
- @airstrike
- @bungoboingo
- @EmmanuelDodoo
- @karolisr
- @Remmirad
- @semiversus
- @Ultrasquid9
- @xosxos
- @Zarthus
- @7h0ma5
- @7sDream
- @Adam-Ladd
- @AMS21
- @Atreyagaurav
- @AustinEvansWX
- @Azorlogh
- @berserkware
- @biglizards
- @boondocklabs
- @bradysimon
- @camspiers
- @chrismanning
- @codewing
- @csmoe
- @davehorner
- @DavidAguilo
- @dcz-self
- @dejang
- @dependabot[bot]
- @EleDiaz
- @ellieplayswow
- @Exidex
- @Fili-pk
- @flakes
- @Gobbel2000
- @GyulyVGC
- @hammerlink
- @hydra
- @ibaryshnikov
- @ids1024
- @iMohmmedSA
- @Integral-Tech
- @inthehack
- @jakobhellermann
- @janTatesa
- @jbirnick
- @jcdickinson
- @Jinderamarak
- @jsatka
- @kbjr
- @kgday
- @kiedtl
- @Konsl
- @Koranir
- @kosayoda
- @Krahos
- @l-const
- @l4l
- @laycookie
- @leo030303
- @Leonie-Theobald
- @libkurisu
- @lmaxyz
- @mariinkys
- @max-privatevoid
- @MichelleGranat
- @misaka10987
- @mytdragon
- @njust
- @nrjais
- @nz366
- @OpenSauce
- @Ottatop
- @Redhawk18
- @rhogenson
- @rizzen-yazston
- @rotmh
- @Rudxain
- @ryco117
- @Seppel3210
- @sgued
- @sopvop
- @T-256
- @tafia
- @thorn132
- @tigerros
- @tsuza
- @vincenthz
- @will-lynas
0.13.1 - 2024-09-19
Added
- Some
Fromtrait implementations fortext_input::Id. #2582 - Custom
Executorsupport forApplicationandDaemon. #2580 rust-versionmetadata toCargo.toml. #2579- Widget examples to API reference. #2587
Fixed
- Inverted scrolling direction with trackpad in
scrollable. #2583 scrollabletransactions whenon_scrollis not set. #2584- Incorrect text color styling in
text_editorwidget. #2586
Many thanks to...
- @dcampbell24
- @lufte
- @mtkennerly
0.13.0 - 2024-09-18
Added
- Introductory chapters to the official guide book.
- Pocket guide in API reference.
ProgramAPI. #2331TaskAPI. #2463DaemonAPI and Shell Runtime Unification. #2469rich_textandmarkdownwidgets. #2508stackwidget. #2405hoverwidget. #2408row::Wrappingwidget. #2539textmacro helper. #2338text::Wrappingsupport. #2279- Functional widget styling. #2312
- Closure-based widget styling. #2326
- Class-based Theming. #2350
- Type-Driven Renderer Fallback. #2351
- Background styling to
rich_textwidget. #2516 - Underline support for
rich_text. #2526 - Strikethrough support for
rich_text. #2528 - Abortable
Task. #2496 abort_on_droptotask::Handle. #2503Ferratheme. #2329auto-detect-themefeature. #2343- Custom key binding support for
text_editor. #2522 align_xfortext_inputwidget. #2535centerwidget helper. #2423- Rotation support for
imageandsvgwidgets. #2334 - Dynamic
opacitysupport forimageandsvg. #2424 - Scroll transactions for
scrollablewidget. #2401 physical_keyandmodified_keytokeyboard::Event. #2576fetch_positioncommand inwindowmodule. #2280filter_methodproperty forimage::Viewerwidget. #2324- Support for pre-multiplied alpha
wgpucomposite mode. #2341 text_sizeandline_heightproperties fortext_editorwidget. #2358is_focusedmethod fortext_editor::State. #2386canvas::CacheGrouping. #2415ICED_PRESENT_MODEenv var to pick awgpu::PresentMode. #2428SpecificWithvariant towindow::Position. #2435scale_factorfield towindow::Screenshot. #2449- Styling support for
overlay::Menuofpick_listwidget. #2457 window::IdinEventsubscriptions. #2456FromIteratorimplementation forrowandcolumn. #2460content_fitforimage::viewerwidget. #2330Displayimplementation forRadians. #2446- Helper methods for
window::SettingsinApplication. #2470 Copyimplementation forcanvas::Fillandcanvas::Stroke. #2475- Clarification of
Borderalignment forQuad. #2485 - "Select All" functionality on
Ctrl+Atotext_editor. #2321 stream::try_channelhelper. #2497icedwidget helper to display the iced logo ☄️. #2498align_xandalign_yhelpers toscrollable. #2499- Built-in text styles for each
Palettecolor. #2500 - Embedded
Scrollbarsupport forscrollable. #2269 on_press_withmethod forbutton. #2502resize_eventssubscription towindowmodule. #2505Linksupport torich_textwidget. #2512imageandsvgsupport forcanvaswidget. #2537Compactvariant forpane_grid::Controls. #2555image-without-codecsfeature flag. #2244container::backgroundstyling helper. #2261undecorated_shadowwindow setting for Windows. #2285- Tasks for setting mouse passthrough. #2284
*_maybehelpers fortext_inputwidget. #2390- Wasm support for
download_progressexample. #2419 scrollable::scroll_bywidget operation. #2436- Enhancements to
sliderwidget styling. #2444 on_scrollhandler tomouse_areawidget. #2450stroke_rectanglemethod tocanvas::Frame. #2473override_redirectsetting for X11 windows. #2476- Disabled state support for
togglerwidget. #2478 Color::parsehelper for parsing color strings. #2486rounded_rectanglemethod tocanvas::Path. #2491widthmethod totext_editorwidget. #2513on_openhandler tocombo_boxwidget. #2534- Additional
mouse::Interactioncursors. #2551 - Scroll wheel handling in
sliderwidget. #2565
Changed
- Use a
StagingBeltiniced_wgpufor regular buffer uploads. #2357 - Use generic
ContentinTextto avoid reallocation infill_text. #2360 - Use
Iterator::size_hintto initializeColumnandRowcapacity. #2362 - Specialize
widget::texthelper. #2363 - Use built-in
[lints]table inCargo.toml. #2377 - Target
#icedcontainer by default on Wasm. #2342 - Improved architecture for
iced_wgpuandiced_tiny_skia. #2382 - Make image
Cacheeviction strategy less aggressive iniced_wgpu. #2403 - Retain caches in
iced_wgpuas long asRcvalues are alive. #2409 - Use
bytescrate forimagewidget. #2356 - Update
winitto0.30. #2427 - Reuse
glyphon::Pipelinestate iniced_wgpu. #2430 - Ask for explicit
Lengthincenter_*methods. #2441 - Hide internal
Taskconstructors. #2492 - Hide
Subscriptioninternals. #2493 - Improved
viewergonomics. #2504 - Update
cosmic-textandresvg. #2416 - Snap
Quadlines to the pixel grid iniced_wgpu. #2531 - Update
web-systo0.3.69. #2507 - Allow disabled
TextInputto still be interacted with. #2262 - Enable horizontal scrolling without shift modifier for
srollablewidget. #2392 - Add
mouse::Buttontomouse::Click. #2414 - Notify
scrollable::Viewportchanges. #2438 - Improved documentation of
Componentstate management. #2556
Fixed
- Fix
block_oniniced_wgpuhanging Wasm builds. #2313 - Private
PaneGridstyle fields. #2316 - Some documentation typos. #2317
- Blurry input caret with non-integral scaling. #2320
- Scrollbar stuck in a
scrollableunder some circumstances. #2322 - Broken
wgpuexamples link in issue template. #2327 - Empty
wgpudraw calls inimagepipeline. #2344 - Layout invalidation for
Responsivewidget. #2345 - Incorrect shadows on quads with rounded corners. #2354
- Empty menu overlay on
combo_box. #2364 - Copy / cut vulnerability in a secure
TextInput. #2366 - Inadequate readability / contrast for built-in themes. #2376
- Fix
pkg-configtypo inDEPENDENCIES.md. #2379 - Unbounded memory consumption by
iced_winit::Proxy. #2389 - Typo in
icon::Errormessage. #2393 - Nested scrollables capturing all scroll events. #2397
- Content capturing scrollbar events in a
scrollable. #2406 - Out of bounds caret and overflow when scrolling in
text_editor. #2407 - Missing
derive(Default)in overview code snippet. #2412 image::Viewertriggering grab from outside the widget. #2420- Different windows fighting over shared
image::Cache. #2425 - Images not aligned to the (logical) pixel grid in
iced_wgpu. #2440 - Incorrect local time in
clockexample under Unix systems. #2421 ⌘ + ←and⌘ + →behavior fortext_inputon macOS. #2315- Wayland packages in
DEPENDENCIES.md. #2465 - Typo in documentation. #2487
- Extraneous comment in
scrollablemodule. #2488 - Top layer in
hoverwidget hiding when focused. #2544 - Out of bounds text in
text_editorwidget. #2536 - Segfault on Wayland when closing the app. #2547
lazyfeature flag sometimes not present in documentation. #2289- Border of
progress_barwidget being rendered below the active bar. #2443 radiitypo iniced_wgpushader. #2484- Incorrect priority of
Binding::Deleteintext_editor. #2514 - Division by zero in
multitouchexample. #2517 - Invisible text in
svgwidget. #2560 wasm32deployments not displaying anything. #2574- Unnecessary COM initialization on Windows. #2578
Removed
- Unnecessary struct from
download_progressexample. #2380 - Out of date comment from
custom_widgetexample. #2549 Clonebound forgraphics::Cache::clear. #2575
Many thanks to...
- @Aaron-McGuire
- @airstrike
- @alex-ds13
- @alliby
- @Andrew-Schwartz
- @ayeniswe
- @B0ney
- @Bajix
- @blazra
- @Brady-Simon
- @breynard0
- @bungoboingo
- @casperstorm
- @Davidster
- @derezzedex
- @DKolter
- @dtoniolo
- @dtzxporter
- @fenhl
- @Gigas002
- @gintsgints
- @henrispriet
- @IsaacMarovitz
- @ivanceras
- @Jinderamarak
- @JL710
- @jquesada2016
- @JustSoup312
- @kiedtl
- @kmoon2437
- @Koranir
- @lufte
- @LuisLiraC
- @m4rch3n1ng
- @meithecatte
- @mtkennerly
- @myuujiku
- @n1ght-hunter
- @nrjais
- @PgBiel
- @PolyMeilex
- @rustrover
- @ryankopf
- @saihaze
- @shartrec
- @skygrango
- @SolidStateDj
- @sundaram123krishnan
- @tarkah
- @vladh
- @WailAbou
- @wiiznokes
- @woelfman
- @Zaubentrucker
- @ryanabx
- @edfloreshz
0.12.1 - 2024-02-22
Added
extendandfrom_vecmethods forColumnandRow. #2264PartialOrd,Ord, andHashimplementations forkeyboard::Modifiers. #2270clipboardmodule inadvancedmodule. #2272- Default
disabledstyle forcheckboxandhoveredstyle forSvg. #2273 From<u16>andFrom<i32>implementations forborder::Radius. #2274size_hintmethod forComponenttrait. #2275
Fixed
- Black images when using OpenGL backend in
iced_wgpu. #2259 - Documentation for
horizontal_spaceandvertical_spacehelpers. #2265 - WebAssembly platform. #2271
- Decouple
Keyfromkeyboard::Modifiersand apply them totextinKeyboardInput. #2238 - Text insertion not being prioritized in
TextInputandTextEditor. #2278 iced_tiny_skiaclipping line strokes. #2282
Many thanks to...
- @PolyMeilex
- @rizzen-yazston
- @wash2
0.12.0 - 2024-02-15
Added
- Multi-window support. #1964
TextEditorwidget (or multi-line text input). #2123Shaderwidget. #2085- Shadows. #1882
- Vectorial text for
Canvas. #2204 - Layout consistency. #2192
- Explicit text caching. #2058
- Gradients in Oklab color space. #2055
Themerwidget. #2209Transformprimitive. #2120- Cut functionality for
TextEditor. #2215 - Primary clipboard support. #2240
- Disabled state for
Checkbox. #2109 skip_taskbarwindow setting for Windows. #2211fetch_maximizedandfetch_minimizedcommands inwindow. #2189run_with_handlecommand inwindow. #2200show_system_menucommand inwindow. #2243text_shapingmethod forTooltip. #2172interactionmethod forMouseArea. #2207hoveredstyling forSvgwidget. #2163heightmethod forTextEditor. #2221- Customizable style for
TextEditor. #2159 - Customizable style for
QRCode. #2229 - Border width styling for
Toggler. #2219 RawTextvariant forPrimitiveiniced_graphics. #2158Streamsupport forCommand. #2150- Access to bounds/content bounds from a
Scrollableviewport. #2072 Frame::scale_nonuniformmethod. #2070theme::Custom::with_fnto generate completely custom themes. #2067styleattribute forFont. #2041- Texture filtering options for
Image. #1894 defaultandshift_stepmethods forsliderwidgets. #2100Customvariant tocommand::Action. #2146- Mouse movement events for
MouseArea. #2147 - Dracula, Nord, Solarized, and Gruvbox variants for
Theme. #2170 - Catppuccin, Tokyo Night, Kanagawa, Moonfly, Nightfly and Oxocarbon variants for
Theme. #2233 From<T> where T: Into<PathBuf>forsvg::Handle. #2235on_openandon_closehandlers forPickList. #2174- Support for generic
ElementinTooltip. #2228 - Container and
gapstyling forScrollable. #2239 - Use
Borrowfor bothoptionsandselectedin PickList. #2251 clipproperty forContainer,Column,Row, andButton. #2252
Changed
- Enable WebGPU backend in
wgpuby default instead of WebGL. #2068 - Update
glyphonto0.4. #2203 - Require
Sendon stored pipelines. #2197 - Update
wgputo0.19,glyphonto0.5,softbufferto0.4,window-clipboardto0.4, andraw-window-handleto0.6. #2191 - Update
winitto0.29. #2169 - Provide actual bounds to
Shaderprimitives. #2149 - Deny warnings in
testworkflow. #2135 - Update
wgputo0.18andcosmic-textto0.10. #2122 - Compute vertex positions in the shader. #2099
- Migrate twox-hash -> xxhash-rust and switch to Xxh3 for better performance. #2080
- Add
keyboardsubscriptions and renamesubscription::eventstoevent::listen. #2073 - Use workspace dependencies and package inheritance. #2069
- Update
wgputo0.17. #2065 - Support automatic style type casting for
Button. #2046 - Make
with_clipandwith_saveinFrameable to return the data of the provided closure. #1994 - Use
Radiansfor angle fields inArcandarc::Elliptical. #2027 - Assert dimensions of quads are normal in
iced_tiny_skia. #2082 - Remove
positionfromoverlay::Element. #2226 - Add a capacity limit to the
GlyphCacheiniced_tiny_skia. #2210 - Use pointer equality to speed up
PartialEqimplementation ofimage::Bytes. #2220 - Update
bitflags,glam,kurbo,ouroboros,qrcode, andsysinfodependencies. #2227 - Improve some widget ergonomics. #2253
Fixed
- Clipping of
TextInputselection. #2199 Paragraph::grapheme_positionwhen ligatures are present. #2196- Docs to include missing feature tags. #2184
PaneGridclick interaction on the top edge. #2168iced_wgpunot rendering text in SVGs. #2161- Text clipping. #2154
- Text transparency in
iced_tiny_skia. #2250 - Layout invalidation when
Tooltipchangesoverlay. #2143 Overlaycomposition. #2142- Incorrect GIF for the
progress_barexample. #2141 - Standalone compilation of
iced_renderercrate. #2134 - Maximize window button enabled when
Settings::resizableisfalse. #2124 - Width of horizontal scrollbar in
Scrollable. #2084 ComboBoxwidget panic on wasm. #2078- Majority of unresolved documentation links. #2077
- Web examples not running. #2076
- GIFs and video examples broken. #2074
@interpolate(flat)not used as attribute. #2071CheckboxandTogglerhidden behind scrollbar instylingexample. #2062- Absolute
LineHeightsometimes being0. #2059 - Paste while holding ALT. #2006
Command<T>::performto return aCommand<T>. #2000convert_textnot called onSvgtrees. #1908- Unused
backend.rsfile in renderer crate. #2182 - Some
clippy::pedanticlints. #2096 - Some minor clippy fixes. #2092
- Clippy docs keyword quoting. #2091
- Clippy map transformations. #2090
- Inline format args for ease of reading. #2089
- Stuck scrolling in
Scrollablewith touch events. #1940 - Incorrect unit in
system::Information. #2223 size_hintnot being called fromelement::Map. #2224size_hintnot being called fromelement::Explain. #2225- Slow touch scrolling for
TextEditorwidget. #2140 Subscription::mapusing unreliable function pointer hash to identify mappers. #2237- Missing feature flag docs for
time::every. #2188 - Event loop not being resumed on Windows while resizing. #2214
- Alpha mode misconfiguration in
iced_wgpu. #2231 - Outdated documentation leading to a dead link. #2232
Many thanks to...
- @akshayr-mecha
- @alec-deason
- @arslee07
- @AustinMReppert
- @avsaase
- @blazra
- @brianch
- @bungoboingo
- @Calastrophe
- @casperstorm
- @cfrenette
- @clarkmoody
- @Davidster
- @Decodetalkers
- @derezzedex
- @DoomDuck
- @dtzxporter
- @Dworv
- @fogarecious
- @GyulyVGC
- @hicaru
- @ids1024
- @Imberflur
- @jhannyj
- @jhff
- @jim-ec
- @joshuamegnauth54
- @jpttrssn
- @julianbraha
- @Koranir
- @lufte
- @matze
- @MichalLebeda
- @MoSal
- @MrAntix
- @nicksenger
- @Nisatru
- @nyurik
- @Remmirad
- @ripytide
- @snaggen
- @Tahinli
- @tarkah
- @tzemanovic
- @varbhat
- @VAWVAW
- @william-shere
- @wyatt-herkamp
Many thanks to...
- @jackpot51
- @wash2
0.10.0 - 2023-07-28
Added
- Text shaping, font fallback, and
iced_wgpuoverhaul. #1697 - Software renderer, runtime renderer fallback, and core consolidation. #1748
- Incremental rendering for
iced_tiny_skia. #1811 - Configurable
LineHeightsupport for text widgets. #1828 text::Shapingstrategy selection. #1822- Subpixel glyph positioning and layout linearity. #1921
- Background gradients. #1846
- Offscreen rendering and screenshots. #1845
- Nested overlays. #1719
- Cursor availability. #1904
- Backend-specific primitives. #1932
ComboBoxwidget. #1954web-colorsfeature flag to enable "sRGB linear" blending. #1888PaneGridlogic to split panes by drag & drop. #1856PaneGridlogic to drag & drop panes to the edges. #1865- Type-safe
Scrollabledirection. #1878 Scrollablealignment. #1912- Helpers to change viewport alignment of a
Scrollable. #1953 scroll_towidget operation. #1796scroll_tohelper. #1804visible_boundswidget operation forContainer. #1971- Command to fetch window size. #1927
- Conversion support from
Fntrait to custom theme. #1861 - Configurable border radii on relevant widgets. #1869
border_radiusstyling toSliderrail. #1892application_idinPlatformSpecificsettings for Linux. #1963- Aliased entries in
text::Cache. #1934 - Text cache modes. #1938
operatemethod forprogram::State. #1913Viewportargument toWidget::on_event. #1956- Nix instructions to
DEPENDENCIES.md. #1859 - Loading spinners example. #1902
- Workflow that verifies
CHANGELOGis always up-to-date. #1970 - Outdated mentions of
iced_nativeinREADME. #1979
Changed
- Updated
wgputo0.16. #1807 - Updated
glamto0.24. #1840 - Updated
winitto0.28. #1738 - Updated
paletteto0.7. #1875 - Updated
ouroborosto0.17. #1925 - Updated
resvgto0.35andtiny-skiato0.10. #1907 - Changed
mouse::Button::Otherto takeu16instead ofu8. #1797 - Changed
subscription::channelto take aFnOncenon-Syncclosure. #1917 - Removed
Copyrequirement for textStyleSheet::Style. #1814 - Removed
min_widthof 1 from scrollbar & scroller forScrollable. #1844 - Used
Widget::overlayforTooltip. #1692
Fixed
Responsivelayout not invalidated when shell layout is invalidated. #1799Responsivelayout not invalidated when size changes without aviewcall. #1890- Broken link in
ROADMAP.md. #1815 boundsof selected option background inMenu. #1831- Border radius logic in
iced_tiny_skia. #1842 Svgfiltered color not premultiplied. #1841- Race condition when growing an
image::Atlas. #1847 - Clearing damaged surface with background color in
iced_tiny_skia. #1854 - Private gradient pack logic for
iced_graphics::Gradient. #1871 - Unordered quads of different background types. #1873
- Panic in
glyphonwhen glyphs are missing. #1883 - Empty scissor rectangle in
iced_wgpu::trianglepipeline. #1893 Scrollablescrolling when mouse not over it. #1910translationinlayoutofNestedoverlay. #1924- Build when using vendored dependencies. #1928
- Minor grammar mistake. #1931
- Quad rendering including border only inside of the bounds. #1843
- Redraw requests not being forwarded for
Componentoverlays. #1949 - Blinking input cursor when window loses focus. #1955
BorderRadiusnot exposed in root crate. #1972- Outdated
ROADMAP. #1958
Patched
- Keybinds to cycle
ComboBoxoptions. #1991 Tooltipoverlay position insideScrollable. #1978iced_wgpufreezing on empty layers. #1996image::Viewerreacting to any scroll event. #1998TextInputpasting text whenAltkey is pressed. #2006- Broken link to old
iced_nativecrate inREADME. #2024 Rectangle::containsbeing non-exclusive. #2017- Documentation for
Arcandarc::Elliptical. #2008
Many thanks to...
- @a1phyr
- @alec-deason
- @AustinMReppert
- @bbb651
- @bungoboingo
- @casperstorm
- @clarkmoody
- @Davidster
- @Drakulix
- @genusistimelord
- @GyulyVGC
- @ids1024
- @jhff
- @JonathanLindsey
- @kr105
- @marienz
- @malramsay64
- @nicksenger
- @nicoburns
- @NyxAlexandra
- @Redhawk18
- @RGBCube
- @rs017991
- @tarkah
- @thunderstorm010
- @ua-kxie
- @wash2
- @wiiznokes
0.9.0 - 2023-04-13
Added
MouseAreawidget. #1594channelhelper insubscription. #1786- Configurable
widthforScrollable. #1749 - Support for disabled
TextInput. #1744 - Platform-specific window settings. #1730
- Left and right colors for sliders. #1643
- Icon for
TextInput. #1702 - Mouse over scrollbar flag for
scrollable::StyleSheet. #1669 - Better example for
Radio. #1762
Changed
wgpuhas been updated to0.15iniced_wgpu. #1789resvghas been updated to0.29iniced_graphics. #1733subscription::runnow takes a function pointer. #1723
Fixed
- Redundant
on_scrollmessages forScrollable. #1788 - Outdated items in
ROADMAP.md#1782 - Colons in shader labels causing compilation issues in
iced_wgpu. #1779 - Re-expose winit features for window servers in Linux. #1777
- Replacement of application node in Wasm. #1765
clippylints for Rust 1.68. #1755- Unnecessary
Componentrebuilds. #1754 - Incorrect package name in checkbox example docs. #1750
- Fullscreen only working on primary monitor. #1742
Padding::fiton irregular values for an axis. #1734Debugimplementation ofFontdisplaying its bytes. #1731- Sliders bleeding over their rail. #1721
Removed
Fillvariant forAlignment. #1735
Many thanks to...
- @ahoneybun
- @bq-wrongway
- @bungoboingo
- @casperstorm
- @Davidster
- @ElhamAryanpur
- @FinnPerry
- @GyulyVGC
- @JungleTryne
- @lupd
- @mmstick
- @nicksenger
- @Night-Hunter-NF
- @tarkah
- @traxys
- @Xaeroxe
0.8.0 - 2023-02-18
Added
- Generic pixel units. #1711
custommethod towidget::Operationtrait. #1649Groupoverlay. #1655- Standalone
drawhelper forimage. #1682 - Dynamic
pick_list::Handle. #1675 Idsupport forContainer. #1695- Custom
Checkboxicon support. #1707 windowaction to change always on top setting. #1587windowaction to fetch its unique identifier. #1589
Changed
- Annotated
CommandandSubscriptionwith#[must_use]. #1676 - Replaced
FnwithFnOnceincanvas::Cache::draw. #1694 - Used
[default]on enum ingame_of_lifeexample. #1660 - Made
QRCodehide when data is empty inqr_codeexample. #1665 - Replaced
CowwithBytesinimageto accept any kind of data that implementsAsRef<[u8]>. #1551
Fixed
- Blank window on application startup. #1698
- Off-by-one pixel error on
pick_listwidth. #1679 - Missing
text_inputimplementation inoperation::Map. #1678 - Widget-driven animations for
Component. #1685 - Layout translation in
overlay::Group. #1686 - Missing
is_overimplementation for overlays oficed_lazywidgets. #1699 - Panic when overlay event processing removes overlay. #1700
- Panic when using operations with components in certain cases. #1701
TextInputwidth when using padding. #1706iced_glowcrash on some hardware. #1703- Height of
overlay::Menu. #1714 - Size of images in
README. #1659 - New
clippylints. #1681
Many thanks to...
- @13r0ck
- @bungoboingo
- @casperstorm
- @frey
- @greatest-ape
- @ids1024
- @Jedsek
- @nicksenger
- @Night-Hunter-NF
- @sdroege
- @Sn-Kinos
- @sushigiri
- @tarkah
0.7.0 - 2023-01-14
Added
- Widget-driven animations. #1647
- Multidirectional scrolling support for
Scrollable. #1550 VerticalSliderwidget. #1596Shift+Clicktext selection support inTextInput. #1622- Profiling support with the
chrome-tracefeature. #1565 - Customization of the handle of a
PickList. #1562 windowaction to request user attention. #1584windowaction to gain focus. #1585windowaction to toggle decorations. #1588Copyimplementation forgradient::Location. #1636
Changed
- Replaced
Application::should_exitwith awindow::closeaction. #1606 - Made
focusable::Countfields public. #1635 - Added
Dependencyargument to the closure ofLazy. #1646 - Switched arguments order of
Toggler::newfor consistency. #1616 - Switched arguments order of
Checkbox::newfor consistency. #1633
Fixed
- Compilation error in
iced_glowwhen theimagefeature is enabled butsvgisn't. #1593 - Widget operations for
Responsivewidget. #1615 - Overlay placement for
Responsive. #1638 overlayimplementation forLazy. #1644- Minor typo in documentation. #1624
- Links in documentation. #1634
- Missing comment in documentation. #1648
Many thanks to...
- @13r0ck
- @Araxeus
- @ben-wallis
- @bungoboingo
- @casperstorm
- @nicksenger
- @Night-Hunter-NF
- @rpitasky
- @rs017991
- @tarkah
- @wiktor-k
0.6.0 - 2022-12-07
Added
- Support for non-uniform border radius for
Primitive::Quad. #1506 - Operation to query the current focused widget. #1526
- Additional operations for
TextInput. #1529 - Styling support for
Svg. #1578
Changed
- Triangle geometry using a solid color is now drawn in a single draw call. #1538
Fixed
- Gradients for WebAssembly target. #1524
Overlaylayout cache not being invalidated. #1528- Operations not working for
PaneGrid. #1533 - Mapped
widget::Operationalways returningOutcome::None. #1536 - Padding of
TextInputwithLength::Unitswidth. #1539 - Clipping of
ImageandSvgwidgets iniced_glow. #1557 - Invalid links in documentation. #1560
Customstyle ofPickListwidget. #1570- Scroller in
Scrollablealways being drawn. #1574
Many thanks to...
- @bungoboingo
- @l1Dan
- @mmstick
- @mtkennerly
- @PolyMeilex
- @rksm
- @rs017991
- @tarkah
- @wash2
0.5.0 - 2022-11-10
Added
-
Stabilization of stateless widgets (#1393)
The old widget API has been completely replaced by stateless widgets (introduced in #1284). Alongside the new API, there are a bunch of new helper functions and macros for easily describing view logic (likerow!andcolumn!). -
First-class theming (#1362)
A complete overhaul of our styling primitives, introducing aThemeas a first-class concept of the library. -
Widget operations (#1399)
An abstraction that can be used to traverse (and operate on) the widget tree of an application in order to query or update some widget state. -
Lazywidget (#1400)
A widget that can call some view logic lazily only when some data has changed. Thanks to @nicksenger! -
Linear gradient support for
Canvas(#1448)
TheCanvaswidget can draw linear gradients now. Thanks to @bungoboingo! -
Touch support for
Canvas(#1305)
TheCanvaswidget now supports touch events. Thanks to @artursapek! -
ImageandSvgsupport foriced_glow(#1485)
Our OpenGL renderer now is capable of rendering both theImageandSvgwidgets. Thanks to @ids1024!
0.4.2 - 2022-05-03
Fixed
Paddingtype not exposed iniced.
0.4.1 - 2022-05-02
Fixed
- Version number in
README.
0.4.0 - 2022-05-02
Added
-
Stateless widgets (#1284)
A brand new widget API that removes the need to keep track of internal widget state. No morebutton::Statein your application! -
Componenttrait (#1131)
A new trait to implement custom widgets with internal mutable state while using composition and The Elm Architecture. -
Responsivewidget (#1193)
A widget that is aware of its dimensions and can be used to easily build responsive user interfaces. -
Experimental WebGL support (#1096)
Applications can now be rendered into an HTMLcanvaswhen targeting Wasm by leveraging the WebGL support inwgpu. Thanks to @pacmancoder and @kaimast! -
Support for Raspberry Pis and older devices (#1160)
The compatibility of our OpenGL renderer has been improved and should run on any hardware that supports OpenGL 3.0+ or OpenGL ES 2.0+. Additionally, we started maintaining Docker images foraarch64andarmv7to easily cross-compileicedapplications and target Raspberry Pis. Thanks to @derezzedex! -
Simpler
RendererAPIs (#1110)
The surface of theRendererAPIs of the library has been considerably reduced. Instead of aRenderertrait per widget, now there are only 3 traits that are reused by all the widgets.
0.3.0 - 2021-03-31
Added
- Touch support. #57 #650 (thanks to @simlay and @discordance!)
- Clipboard write access for
image::Viewerwidget. It allows panning and scaling of an image. #319 (thanks to @tarkah!)Tooltipwidget. It annotates content with some text on mouse hover. #465 (thanks to @yusdacra!)- Support for the
smolasync runtime. #699 (thanks to @JayceFayne!) - Support for graceful exiting when using the
Applicationtrait. #804 - Image format features in
iced_wgputo reduce code bloat. #392 (thanks to @unrelentingtech!) FocusedandUnfocusedvariant towindow::Event. #701 (thanks to @cossonleo!)WGPU_BACKENDenvironment variable to configure the internal graphics backend oficed_wgpu. #789 (thanks to @Cupnfish!)
Changed
- The
TitleBarof aPaneGridnow supports generic elements. #657 (thanks to @clarkmoody!) - The
Errortype now implementsSendandSync. #719 (thanks to @taiki-e!) - The
Styletypes iniced_stylenow implementCloneandCopy. #720 (thanks to @taiki-e!) - The following dependencies have been updated:
- The following examples were improved:
Fixed
- Button events not being propagated to contents. #668
- Incorrect overlay implementation for the
Buttonwidget. #764 Viewport::physical_widthreturning the wrong value. #700- Outdated documentation for the
Sandboxtrait. #710
0.2.0 - 2020-11-26
Added
-
Canvasinteractivity (#325)
A trait-based approach to react to mouse and keyboard interactions in theCanvaswidget. -
iced_graphicssubcrate (#354)
A backend-agnostic graphics subcrate that can be leveraged to build new renderers. -
OpenGL renderer (#354)
An OpenGL renderer powered byiced_graphics,glow, andglutin. It is an alternative to the defaultwgpurenderer. -
Overlay support (#444)
Basic support for superpositioning interactive widgets on top of other widgets. -
Faster event loop (#597)
The event loop now takes advantage of the data dependencies in The Elm Architecture and leverages the borrow checker to keep the widget tree alive between iterations, avoiding unnecessary rebuilds. -
Event capturing (#614)
The runtime now can tell whether a widget has handled an event or not, easing integration with existing applications. -
PickListwidget (#444)
A drop-down selector widget built on top of the new overlay support. -
QRCodewidget (#622)
A widget that displays a QR code, powered by theqrcodecrate.
0.1.1 - 2020-04-15
Added
Settings::with_flagsto easily initialize some default settings with flags. #266Defaultimplementation forcanvas::layer::Cache. #267Ctrl + Delsupport forTextInput. #268- Helper methods in
canvas::Pathto easily draw lines, rectangles, and circles. #293 From<Color>implementation forcanvas::Fill. #293From<String>implementation forcanvas::Text. #293From<&str>implementation forcanvas::Text. #293
Changed
newmethod ofRadioandCheckboxnow take a genericInto<String>for the label. #260Frame::fillnow takes a genericInto<canvas::Fill>. #293Frame::strokenow takes a genericInto<canvas::Stroke>. #293Frame::fill_textnow takes a genericInto<canvas::Text>. #293
Fixed
- Feature flags not being referenced in documentation. #259
- Crash in some graphics drivers when displaying an empty
Canvas. #278 - Text measuring when spaces where present at the beginning of a
TextInputvalue. #279 TextInputproducing aClipprimitive when unnecessary. #279- Alignment of
Textprimitive iniced_wgpu. #281 CursorEnteredandCursorLeftnot being generated. #289
Removed
- Unnecessary
'staticlifetimes inRendererbounds. #290
0.1.0 - 2020-04-02
Added
-
Event subscriptions (#122)
A declarative way to listen to external events asynchronously by leveraging streams. -
Custom styling (#146)
A simple, trait-based approach for customizing the appearance of different widgets. -
Canvaswidget (#193)
A widget for drawing 2D graphics with an interface inspired by the Web Canvas API and powered bylyon. -
PaneGridwidget (#224)
A widget that dynamically organizes layout by splitting panes that can be resized and drag and dropped. -
Svgwidget (#111)
A widget that renders vector graphics on top ofresvgandraqote. Thanks to @Maldela! -
ProgressBarwidget (#141)
A widget to notify progress of asynchronous tasks to your users. Thanks to @Songtronix! -
Configurable futures executor (#164)
Support for pluggingtokio,async-std,wasm-bindgen-futures, or your own custom futures executor to an application. -
Compatibility with existing
wgpuprojects (#183)
A bunch of improvements to the flexibility oficed_wgputo allow integration in existing codebases. -
Text selection for
TextInput(#202)
Thanks to @FabianLars and @Finnerale! -
Texture atlas for
iced_wgpu(#154)
An atlas on top ofguillotierefor batching draw calls. Thanks to @Maldela!
0.1.0-beta - 2019-11-25
Changed
- The old
icedbecomesiced_native. The currenticedcrate turns into a batteries-included, cross-platform GUI library.
0.1.0-alpha - 2019-09-05
Added
- First release! 🎉