Commit graph

8 commits

Author SHA1 Message Date
Cheong Lau
bd438a8581 perf: reduce memory allocations
This also changes `widget::column::with_children` and
`widget::row::with_children` to take an `impl IntoIterator` instead
of a `Vec`, like the `iced` variants of these functions do.

This shouldn't be a breaking change since passing in a `Vec` will still
compile and function exactly as before.

(Using `iced::widget::Column::from_vec` or
`iced::widget::Row::from_vec` isn't possible, since the elements of the
`Vec` aren't checked, so the size of the resulting `Column` or `Row`
won't adapt to the size of its children. Perhaps a new function could
be added to mirror `iced`'s?)
2025-10-22 04:30:57 +02:00
Vukašin Vojinović
ad1672b881 fix: window corner handling 2025-10-03 14:28:34 -04:00
Ashley Wulber
ab41b83cd8 cargo fmt 2025-09-30 10:59:51 -04:00
Ashley Wulber
9815d4d981 feat(wayland): corner-radius protocol support 2025-09-30 10:59:51 -04:00
Michael Aaron Murphy
e7b7c3a126 improv: enable dbus-config by default, but only for Linux targets 2025-08-20 17:31:26 +02:00
Ashley Wulber
0943f131c2 refactor: track focus chain 2025-07-16 22:23:13 +02:00
Michael Aaron Murphy
8cf372c9b9
perf: inline public getters/setters, and use non-generic inner functions
To reduce compile-times and avoid some overhead to binary size, this will modify some of our
generic functions to use non-generic inner functions where possible. The inner functions are
marked carefully with `#[inline(never)]` to prevent being inlined by LLVM at their callsites

While looking for generic functions to optimize, I have also taken the opportunity to annotate
public non-generic getters and setters with `#[inline]` to ensure that LLVM will inline them
across crate boundaries. By default, only generic functions are automatically inlined, and
only when enabling fat LTO are constant functions reliably inlined across crate boundaries.
2025-03-21 13:31:34 +01:00
Ashley Wulber
337b80d4ca
feat: Tooltips and Better Surface Management 2025-03-14 16:56:21 +01:00
Renamed from src/app/core.rs (Browse further)