From 56bf8b79f3ad56c34a2753248cfe38a9e0ccac8b Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Mon, 5 Feb 2024 17:28:10 +0100 Subject: [PATCH] Release 0.26.0 - Text selection in labels --- CHANGELOG.md | 46 +++++++++++++++++++++++++++++++++ Cargo.lock | 24 ++++++++--------- Cargo.toml | 24 ++++++++--------- crates/ecolor/CHANGELOG.md | 4 +++ crates/eframe/CHANGELOG.md | 17 ++++++++++++ crates/egui-wgpu/CHANGELOG.md | 11 ++++++++ crates/egui-winit/CHANGELOG.md | 5 ++++ crates/egui_extras/CHANGELOG.md | 7 +++++ crates/egui_glow/CHANGELOG.md | 4 +++ crates/egui_plot/CHANGELOG.md | 11 ++++++++ crates/epaint/CHANGELOG.md | 6 +++++ scripts/cargo_deny.sh | 2 +- 12 files changed, 136 insertions(+), 25 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6658a09d203..b47f24f23ac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,52 @@ This file is updated upon each release. Changes since the last release can be found at or by running the `scripts/generate_changelog.py` script. +## 0.26.0 - 2024-02-05 - Text selection in labels + +### ⚠️ BREAKING +* Always set `response.hovered` to false when dragging another widget [#3860](https://github.com/emilk/egui/pull/3860) +* `InputState::scroll_delta` has been replaced by `InputState::raw_scroll_delta` and `InputState::smooth_scroll_delta` [#3884](https://github.com/emilk/egui/pull/3884) +* Improve `Response.dragged`, `drag_started` and `clicked` [#3888](https://github.com/emilk/egui/pull/3888) + +### ⭐ Added +* Selectable text in Labels [#3814](https://github.com/emilk/egui/pull/3814) [#3870](https://github.com/emilk/egui/pull/3870) +* Add some drag-and-drop-related APIs in `Response` and `Memory` [#3876](https://github.com/emilk/egui/pull/3876) (thanks [@abey79](https://github.com/abey79)!) +* Add drag-and-drop APIs with payloads storage [#3887](https://github.com/emilk/egui/pull/3887) +* `ComboBox`: add builder method for height [#3001](https://github.com/emilk/egui/pull/3001) (thanks [@hinto-janai](https://github.com/hinto-janai)!) +* Add keys `?`, `/`, `|` [#3820](https://github.com/emilk/egui/pull/3820) +* Add `Response::contains_pointer` [#3859](https://github.com/emilk/egui/pull/3859) +* Add `Align2::anchor_size` [#3863](https://github.com/emilk/egui/pull/3863) +* Add `Context::debug_text` [#3864](https://github.com/emilk/egui/pull/3864) +* Allow read access to shapes added to painter this frame [#3866](https://github.com/emilk/egui/pull/3866) (thanks [@brunizzl](https://github.com/brunizzl)!) +* Register callbacks with `Context::on_begin_frame` and `on_end_frame` [#3886](https://github.com/emilk/egui/pull/3886) +* Improve `Frame` API to allow picking color until after adding content [#3889](https://github.com/emilk/egui/pull/3889) +* Add opacity factor to `TextShape` [#3916](https://github.com/emilk/egui/pull/3916) (thanks [@StratusFearMe21](https://github.com/StratusFearMe21)!) +* `Context::repaint_causes`: `file:line` of what caused a repaint [#3949](https://github.com/emilk/egui/pull/3949) +* Add `TextureOptions::wrap_mode` [#3954](https://github.com/emilk/egui/pull/3954) (thanks [@CodedNil](https://github.com/CodedNil)!) +* Add `Spacing::menu_width` [#3973](https://github.com/emilk/egui/pull/3973) + +### 🔧 Changed +* Move text selection logic to own module [#3843](https://github.com/emilk/egui/pull/3843) +* Smooth scrolling [#3884](https://github.com/emilk/egui/pull/3884) +* Turn off text wrapping by default in combo-box popups [#3912](https://github.com/emilk/egui/pull/3912) +* `Response.context_menu` now returns the response of the context menu, if open [#3904](https://github.com/emilk/egui/pull/3904) (thanks [@AufarZakiev](https://github.com/AufarZakiev)!) +* Update to puffin 0.19 [#3940](https://github.com/emilk/egui/pull/3940) +* Wait with showing tooltip until mouse has been still for 300ms [#3977](https://github.com/emilk/egui/pull/3977) + +### 🐛 Fixed +* Fix: dragging to above/below a `TextEdit` or `Label` will select text to begin/end [#3858](https://github.com/emilk/egui/pull/3858) +* Fix clickable widgets blocking scrolling on touch screens [#3815](https://github.com/emilk/egui/pull/3815) (thanks [@lucasmerlin](https://github.com/lucasmerlin)!) +* Fix `stable_dt` [#3832](https://github.com/emilk/egui/pull/3832) +* Bug Fix : `Response::is_pointer_button_down_on` is now false the frame the button is released [#3833](https://github.com/emilk/egui/pull/3833) (thanks [@rustbasic](https://github.com/rustbasic)!) +* Use runtime knowledge of OS for OS-specific text editing [#3840](https://github.com/emilk/egui/pull/3840) +* Fix calling `request_repaint_after` every frame causing immediate repaint [#3978](https://github.com/emilk/egui/pull/3978) + +### 🚀 Performance +* Niche-optimize `Id` so that `Option` is the same size as `Id` [#3932](https://github.com/emilk/egui/pull/3932) +* Parallel tessellation with opt-in `rayon` feature [#3934](https://github.com/emilk/egui/pull/3934) + + + ## 0.25.0 - 2024-01-08 - Better keyboard input ### ⚠️ BREAKING diff --git a/Cargo.lock b/Cargo.lock index c2e0bdf30c9..92131984e25 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1181,7 +1181,7 @@ checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" [[package]] name = "ecolor" -version = "0.25.0" +version = "0.26.0" dependencies = [ "bytemuck", "cint", @@ -1192,7 +1192,7 @@ dependencies = [ [[package]] name = "eframe" -version = "0.25.0" +version = "0.26.0" dependencies = [ "bytemuck", "cocoa", @@ -1230,7 +1230,7 @@ dependencies = [ [[package]] name = "egui" -version = "0.25.0" +version = "0.26.0" dependencies = [ "accesskit", "ahash", @@ -1246,7 +1246,7 @@ dependencies = [ [[package]] name = "egui-wgpu" -version = "0.25.0" +version = "0.26.0" dependencies = [ "bytemuck", "document-features", @@ -1263,7 +1263,7 @@ dependencies = [ [[package]] name = "egui-winit" -version = "0.25.0" +version = "0.26.0" dependencies = [ "accesskit_winit", "arboard", @@ -1281,7 +1281,7 @@ dependencies = [ [[package]] name = "egui_demo_app" -version = "0.25.0" +version = "0.26.0" dependencies = [ "bytemuck", "chrono", @@ -1306,7 +1306,7 @@ dependencies = [ [[package]] name = "egui_demo_lib" -version = "0.25.0" +version = "0.26.0" dependencies = [ "chrono", "criterion", @@ -1321,7 +1321,7 @@ dependencies = [ [[package]] name = "egui_extras" -version = "0.25.0" +version = "0.26.0" dependencies = [ "chrono", "document-features", @@ -1339,7 +1339,7 @@ dependencies = [ [[package]] name = "egui_glow" -version = "0.25.0" +version = "0.26.0" dependencies = [ "bytemuck", "document-features", @@ -1359,7 +1359,7 @@ dependencies = [ [[package]] name = "egui_plot" -version = "0.25.0" +version = "0.26.0" dependencies = [ "document-features", "egui", @@ -1388,7 +1388,7 @@ checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "emath" -version = "0.25.0" +version = "0.26.0" dependencies = [ "bytemuck", "document-features", @@ -1463,7 +1463,7 @@ dependencies = [ [[package]] name = "epaint" -version = "0.25.0" +version = "0.26.0" dependencies = [ "ab_glyph", "ahash", diff --git a/Cargo.toml b/Cargo.toml index d6d8f8ca437..ac56fe60685 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,7 +20,7 @@ members = [ edition = "2021" license = "MIT OR Apache-2.0" rust-version = "1.72" -version = "0.25.0" +version = "0.26.0" [profile.release] @@ -48,17 +48,17 @@ opt-level = 2 [workspace.dependencies] -emath = { version = "0.25.0", path = "crates/emath", default-features = false } -ecolor = { version = "0.25.0", path = "crates/ecolor", default-features = false } -epaint = { version = "0.25.0", path = "crates/epaint", default-features = false } -egui = { version = "0.25.0", path = "crates/egui", default-features = false } -egui_plot = { version = "0.25.0", path = "crates/egui_plot", default-features = false } -egui-winit = { version = "0.25.0", path = "crates/egui-winit", default-features = false } -egui_extras = { version = "0.25.0", path = "crates/egui_extras", default-features = false } -egui-wgpu = { version = "0.25.0", path = "crates/egui-wgpu", default-features = false } -egui_demo_lib = { version = "0.25.0", path = "crates/egui_demo_lib", default-features = false } -egui_glow = { version = "0.25.0", path = "crates/egui_glow", default-features = false } -eframe = { version = "0.25.0", path = "crates/eframe", default-features = false } +emath = { version = "0.26.0", path = "crates/emath", default-features = false } +ecolor = { version = "0.26.0", path = "crates/ecolor", default-features = false } +epaint = { version = "0.26.0", path = "crates/epaint", default-features = false } +egui = { version = "0.26.0", path = "crates/egui", default-features = false } +egui_plot = { version = "0.26.0", path = "crates/egui_plot", default-features = false } +egui-winit = { version = "0.26.0", path = "crates/egui-winit", default-features = false } +egui_extras = { version = "0.26.0", path = "crates/egui_extras", default-features = false } +egui-wgpu = { version = "0.26.0", path = "crates/egui-wgpu", default-features = false } +egui_demo_lib = { version = "0.26.0", path = "crates/egui_demo_lib", default-features = false } +egui_glow = { version = "0.26.0", path = "crates/egui_glow", default-features = false } +eframe = { version = "0.26.0", path = "crates/eframe", default-features = false } #TODO(emilk): make more things workspace dependencies ahash = { version = "0.8.6", default-features = false, features = [ diff --git a/crates/ecolor/CHANGELOG.md b/crates/ecolor/CHANGELOG.md index 1acb11cd1fd..7cab53dac53 100644 --- a/crates/ecolor/CHANGELOG.md +++ b/crates/ecolor/CHANGELOG.md @@ -6,6 +6,10 @@ This file is updated upon each release. Changes since the last release can be found at or by running the `scripts/generate_changelog.py` script. +## 0.26.0 - 2024-02-05 +* Nothing new + + ## 0.25.0 - 2024-01-08 * Add `Color32::from_hex` and `Color32::to_hex` [#3570](https://github.com/emilk/egui/pull/3570) [#3777](https://github.com/emilk/egui/pull/3777) (thanks [@YgorSouza](https://github.com/YgorSouza)!) diff --git a/crates/eframe/CHANGELOG.md b/crates/eframe/CHANGELOG.md index 171cf5db711..74e1c69f485 100644 --- a/crates/eframe/CHANGELOG.md +++ b/crates/eframe/CHANGELOG.md @@ -7,6 +7,23 @@ This file is updated upon each release. Changes since the last release can be found at or by running the `scripts/generate_changelog.py` script. +## 0.26.0 - 2024-02-05 +* Update `wgpu` to 0.19 [#3824](https://github.com/emilk/egui/pull/3824) +* Disable the default features of `wgpu` [#3875](https://github.com/emilk/egui/pull/3875) +* Much more accurate `cpu_usage` timing [#3913](https://github.com/emilk/egui/pull/3913) +* Update to puffin 0.19 [#3940](https://github.com/emilk/egui/pull/3940) + +#### Desktop/Native: +* Keep `ViewportInfo::maximized` and `minimized` up-to-date on Windows [#3831](https://github.com/emilk/egui/pull/3831) (thanks [@rustbasic](https://github.com/rustbasic)!) +* Handle `IconData::default()` without crashing [#3842](https://github.com/emilk/egui/pull/3842) +* Fix Android crash on resume [#3847](https://github.com/emilk/egui/pull/3847) [#3867](https://github.com/emilk/egui/pull/3867) (thanks [@Garoven](https://github.com/Garoven)!) +* Add `WgpuConfiguration::desired_maximum_frame_latency` [#3874](https://github.com/emilk/egui/pull/3874) +* Don't call `App::update` on minimized windows [#3877](https://github.com/emilk/egui/pull/3877) (thanks [@rustbasic](https://github.com/rustbasic)!) + +#### Web: +* When using `wgpu` on web, `eframe` will try to use WebGPU if available, then fall back to WebGL [#3824](https://github.com/emilk/egui/pull/3824) [#3895](https://github.com/emilk/egui/pull/3895) (thanks [@Wumpf](https://github.com/Wumpf)!) + + ## 0.25.0 - 2024-01-08 * If both `glow` and `wgpu` features are enabled, default to `wgpu` [#3717](https://github.com/emilk/egui/pull/3717) diff --git a/crates/egui-wgpu/CHANGELOG.md b/crates/egui-wgpu/CHANGELOG.md index 870d2d97f96..71465a9e17a 100644 --- a/crates/egui-wgpu/CHANGELOG.md +++ b/crates/egui-wgpu/CHANGELOG.md @@ -6,6 +6,17 @@ This file is updated upon each release. Changes since the last release can be found at or by running the `scripts/generate_changelog.py` script. +## 0.26.0 - 2024-02-05 +* Update wgpu to 0.19 [#3824](https://github.com/emilk/egui/pull/3824) +* Add `WgpuConfiguration::desired_maximum_frame_latency` [#3874](https://github.com/emilk/egui/pull/3874) +* Disable the default features of `wgpu` [#3875](https://github.com/emilk/egui/pull/3875) +* If WebGPU fails, re-try adapter creation with WebGL [#3895](https://github.com/emilk/egui/pull/3895) (thanks [@Wumpf](https://github.com/Wumpf)!) +* Delay call to `get_current_texture` (possible small performance win) [#3914](https://github.com/emilk/egui/pull/3914) +* Add `x11` and `wayland` features [#3909](https://github.com/emilk/egui/pull/3909) (thanks [@YgorSouza](https://github.com/YgorSouza)!) +* Pass `ScreenDescriptor` to `egui_wgpu::CallbackTrait::prepare` [#3960](https://github.com/emilk/egui/pull/3960) (thanks [@StratusFearMe21](https://github.com/StratusFearMe21)!) +* Make `egui_wgpu::renderer` a private module [#3979](https://github.com/emilk/egui/pull/3979) + + ## 0.25.0 - 2024-01-08 * Only call wgpu paint callback if viewport is positive [#3778](https://github.com/emilk/egui/pull/3778) (thanks [@msparkles](https://github.com/msparkles)!) diff --git a/crates/egui-winit/CHANGELOG.md b/crates/egui-winit/CHANGELOG.md index 6aef513b228..bc42615b07e 100644 --- a/crates/egui-winit/CHANGELOG.md +++ b/crates/egui-winit/CHANGELOG.md @@ -5,6 +5,11 @@ This file is updated upon each release. Changes since the last release can be found at or by running the `scripts/generate_changelog.py` script. +## 0.26.0 - 2024-02-05 +* Don't consume clipboard shortcuts [#3812](https://github.com/emilk/egui/pull/3812) (thanks [@Dinnerbone](https://github.com/Dinnerbone)!) +* Make the `clipboard_text` and `allow_ime` state public [#3724](https://github.com/emilk/egui/pull/3724) (thanks [@tosti007](https://github.com/tosti007)!) + + ## 0.25.0 - 2024-01-08 * Update to winit 0.29 [#3649](https://github.com/emilk/egui/pull/3649) (thanks [@fornwall](https://github.com/fornwall)!) * Fix: Let `accesskit` process window events [#3733](https://github.com/emilk/egui/pull/3733) (thanks [@DataTriny](https://github.com/DataTriny)!) diff --git a/crates/egui_extras/CHANGELOG.md b/crates/egui_extras/CHANGELOG.md index 58ce8a7065b..1f204649e3b 100644 --- a/crates/egui_extras/CHANGELOG.md +++ b/crates/egui_extras/CHANGELOG.md @@ -5,6 +5,13 @@ This file is updated upon each release. Changes since the last release can be found at or by running the `scripts/generate_changelog.py` script. +## 0.26.0 - 2024-02-05 +* Remove `unwrap`s in SVG scaling [#3826](https://github.com/emilk/egui/pull/3826) (thanks [@amPerl](https://github.com/amPerl)!) +* Update to ehttp 0.4 [#3834](https://github.com/emilk/egui/pull/3834) +* Fix `StripBuilder` not allocating its used space [#3957](https://github.com/emilk/egui/pull/3957) (thanks [@IVAN-MK7](https://github.com/IVAN-MK7)!) +* Override text color with stroke selection color for selected cells [#3968](https://github.com/emilk/egui/pull/3968) (thanks [@njust](https://github.com/njust)!) + + ## 0.25.0 - 2024-01-08 * Implement table row selection and hover highlighting [#3347](https://github.com/emilk/egui/pull/3347) (thanks [@laurooyen](https://github.com/laurooyen)!) * Fix `egui_extras::Table` scrolling bug [#3690](https://github.com/emilk/egui/pull/3690) (thanks [@abey79](https://github.com/abey79)!) diff --git a/crates/egui_glow/CHANGELOG.md b/crates/egui_glow/CHANGELOG.md index aee5c70606f..bc524cc24f2 100644 --- a/crates/egui_glow/CHANGELOG.md +++ b/crates/egui_glow/CHANGELOG.md @@ -6,6 +6,10 @@ Changes since the last release can be found at or by running the `scripts/generate_changelog.py` script. +## 0.26.0 - 2024-02-05 +* Make `egui_plot::PlotMemory` public [#3871](https://github.com/emilk/egui/pull/3871) +* Customizable spacing of grid and axis label spacing [#3896](https://github.com/emilk/egui/pull/3896) +* Change default plot line thickness from 1.0 to 1.5 [#3918](https://github.com/emilk/egui/pull/3918) +* Automatically expand plot axes thickness to fit their labels [#3921](https://github.com/emilk/egui/pull/3921) +* Plot items now have optional id which is returned in the plot's response when hovered [#3920](https://github.com/emilk/egui/pull/3920) (thanks [@Wumpf](https://github.com/Wumpf)!) +* Parallel tessellation with opt-in `rayon` feature [#3934](https://github.com/emilk/egui/pull/3934) +* Make `egui_plot::PlotItem` a public trait [#3943](https://github.com/emilk/egui/pull/3943) +* Fix clip rect for plot items [#3955](https://github.com/emilk/egui/pull/3955) (thanks [@YgorSouza](https://github.com/YgorSouza)!) + + ## 0.25.0 - 2024-01-08 * Fix plot auto-bounds unset by default [#3722](https://github.com/emilk/egui/pull/3722) (thanks [@abey79](https://github.com/abey79)!) * Add methods to zoom a `Plot` programmatically [#2714](https://github.com/emilk/egui/pull/2714) (thanks [@YgorSouza](https://github.com/YgorSouza)!) diff --git a/crates/epaint/CHANGELOG.md b/crates/epaint/CHANGELOG.md index cd3bd7a2f05..9aa9a9bc660 100644 --- a/crates/epaint/CHANGELOG.md +++ b/crates/epaint/CHANGELOG.md @@ -5,6 +5,12 @@ This file is updated upon each release. Changes since the last release can be found at or by running the `scripts/generate_changelog.py` script. +## 0.26.0 - 2024-02-05 +* Add `Align2::anchor_size` [#3863](https://github.com/emilk/egui/pull/3863) +* Add opacity factor to `TextShape` [#3916](https://github.com/emilk/egui/pull/3916) (thanks [@StratusFearMe21](https://github.com/StratusFearMe21)!) +* Parallel tessellation with opt-in `rayon` feature [#3934](https://github.com/emilk/egui/pull/3934) + + ## 0.25.0 - 2024-01-08 * Replace a special `Color32::PLACEHOLDER` with widget fallback color [#3727](https://github.com/emilk/egui/pull/3727) * Add support for dashed lines with offset [#3720](https://github.com/emilk/egui/pull/3720) (thanks [@oscargus](https://github.com/oscargus)!) diff --git a/scripts/cargo_deny.sh b/scripts/cargo_deny.sh index 304bf9b7758..560b8efd1bb 100755 --- a/scripts/cargo_deny.sh +++ b/scripts/cargo_deny.sh @@ -5,7 +5,7 @@ script_path=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P ) cd "$script_path/.." set -x -cargo install cargo-deny +cargo install --quiet cargo-deny cargo deny --all-features --log-level error --target aarch64-apple-darwin check cargo deny --all-features --log-level error --target aarch64-linux-android check