From 2397194d5e494b55322d0153a312d1e79936c92e Mon Sep 17 00:00:00 2001 From: Lucas Meurer Date: Wed, 5 Aug 2026 12:55:25 +0200 Subject: [PATCH] Release 0.36.0 - Improved mobile keyboard support (#8390) --- CHANGELOG.md | 56 ++++++++++++++++++++++++ Cargo.lock | 34 +++++++------- Cargo.toml | 28 ++++++------ crates/ecolor/CHANGELOG.md | 3 ++ crates/eframe/CHANGELOG.md | 14 ++++++ crates/egui-wgpu/CHANGELOG.md | 6 +++ crates/egui-winit/CHANGELOG.md | 4 ++ crates/egui_extras/CHANGELOG.md | 4 ++ crates/egui_glow/CHANGELOG.md | 4 ++ crates/egui_inspection/CHANGELOG.md | 12 +++++ crates/egui_kittest/CHANGELOG.md | 6 +++ crates/emath/CHANGELOG.md | 4 ++ crates/epaint/CHANGELOG.md | 5 +++ crates/epaint_default_fonts/CHANGELOG.md | 4 ++ 14 files changed, 153 insertions(+), 31 deletions(-) create mode 100644 crates/egui_inspection/CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 8c309e231..7194ccc5a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,62 @@ 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.36.0 - 2026-08-05 + +### Highlights ✨ + +This release drastically improves the mobile keyboard experience (when using eframe web). It also adds drag-to-open +panels, window chrome theme sync and a lot of small bug fixes and improvements! + +#### Improved mobile keyboard support + +Autocomplete, autocorrect and IMEs now work correctly on iOS and android (on eframe web)! + +https://github.com/user-attachments/assets/b0aa1084-0755-4e47-a0b3-0ce6890aca85 + +- via [#8045](https://github.com/emilk/egui/pull/8045) by [@umajho](https://github.com/umajho) (and [@rustbasic](https://github.com/rustbasic) who helped a lot with testing) + +#### Drag to reopen panels + +You can now reopen closed panels by dragging the handle: + +https://github.com/user-attachments/assets/e02895c4-248e-4e22-9694-bdfcd9839bfd + +#### Window decoration theme is now synced with app theme + +Previously, when switching themes, the window chrome (OS titlebar) stayed in the OS theme. Now, it syncs with the app theme: + +https://github.com/user-attachments/assets/6b393057-fdfc-431b-b997-744bc183a8ac + + +### ⭐ Added +* Add `BoxedWidget`: dynamically dispatched widgets [#8378](https://github.com/emilk/egui/pull/8378) by [@emilk](https://github.com/emilk) +* Add `WidgetText::size` [#8377](https://github.com/emilk/egui/pull/8377) by [@emilk](https://github.com/emilk) +* Add `LayoutJob::clear` [#8376](https://github.com/emilk/egui/pull/8376) by [@emilk](https://github.com/emilk) +* Sync window theme with egui theme [#8299](https://github.com/emilk/egui/pull/8299) by [@lucasmerlin](https://github.com/lucasmerlin) +* Add `egui::Window::title_frame` [#8353](https://github.com/emilk/egui/pull/8353) by [@Its-Just-Nans](https://github.com/Its-Just-Nans) +* Add `extra_text_line_spacing` to control vertical spacing between text lines [#8040](https://github.com/emilk/egui/pull/8040) by [@rustbasic](https://github.com/rustbasic) +* Add drag-to-open for collapsible panels [#8363](https://github.com/emilk/egui/pull/8363) by [@emilk](https://github.com/emilk) + +### 🔧 Changed +* Rerun `sizing_pass` when reopening popup [#8315](https://github.com/emilk/egui/pull/8315) by [@yay](https://github.com/yay) +* Update MSRV from 1.92 to 1.95 [#8348](https://github.com/emilk/egui/pull/8348) by [@emilk](https://github.com/emilk) +* Treat a press that leaves a widget as a drag [#8365](https://github.com/emilk/egui/pull/8365) by [@emilk](https://github.com/emilk) + +### 🔥 Removed +* Remove `Modifiers` from `RawInput` and make it a `egui::Event` [#8336](https://github.com/emilk/egui/pull/8336) by [@lucasmerlin](https://github.com/lucasmerlin) +* Remove `clip_rect_margin` [#8366](https://github.com/emilk/egui/pull/8366) by [@emilk](https://github.com/emilk) + +### 🐛 Fixed +* Improve backtrace trimming for cranelift [#8294](https://github.com/emilk/egui/pull/8294) by [@emilk](https://github.com/emilk) +* Prevent accidentally dropping `TexturesDelta` [#8356](https://github.com/emilk/egui/pull/8356) by [@lucasmerlin](https://github.com/lucasmerlin) +* Make non-interactive tooltips not interactable [#8362](https://github.com/emilk/egui/pull/8362) by [@lucasmerlin](https://github.com/lucasmerlin) +* Panels: Take separator line width into account [#8367](https://github.com/emilk/egui/pull/8367) by [@emilk](https://github.com/emilk) +* Fix TextEdit hint text not following horizontal_align/vertical_align [#8332](https://github.com/emilk/egui/pull/8332) by [@thedavidweng](https://github.com/thedavidweng) +* Fix ScrollArea failure by handling horizontal and vertical scrolling separately in the missing place [#8275](https://github.com/emilk/egui/pull/8275) by [@rustbasic](https://github.com/rustbasic) +* Fix window with a `Grid` being widenable but not shrinkable again [#8386](https://github.com/emilk/egui/pull/8386) by [@emilk](https://github.com/emilk) + + ## 0.35.0 - 2026-06-25 - Inspection, egui_mcp, classes and improved IME ### Highlights diff --git a/Cargo.lock b/Cargo.lock index adf431072..97791c6f9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1243,7 +1243,7 @@ checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" [[package]] name = "ecolor" -version = "0.35.0" +version = "0.36.0" dependencies = [ "bytemuck", "cint", @@ -1255,7 +1255,7 @@ dependencies = [ [[package]] name = "eframe" -version = "0.35.0" +version = "0.36.0" dependencies = [ "ahash", "bytemuck", @@ -1293,7 +1293,7 @@ dependencies = [ [[package]] name = "egui" -version = "0.35.0" +version = "0.36.0" dependencies = [ "accesskit", "ahash", @@ -1315,7 +1315,7 @@ dependencies = [ [[package]] name = "egui-wgpu" -version = "0.35.0" +version = "0.36.0" dependencies = [ "ahash", "bytemuck", @@ -1333,7 +1333,7 @@ dependencies = [ [[package]] name = "egui-winit" -version = "0.35.0" +version = "0.36.0" dependencies = [ "accesskit_winit", "arboard", @@ -1356,7 +1356,7 @@ dependencies = [ [[package]] name = "egui_demo_app" -version = "0.35.0" +version = "0.36.0" dependencies = [ "accesskit", "accesskit_consumer", @@ -1385,7 +1385,7 @@ dependencies = [ [[package]] name = "egui_demo_lib" -version = "0.35.0" +version = "0.36.0" dependencies = [ "criterion", "document-features", @@ -1403,7 +1403,7 @@ dependencies = [ [[package]] name = "egui_extras" -version = "0.35.0" +version = "0.36.0" dependencies = [ "ahash", "document-features", @@ -1423,7 +1423,7 @@ dependencies = [ [[package]] name = "egui_glow" -version = "0.35.0" +version = "0.36.0" dependencies = [ "bytemuck", "document-features", @@ -1439,7 +1439,7 @@ dependencies = [ [[package]] name = "egui_inspection" -version = "0.35.0" +version = "0.36.0" dependencies = [ "document-features", "egui", @@ -1452,7 +1452,7 @@ dependencies = [ [[package]] name = "egui_kittest" -version = "0.35.0" +version = "0.36.0" dependencies = [ "dify", "document-features", @@ -1473,7 +1473,7 @@ dependencies = [ [[package]] name = "egui_tests" -version = "0.35.0" +version = "0.36.0" dependencies = [ "egui", "egui_extras", @@ -1503,7 +1503,7 @@ checksum = "91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e" [[package]] name = "emath" -version = "0.35.0" +version = "0.36.0" dependencies = [ "bytemuck", "document-features", @@ -1601,7 +1601,7 @@ dependencies = [ [[package]] name = "epaint" -version = "0.35.0" +version = "0.36.0" dependencies = [ "ahash", "bytemuck", @@ -1630,7 +1630,7 @@ dependencies = [ [[package]] name = "epaint_default_fonts" -version = "0.35.0" +version = "0.36.0" [[package]] name = "equivalent" @@ -3594,7 +3594,7 @@ dependencies = [ [[package]] name = "popups" -version = "0.35.0" +version = "0.36.0" dependencies = [ "eframe", "env_logger", @@ -5903,7 +5903,7 @@ checksum = "ec7a2a501ed189703dba8b08142f057e887dfc4b2cc4db2d343ac6376ba3e0b9" [[package]] name = "xtask" -version = "0.35.0" +version = "0.36.0" [[package]] name = "yaml-rust" diff --git a/Cargo.toml b/Cargo.toml index f310dd9af..fc8010f24 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,7 +25,7 @@ members = [ edition = "2024" license = "MIT OR Apache-2.0" rust-version = "1.95" -version = "0.35.0" +version = "0.36.0" [profile.release] @@ -56,19 +56,19 @@ opt-level = 2 [workspace.dependencies] -emath = { version = "0.35.0", path = "crates/emath", default-features = false } -ecolor = { version = "0.35.0", path = "crates/ecolor", default-features = false } -epaint = { version = "0.35.0", path = "crates/epaint", default-features = false } -epaint_default_fonts = { version = "0.35.0", path = "crates/epaint_default_fonts" } -egui = { version = "0.35.0", path = "crates/egui", default-features = false } -egui-winit = { version = "0.35.0", path = "crates/egui-winit", default-features = false } -egui_extras = { version = "0.35.0", path = "crates/egui_extras", default-features = false } -egui-wgpu = { version = "0.35.0", path = "crates/egui-wgpu", default-features = false } -egui_demo_lib = { version = "0.35.0", path = "crates/egui_demo_lib", default-features = false } -egui_glow = { version = "0.35.0", path = "crates/egui_glow", default-features = false } -egui_inspection = { version = "0.35.0", path = "crates/egui_inspection", default-features = false } -egui_kittest = { version = "0.35.0", path = "crates/egui_kittest", default-features = false } -eframe = { version = "0.35.0", path = "crates/eframe", default-features = false } +emath = { version = "0.36.0", path = "crates/emath", default-features = false } +ecolor = { version = "0.36.0", path = "crates/ecolor", default-features = false } +epaint = { version = "0.36.0", path = "crates/epaint", default-features = false } +epaint_default_fonts = { version = "0.36.0", path = "crates/epaint_default_fonts" } +egui = { version = "0.36.0", path = "crates/egui", default-features = false } +egui-winit = { version = "0.36.0", path = "crates/egui-winit", default-features = false } +egui_extras = { version = "0.36.0", path = "crates/egui_extras", default-features = false } +egui-wgpu = { version = "0.36.0", path = "crates/egui-wgpu", default-features = false } +egui_demo_lib = { version = "0.36.0", path = "crates/egui_demo_lib", default-features = false } +egui_glow = { version = "0.36.0", path = "crates/egui_glow", default-features = false } +egui_inspection = { version = "0.36.0", path = "crates/egui_inspection", default-features = false } +egui_kittest = { version = "0.36.0", path = "crates/egui_kittest", default-features = false } +eframe = { version = "0.36.0", path = "crates/eframe", default-features = false } accesskit = "0.24.1" accesskit_consumer = "0.35.0" # Can't update to 0.36+: kittest 0.4 pins accesskit_consumer 0.35, so bumping splits it into two versions diff --git a/crates/ecolor/CHANGELOG.md b/crates/ecolor/CHANGELOG.md index 340a0c4ae..349a6e52f 100644 --- a/crates/ecolor/CHANGELOG.md +++ b/crates/ecolor/CHANGELOG.md @@ -6,6 +6,9 @@ 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.36.0 - 2026-08-05 +Nothing new + ## 0.35.0 - 2026-06-25 Nothing new diff --git a/crates/eframe/CHANGELOG.md b/crates/eframe/CHANGELOG.md index d65e3699a..0e904260f 100644 --- a/crates/eframe/CHANGELOG.md +++ b/crates/eframe/CHANGELOG.md @@ -7,6 +7,20 @@ 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.36.0 - 2026-08-05 +### 🔧 Changed +* Improve robustness of text input handling for `eframe/web` [#8045](https://github.com/emilk/egui/pull/8045) by [@umajho](https://github.com/umajho) +* Eframe: make webbrowser dependency optional [#8372](https://github.com/emilk/egui/pull/8372) by [@wyvernbw](https://github.com/wyvernbw) +* Store `web_sys::File` inside of `DroppedFile` [#8354](https://github.com/emilk/egui/pull/8354) by [@grtlr](https://github.com/grtlr) + +### 🐛 Fixed +* Web: don't scroll host page when text agent or canvas grabs focus [#8296](https://github.com/emilk/egui/pull/8296) by [@emilk](https://github.com/emilk) +* Fix missing modifier events on eframe web, handle physical keys [#8345](https://github.com/emilk/egui/pull/8345) by [@lucasmerlin](https://github.com/lucasmerlin) +* Web: Avoid panic from lost texture updates when loaded on a background tab [#8313](https://github.com/emilk/egui/pull/8313) by [@kevinmehall](https://github.com/kevinmehall) +* Web: anchor the text agent to the canvas [#8297](https://github.com/emilk/egui/pull/8297) by [@emilk](https://github.com/emilk) +* Never run an egui pass when nothing will be shown [#8387](https://github.com/emilk/egui/pull/8387) by [@emilk](https://github.com/emilk) + + ## 0.35.0 - 2026-06-25 ### ⭐ Added * Add Context::set_cursor_image for OS-level custom cursors [#8155](https://github.com/emilk/egui/pull/8155) by [@all3f0r1](https://github.com/all3f0r1) diff --git a/crates/egui-wgpu/CHANGELOG.md b/crates/egui-wgpu/CHANGELOG.md index 6d0d1085d..e45767f52 100644 --- a/crates/egui-wgpu/CHANGELOG.md +++ b/crates/egui-wgpu/CHANGELOG.md @@ -6,6 +6,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.36.0 - 2026-08-05 +* Upgrade wgpu to v30 [#8289](https://github.com/emilk/egui/pull/8289) by [@akx](https://github.com/akx) +* Fix: ensure mapped range is dropped before unmapping buffer in capture [#8337](https://github.com/emilk/egui/pull/8337) by [@MagicCrazyMan](https://github.com/MagicCrazyMan) +* Make wgpu Instance public [#8321](https://github.com/emilk/egui/pull/8321) by [@oleflb](https://github.com/oleflb) + + ## 0.35.0 - 2026-06-25 * Call `pre_present_notify` before presenting [#8089](https://github.com/emilk/egui/pull/8089) by [@dimtpap](https://github.com/dimtpap) * Wgpu: Allow configuring VSync and frame latency at runtime [#8114](https://github.com/emilk/egui/pull/8114) by [@emilk](https://github.com/emilk) diff --git a/crates/egui-winit/CHANGELOG.md b/crates/egui-winit/CHANGELOG.md index 536294ddc..f9cc12307 100644 --- a/crates/egui-winit/CHANGELOG.md +++ b/crates/egui-winit/CHANGELOG.md @@ -5,6 +5,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.36.0 - 2026-08-05 +Nothing new + + ## 0.35.0 - 2026-06-25 * Delegate handling of IME interruptions to integrations to fix virtual keyboard flickering on web [#8078](https://github.com/emilk/egui/pull/8078) by [@umajho](https://github.com/umajho) * Always enable windows undecorated shadows [#8169](https://github.com/emilk/egui/pull/8169) by [@Wumpf](https://github.com/Wumpf) diff --git a/crates/egui_extras/CHANGELOG.md b/crates/egui_extras/CHANGELOG.md index a6b2470a4..a42cb4d62 100644 --- a/crates/egui_extras/CHANGELOG.md +++ b/crates/egui_extras/CHANGELOG.md @@ -5,6 +5,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.36.0 - 2026-08-05 +Nothing new + + ## 0.35.0 - 2026-06-25 * Improve FileLoader file uri to path handling for windows [#8163](https://github.com/emilk/egui/pull/8163) by [@aconbere](https://github.com/aconbere) * Add arbitrary request headers to `EhttpLoader` [#8121](https://github.com/emilk/egui/pull/8121) by [@frnsys](https://github.com/frnsys) diff --git a/crates/egui_glow/CHANGELOG.md b/crates/egui_glow/CHANGELOG.md index 988189427..78197938a 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.36.0 - 2026-08-05 +* Add `egui_inspection::Request::Settle` [#8344](https://github.com/emilk/egui/pull/8344) by [@lucasmerlin](https://github.com/lucasmerlin) + + +## 0.35.0 - Initial release diff --git a/crates/egui_kittest/CHANGELOG.md b/crates/egui_kittest/CHANGELOG.md index 2f6483aaf..a588a42a5 100644 --- a/crates/egui_kittest/CHANGELOG.md +++ b/crates/egui_kittest/CHANGELOG.md @@ -6,6 +6,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.36.0 - 2026-08-05 +* Handle `ViewportCommand::InnerSize` in `egui_kittest` [#8350](https://github.com/emilk/egui/pull/8350) by [@lucasmerlin](https://github.com/lucasmerlin) +* Report failing pixels by threshold when a kittest snapshot fails [#8360](https://github.com/emilk/egui/pull/8360) by [@emilk](https://github.com/emilk) +* Rename `failed_pixel_count_threshold` to `max_failed_pixels` [#8383](https://github.com/emilk/egui/pull/8383) by [@emilk](https://github.com/emilk) + + ## 0.35.0 - 2026-06-25 * Add `HarnessBuilder::with_render_options()` (closes #7630) [#8060](https://github.com/emilk/egui/pull/8060) by [@MichaelGrupp](https://github.com/MichaelGrupp) * Add `Harness::spawn_eframe_app` [#8120](https://github.com/emilk/egui/pull/8120) by [@emilk](https://github.com/emilk) diff --git a/crates/emath/CHANGELOG.md b/crates/emath/CHANGELOG.md index 4aae540c5..d0cdae830 100644 --- a/crates/emath/CHANGELOG.md +++ b/crates/emath/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.36.0 - 2026-08-05 +Nothing new + + ## 0.35.0 - 2026-06-25 Nothing new diff --git a/crates/epaint/CHANGELOG.md b/crates/epaint/CHANGELOG.md index 4bb868bd3..15c27e4b4 100644 --- a/crates/epaint/CHANGELOG.md +++ b/crates/epaint/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.36.0 - 2026-08-05 +* Add `LayoutJob::clear` [#8376](https://github.com/emilk/egui/pull/8376) by [@emilk](https://github.com/emilk) +* Add `extra_text_line_spacing` to control vertical spacing between text lines [#8040](https://github.com/emilk/egui/pull/8040) by [@rustbasic](https://github.com/rustbasic) + + ## 0.35.0 - 2026-06-25 ### ⭐ Added * Make the size of tabs and thin space configurable [#8070](https://github.com/emilk/egui/pull/8070) by [@emilk](https://github.com/emilk) diff --git a/crates/epaint_default_fonts/CHANGELOG.md b/crates/epaint_default_fonts/CHANGELOG.md index 67a0a9234..8ee27c5c0 100644 --- a/crates/epaint_default_fonts/CHANGELOG.md +++ b/crates/epaint_default_fonts/CHANGELOG.md @@ -5,6 +5,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.36.0 - 2026-08-05 +Nothing new + + ## 0.35.0 - 2026-06-25 Nothing new