Skip to content

Commit e09b4e2

Browse files
committed
Merge branch 'master' into feat/multi-window-support
2 parents 83c7870 + 7f8b176 commit e09b4e2

File tree

331 files changed

+12106
-3997
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

331 files changed

+12106
-3997
lines changed

.cargo/config.toml

+53
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
[alias]
2+
lint = """
3+
clippy --workspace --no-deps -- \
4+
-D warnings \
5+
-A clippy::type_complexity \
6+
-D clippy::semicolon_if_nothing_returned \
7+
-D clippy::trivially-copy-pass-by-ref \
8+
-D clippy::default_trait_access \
9+
-D clippy::match-wildcard-for-single-variants \
10+
-D clippy::redundant-closure-for-method-calls \
11+
-D clippy::filter_map_next \
12+
-D clippy::manual_let_else \
13+
-D clippy::unused_async \
14+
-D clippy::from_over_into \
15+
-D clippy::needless_borrow \
16+
-D clippy::new_without_default \
17+
-D clippy::useless_conversion
18+
"""
19+
20+
nitpick = """
21+
clippy --workspace --no-deps -- \
22+
-D warnings \
23+
-D clippy::pedantic \
24+
-A clippy::type_complexity \
25+
-A clippy::must_use_candidate \
26+
-A clippy::return_self_not_must_use \
27+
-A clippy::needless_pass_by_value \
28+
-A clippy::cast_precision_loss \
29+
-A clippy::cast_sign_loss \
30+
-A clippy::cast_possible_truncation \
31+
-A clippy::match_same_arms \
32+
-A clippy::missing-errors-doc \
33+
-A clippy::missing-panics-doc \
34+
-A clippy::cast_lossless \
35+
-A clippy::doc_markdown \
36+
-A clippy::items_after_statements \
37+
-A clippy::too_many_lines \
38+
-A clippy::module_name_repetitions \
39+
-A clippy::if_not_else \
40+
-A clippy::redundant_else \
41+
-A clippy::used_underscore_binding \
42+
-A clippy::cast_possible_wrap \
43+
-A clippy::unnecessary_wraps \
44+
-A clippy::struct-excessive-bools \
45+
-A clippy::float-cmp \
46+
-A clippy::single_match_else \
47+
-A clippy::unreadable_literal \
48+
-A clippy::explicit_deref_methods \
49+
-A clippy::map_unwrap_or \
50+
-A clippy::unnested_or_patterns \
51+
-A clippy::similar_names \
52+
-A clippy::unused_self
53+
"""

.github/ISSUE_TEMPLATE/config.yml

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
blank_issues_enabled: false
22
contact_links:
33
- name: I have a question
4-
url: https://github.com/iced-rs/iced/discussions/new?category=q-a
5-
about: Open a discussion with a Q&A format.
4+
url: https://discourse.iced.rs/c/learn/6
5+
about: Ask and learn from others in the Discourse forum.
66
- name: I want to start a discussion
7-
url: https://github.com/iced-rs/iced/discussions/new
8-
about: Open a new discussion if you have any suggestions, ideas, feature requests, or simply want to show off something you've made.
7+
url: https://discourse.iced.rs/c/request-feedback/7
8+
about: Share your idea and gather feedback in the Discourse forum.
99
- name: I want to chat with other users of the library
1010
url: https://discord.com/invite/3xZJ65GAhd
11-
about: Join the Discord Server and get involved with the community!
11+
about: Join the Discord server and get involved with the community!

.github/PULL_REQUEST_TEMPLATE.md

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
The core team is busy and does not have time to mentor nor babysit new contributors. If a member of the core team thinks that reviewing and understanding your work will take more time and effort than writing it from scratch by themselves, your contribution will be dismissed. It is your responsibility to communicate and figure out how to reduce the likelihood of this!
2+
3+
Read the contributing guidelines for more details: https://github.com/iced-rs/iced/blob/master/CONTRIBUTING.md

.github/workflows/audit.yml

+21-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,30 @@
11
name: Audit
2-
on: [push]
2+
on:
3+
push: {}
4+
pull_request: {}
5+
schedule:
6+
- cron: '0 0 * * *'
37
jobs:
4-
dependencies:
8+
vulnerabilities:
59
runs-on: ubuntu-latest
610
steps:
711
- uses: hecrj/setup-rust-action@v1
812
- name: Install cargo-audit
913
run: cargo install cargo-audit
1014
- uses: actions/checkout@master
11-
- name: Audit dependencies
15+
- name: Resolve dependencies
16+
run: cargo update
17+
- name: Audit vulnerabilities
1218
run: cargo audit
19+
20+
artifacts:
21+
runs-on: ubuntu-latest
22+
steps:
23+
- uses: hecrj/setup-rust-action@v1
24+
- name: Install cargo-outdated
25+
run: cargo install cargo-outdated
26+
- uses: actions/checkout@master
27+
- name: Delete `web-sys` dependency from `integration` example
28+
run: sed -i '$d' examples/integration/Cargo.toml
29+
- name: Find outdated dependencies
30+
run: cargo outdated --workspace --exit-code 1

.github/workflows/build.yml

-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ jobs:
4040
- uses: actions/checkout@master
4141
- name: Enable static CRT linkage
4242
run: |
43-
mkdir .cargo
4443
echo '[target.x86_64-pc-windows-msvc]' >> .cargo/config
4544
echo 'rustflags = ["-Ctarget-feature=+crt-static"]' >> .cargo/config
4645
- name: Run the application without starting the shell

.github/workflows/check.yml

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: Check
2+
on: [push, pull_request]
3+
jobs:
4+
widget:
5+
runs-on: ubuntu-latest
6+
steps:
7+
- uses: hecrj/setup-rust-action@v1
8+
- uses: actions/checkout@master
9+
- name: Check standalone `iced_widget` crate
10+
run: cargo check --package iced_widget --features image,svg,canvas
11+
12+
wasm:
13+
runs-on: ubuntu-latest
14+
env:
15+
RUSTFLAGS: --cfg=web_sys_unstable_apis
16+
steps:
17+
- uses: hecrj/setup-rust-action@v1
18+
with:
19+
rust-version: stable
20+
targets: wasm32-unknown-unknown
21+
- uses: actions/checkout@master
22+
- name: Run checks
23+
run: cargo check --package iced --target wasm32-unknown-unknown
24+
- name: Check compilation of `tour` example
25+
run: cargo build --package tour --target wasm32-unknown-unknown
26+
- name: Check compilation of `todos` example
27+
run: cargo build --package todos --target wasm32-unknown-unknown
28+
- name: Check compilation of `integration` example
29+
run: cargo build --package integration --target wasm32-unknown-unknown

.github/workflows/document.yml

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
name: Document
2-
on:
3-
push:
4-
branches:
5-
- master
2+
on: [push, pull_request]
63
jobs:
74
all:
85
runs-on: ubuntu-20.04
@@ -18,6 +15,7 @@ jobs:
1815
RUSTDOCFLAGS="--cfg docsrs" \
1916
cargo doc --no-deps --all-features \
2017
-p iced_core \
18+
-p iced_highlighter \
2119
-p iced_style \
2220
-p iced_futures \
2321
-p iced_runtime \
@@ -31,6 +29,7 @@ jobs:
3129
- name: Write CNAME file
3230
run: echo 'docs.iced.rs' > ./target/doc/CNAME
3331
- name: Publish documentation
32+
if: github.ref == 'refs/heads/master'
3433
uses: peaceiris/actions-gh-pages@v3
3534
with:
3635
deploy_key: ${{ secrets.DOCS_DEPLOY_KEY }}

.github/workflows/lint.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ name: Lint
22
on: [push, pull_request]
33
jobs:
44
all:
5-
runs-on: ubuntu-latest
5+
runs-on: macOS-latest
66
steps:
77
- uses: hecrj/setup-rust-action@v1
88
with:
99
components: clippy
1010
- uses: actions/checkout@master
1111
- name: Check lints
12-
run: cargo clippy --workspace --all-features --all-targets --no-deps -- -D warnings
12+
run: cargo lint

.github/workflows/test.yml

+4-19
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
name: Test
22
on: [push, pull_request]
33
jobs:
4-
native:
4+
all:
55
runs-on: ${{ matrix.os }}
6+
env:
7+
RUSTFLAGS: --deny warnings
68
strategy:
79
matrix:
810
os: [ubuntu-latest, windows-latest, macOS-latest]
@@ -17,25 +19,8 @@ jobs:
1719
run: |
1820
export DEBIAN_FRONTED=noninteractive
1921
sudo apt-get -qq update
20-
sudo apt-get install -y libxkbcommon-dev
22+
sudo apt-get install -y libxkbcommon-dev libgtk-3-dev
2123
- name: Run tests
2224
run: |
2325
cargo test --verbose --workspace
2426
cargo test --verbose --workspace --all-features
25-
26-
web:
27-
runs-on: ubuntu-latest
28-
steps:
29-
- uses: hecrj/setup-rust-action@v1
30-
with:
31-
rust-version: stable
32-
targets: wasm32-unknown-unknown
33-
- uses: actions/checkout@master
34-
- name: Run checks
35-
run: cargo check --package iced --target wasm32-unknown-unknown
36-
- name: Check compilation of `tour` example
37-
run: cargo build --package tour --target wasm32-unknown-unknown
38-
- name: Check compilation of `todos` example
39-
run: cargo build --package todos --target wasm32-unknown-unknown
40-
- name: Check compilation of `integration` example
41-
run: cargo build --package integration --target wasm32-unknown-unknown

.gitignore

-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,5 @@ target/
22
pkg/
33
**/*.rs.bk
44
Cargo.lock
5-
.cargo/
65
dist/
76
traces/

CHANGELOG.md

+131-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,135 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
55
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

77
## [Unreleased]
8+
### Added
9+
- Explicit text caching. [#2058](https://github.com/iced-rs/iced/pull/2058)
10+
- `Theme::Custom::with_fn` for custom extended palette generation. [#2067](https://github.com/iced-rs/iced/pull/2067)
11+
12+
### Changed
13+
- Updated `wgpu` to `0.17`. [#2065](https://github.com/iced-rs/iced/pull/2065)
14+
- Changed `Button::style` to take an `impl Into<...>` for consistency. [#2046](https://github.com/iced-rs/iced/pull/2046)
15+
16+
### Fixed
17+
- Missing `width` attribute in `styling` example. [#2062](https://github.com/iced-rs/iced/pull/2062)
18+
19+
Many thanks to...
20+
21+
- @akshayr-mecha
22+
- @dtzxporter
23+
24+
## [0.10.0] - 2023-07-28
25+
### Added
26+
- Text shaping, font fallback, and `iced_wgpu` overhaul. [#1697](https://github.com/iced-rs/iced/pull/1697)
27+
- Software renderer, runtime renderer fallback, and core consolidation. [#1748](https://github.com/iced-rs/iced/pull/1748)
28+
- Incremental rendering for `iced_tiny_skia`. [#1811](https://github.com/iced-rs/iced/pull/1811)
29+
- Configurable `LineHeight` support for text widgets. [#1828](https://github.com/iced-rs/iced/pull/1828)
30+
- `text::Shaping` strategy selection. [#1822](https://github.com/iced-rs/iced/pull/1822)
31+
- Subpixel glyph positioning and layout linearity. [#1921](https://github.com/iced-rs/iced/pull/1921)
32+
- Background gradients. [#1846](https://github.com/iced-rs/iced/pull/1846)
33+
- Offscreen rendering and screenshots. [#1845](https://github.com/iced-rs/iced/pull/1845)
34+
- Nested overlays. [#1719](https://github.com/iced-rs/iced/pull/1719)
35+
- Cursor availability. [#1904](https://github.com/iced-rs/iced/pull/1904)
36+
- Backend-specific primitives. [#1932](https://github.com/iced-rs/iced/pull/1932)
37+
- `ComboBox` widget. [#1954](https://github.com/iced-rs/iced/pull/1954)
38+
- `web-colors` feature flag to enable "sRGB linear" blending. [#1888](https://github.com/iced-rs/iced/pull/1888)
39+
- `PaneGrid` logic to split panes by drag & drop. [#1856](https://github.com/iced-rs/iced/pull/1856)
40+
- `PaneGrid` logic to drag & drop panes to the edges. [#1865](https://github.com/iced-rs/iced/pull/1865)
41+
- Type-safe `Scrollable` direction. [#1878](https://github.com/iced-rs/iced/pull/1878)
42+
- `Scrollable` alignment. [#1912](https://github.com/iced-rs/iced/pull/1912)
43+
- Helpers to change viewport alignment of a `Scrollable`. [#1953](https://github.com/iced-rs/iced/pull/1953)
44+
- `scroll_to` widget operation. [#1796](https://github.com/iced-rs/iced/pull/1796)
45+
- `scroll_to` helper. [#1804](https://github.com/iced-rs/iced/pull/1804)
46+
- `visible_bounds` widget operation for `Container`. [#1971](https://github.com/iced-rs/iced/pull/1971)
47+
- Command to fetch window size. [#1927](https://github.com/iced-rs/iced/pull/1927)
48+
- Conversion support from `Fn` trait to custom theme. [#1861](https://github.com/iced-rs/iced/pull/1861)
49+
- Configurable border radii on relevant widgets. [#1869](https://github.com/iced-rs/iced/pull/1869)
50+
- `border_radius` styling to `Slider` rail. [#1892](https://github.com/iced-rs/iced/pull/1892)
51+
- `application_id` in `PlatformSpecific` settings for Linux. [#1963](https://github.com/iced-rs/iced/pull/1963)
52+
- Aliased entries in `text::Cache`. [#1934](https://github.com/iced-rs/iced/pull/1934)
53+
- Text cache modes. [#1938](https://github.com/iced-rs/iced/pull/1938)
54+
- `operate` method for `program::State`. [#1913](https://github.com/iced-rs/iced/pull/1913)
55+
- `Viewport` argument to `Widget::on_event`. [#1956](https://github.com/iced-rs/iced/pull/1956)
56+
- Nix instructions to `DEPENDENCIES.md`. [#1859](https://github.com/iced-rs/iced/pull/1859)
57+
- Loading spinners example. [#1902](https://github.com/iced-rs/iced/pull/1902)
58+
- Workflow that verifies `CHANGELOG` is always up-to-date. [#1970](https://github.com/iced-rs/iced/pull/1970)
59+
- Outdated mentions of `iced_native` in `README`. [#1979](https://github.com/iced-rs/iced/pull/1979)
60+
61+
### Changed
62+
- Updated `wgpu` to `0.16`. [#1807](https://github.com/iced-rs/iced/pull/1807)
63+
- Updated `glam` to `0.24`. [#1840](https://github.com/iced-rs/iced/pull/1840)
64+
- Updated `winit` to `0.28`. [#1738](https://github.com/iced-rs/iced/pull/1738)
65+
- Updated `palette` to `0.7`. [#1875](https://github.com/iced-rs/iced/pull/1875)
66+
- Updated `ouroboros` to `0.17`. [#1925](https://github.com/iced-rs/iced/pull/1925)
67+
- Updated `resvg` to `0.35` and `tiny-skia` to `0.10`. [#1907](https://github.com/iced-rs/iced/pull/1907)
68+
- Changed `mouse::Button::Other` to take `u16` instead of `u8`. [#1797](https://github.com/iced-rs/iced/pull/1797)
69+
- Changed `subscription::channel` to take a `FnOnce` non-`Sync` closure. [#1917](https://github.com/iced-rs/iced/pull/1917)
70+
- Removed `Copy` requirement for text `StyleSheet::Style`. [#1814](https://github.com/iced-rs/iced/pull/1814)
71+
- Removed `min_width` of 1 from scrollbar & scroller for `Scrollable`. [#1844](https://github.com/iced-rs/iced/pull/1844)
72+
- Used `Widget::overlay` for `Tooltip`. [#1692](https://github.com/iced-rs/iced/pull/1692)
73+
74+
### Fixed
75+
- `Responsive` layout not invalidated when shell layout is invalidated. [#1799](https://github.com/iced-rs/iced/pull/1799)
76+
- `Responsive` layout not invalidated when size changes without a `view` call. [#1890](https://github.com/iced-rs/iced/pull/1890)
77+
- Broken link in `ROADMAP.md`. [#1815](https://github.com/iced-rs/iced/pull/1815)
78+
- `bounds` of selected option background in `Menu`. [#1831](https://github.com/iced-rs/iced/pull/1831)
79+
- Border radius logic in `iced_tiny_skia`. [#1842](https://github.com/iced-rs/iced/pull/1842)
80+
- `Svg` filtered color not premultiplied. [#1841](https://github.com/iced-rs/iced/pull/1841)
81+
- Race condition when growing an `image::Atlas`. [#1847](https://github.com/iced-rs/iced/pull/1847)
82+
- Clearing damaged surface with background color in `iced_tiny_skia`. [#1854](https://github.com/iced-rs/iced/pull/1854)
83+
- Private gradient pack logic for `iced_graphics::Gradient`. [#1871](https://github.com/iced-rs/iced/pull/1871)
84+
- Unordered quads of different background types. [#1873](https://github.com/iced-rs/iced/pull/1873)
85+
- Panic in `glyphon` when glyphs are missing. [#1883](https://github.com/iced-rs/iced/pull/1883)
86+
- Empty scissor rectangle in `iced_wgpu::triangle` pipeline. [#1893](https://github.com/iced-rs/iced/pull/1893)
87+
- `Scrollable` scrolling when mouse not over it. [#1910](https://github.com/iced-rs/iced/pull/1910)
88+
- `translation` in `layout` of `Nested` overlay. [#1924](https://github.com/iced-rs/iced/pull/1924)
89+
- Build when using vendored dependencies. [#1928](https://github.com/iced-rs/iced/pull/1928)
90+
- Minor grammar mistake. [#1931](https://github.com/iced-rs/iced/pull/1931)
91+
- Quad rendering including border only inside of the bounds. [#1843](https://github.com/iced-rs/iced/pull/1843)
92+
- Redraw requests not being forwarded for `Component` overlays. [#1949](https://github.com/iced-rs/iced/pull/1949)
93+
- Blinking input cursor when window loses focus. [#1955](https://github.com/iced-rs/iced/pull/1955)
94+
- `BorderRadius` not exposed in root crate. [#1972](https://github.com/iced-rs/iced/pull/1972)
95+
- Outdated `ROADMAP`. [#1958](https://github.com/iced-rs/iced/pull/1958)
96+
97+
### Patched
98+
- Keybinds to cycle `ComboBox` options. [#1991](https://github.com/iced-rs/iced/pull/1991)
99+
- `Tooltip` overlay position inside `Scrollable`. [#1978](https://github.com/iced-rs/iced/pull/1978)
100+
- `iced_wgpu` freezing on empty layers. [#1996](https://github.com/iced-rs/iced/pull/1996)
101+
- `image::Viewer` reacting to any scroll event. [#1998](https://github.com/iced-rs/iced/pull/1998)
102+
- `TextInput` pasting text when `Alt` key is pressed. [#2006](https://github.com/iced-rs/iced/pull/2006)
103+
- Broken link to old `iced_native` crate in `README`. [#2024](https://github.com/iced-rs/iced/pull/2024)
104+
- `Rectangle::contains` being non-exclusive. [#2017](https://github.com/iced-rs/iced/pull/2017)
105+
- Documentation for `Arc` and `arc::Elliptical`. [#2008](https://github.com/iced-rs/iced/pull/2008)
106+
107+
Many thanks to...
108+
109+
- @a1phyr
110+
- @alec-deason
111+
- @AustinMReppert
112+
- @bbb651
113+
- @bungoboingo
114+
- @casperstorm
115+
- @clarkmoody
116+
- @Davidster
117+
- @Drakulix
118+
- @genusistimelord
119+
- @GyulyVGC
120+
- @ids1024
121+
- @jhff
122+
- @JonathanLindsey
123+
- @kr105
124+
- @marienz
125+
- @malramsay64
126+
- @nicksenger
127+
- @nicoburns
128+
- @NyxAlexandra
129+
- @Redhawk18
130+
- @RGBCube
131+
- @rs017991
132+
- @tarkah
133+
- @thunderstorm010
134+
- @ua-kxie
135+
- @wash2
136+
- @wiiznokes
8137

9138
## [0.9.0] - 2023-04-13
10139
### Added
@@ -467,7 +596,8 @@ Many thanks to...
467596
### Added
468597
- First release! :tada:
469598

470-
[Unreleased]: https://github.com/iced-rs/iced/compare/0.9.0...HEAD
599+
[Unreleased]: https://github.com/iced-rs/iced/compare/0.10.0...HEAD
600+
[0.10.0]: https://github.com/iced-rs/iced/compare/0.9.0...0.10.0
471601
[0.9.0]: https://github.com/iced-rs/iced/compare/0.8.0...0.9.0
472602
[0.8.0]: https://github.com/iced-rs/iced/compare/0.7.0...0.8.0
473603
[0.7.0]: https://github.com/iced-rs/iced/compare/0.6.0...0.7.0

0 commit comments

Comments
 (0)