From 68b74530b7848cef6bff4efc5fc9906bfbd1e8ca Mon Sep 17 00:00:00 2001 From: Lucas Meurer Date: Thu, 25 Jun 2026 20:48:18 +0200 Subject: [PATCH] Release 0.35.0 - Inspection, egui_mcp, classes and improved IME (#8268) --- .github/workflows/labels.yml | 2 +- CHANGELOG.md | 112 +++++++++++++++++++++++ Cargo.lock | 34 +++---- Cargo.toml | 28 +++--- crates/ecolor/CHANGELOG.md | 4 + crates/eframe/CHANGELOG.md | 23 +++++ crates/egui-wgpu/CHANGELOG.md | 7 ++ crates/egui-winit/CHANGELOG.md | 8 ++ crates/egui_extras/CHANGELOG.md | 8 ++ crates/egui_glow/CHANGELOG.md | 4 + crates/egui_kittest/CHANGELOG.md | 7 ++ crates/emath/CHANGELOG.md | 4 + crates/epaint/CHANGELOG.md | 19 ++++ crates/epaint_default_fonts/CHANGELOG.md | 4 + scripts/generate_changelog.py | 1 + scripts/publish_crates.sh | 1 + 16 files changed, 234 insertions(+), 32 deletions(-) diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index cac2f879c..c6300731b 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -30,4 +30,4 @@ jobs: with: mode: minimum count: 1 - labels: "CI, dependencies, docs and examples, ecolor, eframe, egui_extras, egui_glow, egui_kittest, egui-wgpu, egui-winit, egui, emath, epaint, epaint_default_fonts, exclude from changelog, typo" + labels: "CI, dependencies, docs and examples, ecolor, eframe, egui_extras, egui_glow, egui_inspection, egui_kittest, egui-wgpu, egui-winit, egui, emath, epaint, epaint_default_fonts, exclude from changelog, typo" diff --git a/CHANGELOG.md b/CHANGELOG.md index e7c9601d0..8c309e231 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,118 @@ 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.35.0 - 2026-06-25 - Inspection, egui_mcp, classes and improved IME + +### Highlights +- New egui_mcp crate based on eguis new inspection protocol +- Set classes on your `Ui`s to modify widget behavior based on surrounding context +- Improved IME + +### Egui inspection and egui_mcp +This release includes a new inspection protocol for egui. It allows reading the accesskit tree of a running app, as well +as sending events to control it. It's implemented via a new `InspectionPlugin` in the `egui_inspection` crate. +Eframe includes a new `inspection` feature. When enabled, you can enable inspection by launching the app with +`EGUI_INSPECTION=1`. This will cause the app to listen on port 5719. + +The first inspection protocol consumer is [egui_mcp](https://github.com/rerun-io/kittest_inspector/tree/main/crates/egui_mcp). +It's a [mcp](https://modelcontextprotocol.io/docs/getting-started/intro) server that allows your agent to see and use +egui apps. It can be used to have the agent use the app, reproduce bugs and verify its changes. +Install it via `cargo install --git https://github.com/rerun-io/kittest_inspector egui_mcp` and then add it to your +agent via `claude mcp add egui egui-mcp`. + +There is also a plan of adding a general inspection gui using the same protocol, that can e.g. be used to step through +kittest tests frame by frame. + +Here is claude using the mcp to try some of the egui demos (sped up by a lot, claude is slow): + +https://github.com/user-attachments/assets/c3dd0456-acfc-428c-8efe-f4a244c9e3ba + +* Add `egui_inspection` protocol and plugin [#8234](https://github.com/emilk/egui/pull/8234) by [@lucasmerlin](https://github.com/lucasmerlin) + +### Classes + +As part of [css like styling](https://github.com/emilk/egui/issues/3284), we've added classes to egui. You can already +use them to e.g. modify widget behavior or styling based on surrounding context. +Add classes to the container: +```rs +ui.scope_builder(UiBuilder::new().with_class("my_container"), |ui| { + ... +}); +``` + +In your widget, check if we're in `my_container`, to e.g. change sizes or colors: +```rs + let in_container = ui.stack().iter().any(|s| s.classes.has("my_container")); +``` + +Today this only works for custom widgets and ui code, but the next step will be a styling system that allows you to modify built +in widget styling based on these classes. + +* Add `Classes` to `UiBuilder` and some Widgets [#7843](https://github.com/emilk/egui/pull/7843) by [@AdrienZianne](https://github.com/AdrienZianne) + +### Better IME composition + +IME visuals received an overhaul, they are now indicated by an underline and properly show the cursor during composition: + +https://github.com/user-attachments/assets/487c7e7c-ef6d-4a86-8dbc-8c71871b4470 + +* Implement proper visuals for IME composition [#8083](https://github.com/emilk/egui/pull/8083) by [@umajho](https://github.com/umajho) + +### ⭐ Added +* Add `Classes` to `UiBuilder` and some Widgets [#7843](https://github.com/emilk/egui/pull/7843) by [@AdrienZianne](https://github.com/AdrienZianne) +* Drag-to-close panels [#8182](https://github.com/emilk/egui/pull/8182) by [@emilk](https://github.com/emilk) +* Add `AtomKind::Layout`, for nesting `AtomLayout` [#8219](https://github.com/emilk/egui/pull/8219) by [@lucasmerlin](https://github.com/lucasmerlin) +* Add `AtomLayout::direction` [#8221](https://github.com/emilk/egui/pull/8221) by [@lucasmerlin](https://github.com/lucasmerlin) +* Make the size of tabs and thin space configurable [#8070](https://github.com/emilk/egui/pull/8070) by [@emilk](https://github.com/emilk) +* Add `subpixel_binning` to `TextOptions` and `FontTweak` [#8072](https://github.com/emilk/egui/pull/8072) by [@emilk](https://github.com/emilk) +* Allow `Atoms` in `Ui::small_button` [#8159](https://github.com/emilk/egui/pull/8159) by [@lucasmerlin](https://github.com/lucasmerlin) +* Atom support for `egui::Window` Titlebar [#8154](https://github.com/emilk/egui/pull/8154) by [@lucasmerlin](https://github.com/lucasmerlin) +* Add `AsId` and `IdSalt` [#8184](https://github.com/emilk/egui/pull/8184) by [@emilk](https://github.com/emilk) +* Add Context::set_cursor_image for OS-level custom cursors [#8155](https://github.com/emilk/egui/pull/8155) by [@all3f0r1](https://github.com/all3f0r1) +* Add `ViewportBuilder::with_monitor` + `ViewportCommand::SetMonitor` [#8140](https://github.com/emilk/egui/pull/8140) by [@Le-Syl21](https://github.com/Le-Syl21) +* Add modifier keys to `egui::Key` [#8127](https://github.com/emilk/egui/pull/8127) by [@Le-Syl21](https://github.com/Le-Syl21) +* Expose interactive rects from the last pass [#8211](https://github.com/emilk/egui/pull/8211) by [@psyche314](https://github.com/psyche314) +* Add `AtomLayout::selectable` for opt-in text selection [#8224](https://github.com/emilk/egui/pull/8224) by [@akagifreeez](https://github.com/akagifreeez) +* Add `LayoutJob::format_at_byte` [#8244](https://github.com/emilk/egui/pull/8244) by [@emilk](https://github.com/emilk) +* Add `atoms()` helpers to get `Atoms` from widgets [#8128](https://github.com/emilk/egui/pull/8128) by [@Nashvill375](https://github.com/Nashvill375) + +### 🔧 Changed +* Improve IME handling, add public method `owns_ime_events` on `Memory` [#7983](https://github.com/emilk/egui/pull/7983) by [@umajho](https://github.com/umajho) +* Use `harfrust` for better kerning and ligatures [#8031](https://github.com/emilk/egui/pull/8031) by [@gcailly](https://github.com/gcailly) +* Rework `Window` margins and set `clip_rect_margin` to zero [#7725](https://github.com/emilk/egui/pull/7725) by [@emilk](https://github.com/emilk) +* Slide panels when animating them [#8175](https://github.com/emilk/egui/pull/8175) by [@emilk](https://github.com/emilk) +* Slow down animation time from 0.1s to 0.2s [#8176](https://github.com/emilk/egui/pull/8176) by [@emilk](https://github.com/emilk) +* Smoother CollapsingHeader animation [#8177](https://github.com/emilk/egui/pull/8177) by [@emilk](https://github.com/emilk) +* Drag-to-scroll: now only on touch screens [#8181](https://github.com/emilk/egui/pull/8181) by [@emilk](https://github.com/emilk) +* `Window`: move only by dragging title bar [#8183](https://github.com/emilk/egui/pull/8183) by [@emilk](https://github.com/emilk) +* Rename `Panel` methods [#8192](https://github.com/emilk/egui/pull/8192) by [@emilk](https://github.com/emilk) +* Panels: double-click resize edge to toggle [#8193](https://github.com/emilk/egui/pull/8193) by [@emilk](https://github.com/emilk) +* Rename `AlphaFromCoverage` to `FontColorTransferFunction` [#8201](https://github.com/emilk/egui/pull/8201) by [@emilk](https://github.com/emilk) +* Smoother collapsed-panel animation [#8202](https://github.com/emilk/egui/pull/8202) by [@emilk](https://github.com/emilk) +* Improve `Debug`-formatting of `Id` in debug-builds [#8190](https://github.com/emilk/egui/pull/8190) by [@emilk](https://github.com/emilk) +* Use strongly typed `CharIndex` and `ByteIndex` + bug fixes [#8245](https://github.com/emilk/egui/pull/8245) by [@emilk](https://github.com/emilk) +* Allow downscaling image in `GetScreenshot` inspection request [#8248](https://github.com/emilk/egui/pull/8248) by [@lucasmerlin](https://github.com/lucasmerlin) +* Announce pressed state of selectable buttons to screen readers [#8130](https://github.com/emilk/egui/pull/8130) by [@antoinecellerier](https://github.com/antoinecellerier) +* Pre-populate font variation axes in the `FontTweak` UI [#8258](https://github.com/emilk/egui/pull/8258) by [@emilk](https://github.com/emilk) +* Make font hinting target configurable via `FontTweak` [#8262](https://github.com/emilk/egui/pull/8262) by [@emilk](https://github.com/emilk) + +### 🔥 Removed +* Remove everything that was marked `#[deprecated]` [#8105](https://github.com/emilk/egui/pull/8105) by [@emilk](https://github.com/emilk) +* Remove 64-bit atomics in main crate [#8037](https://github.com/emilk/egui/pull/8037) by [@kay-lambdadelta](https://github.com/kay-lambdadelta) +* Remove `impl Into` arguments [#8194](https://github.com/emilk/egui/pull/8194) by [@emilk](https://github.com/emilk) + +### 🐛 Fixed +* Don't hide whitespaces in centered and right aligned text edits [#8102](https://github.com/emilk/egui/pull/8102) by [@lucasmerlin](https://github.com/lucasmerlin) +* Don't allow resizing past minimum content size [#8152](https://github.com/emilk/egui/pull/8152) by [@lucasmerlin](https://github.com/lucasmerlin) +* Fix resizing of `Grid` [#8170](https://github.com/emilk/egui/pull/8170) by [@lucasmerlin](https://github.com/lucasmerlin) +* Fix glyph caching on font variations [#8189](https://github.com/emilk/egui/pull/8189) by [@emilk](https://github.com/emilk) +* `Panel`: never overflow available width, nor `max_width` [#8198](https://github.com/emilk/egui/pull/8198) by [@emilk](https://github.com/emilk) +* Fixes color picker hue drift at low alpha values [#8208](https://github.com/emilk/egui/pull/8208) by [@aedm](https://github.com/aedm) +* Fix: ScrollArea layout jitter with floating bars and zoom levels [#7944](https://github.com/emilk/egui/pull/7944) by [@rustbasic](https://github.com/rustbasic) +* Fix #2142 - lost_focus not firing after a mid-frame focus transfer [#8210](https://github.com/emilk/egui/pull/8210) by [@ufoscout](https://github.com/ufoscout) +* Fix label selection in deferred viewports [#8242](https://github.com/emilk/egui/pull/8242) by [@yay](https://github.com/yay) + + ## 0.34.3 - 2026-05-27 * Fix `ScrollArea::scroll_to_*` calls when `stick_to_bottom` is Active [#8033](https://github.com/emilk/egui/pull/8033) by [@AmmarAbouZor](https://github.com/AmmarAbouZor) diff --git a/Cargo.lock b/Cargo.lock index 2ef1212e6..2085fa955 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1248,7 +1248,7 @@ checksum = "f25c0e292a7ca6d6498557ff1df68f32c99850012b6ea401cf8daf771f22ff53" [[package]] name = "ecolor" -version = "0.34.3" +version = "0.35.0" dependencies = [ "bytemuck", "cint", @@ -1260,7 +1260,7 @@ dependencies = [ [[package]] name = "eframe" -version = "0.34.3" +version = "0.35.0" dependencies = [ "ahash", "bytemuck", @@ -1300,7 +1300,7 @@ dependencies = [ [[package]] name = "egui" -version = "0.34.3" +version = "0.35.0" dependencies = [ "accesskit", "ahash", @@ -1321,7 +1321,7 @@ dependencies = [ [[package]] name = "egui-wgpu" -version = "0.34.3" +version = "0.35.0" dependencies = [ "ahash", "bytemuck", @@ -1339,7 +1339,7 @@ dependencies = [ [[package]] name = "egui-winit" -version = "0.34.3" +version = "0.35.0" dependencies = [ "accesskit_winit", "arboard", @@ -1362,7 +1362,7 @@ dependencies = [ [[package]] name = "egui_demo_app" -version = "0.34.3" +version = "0.35.0" dependencies = [ "accesskit", "accesskit_consumer", @@ -1391,7 +1391,7 @@ dependencies = [ [[package]] name = "egui_demo_lib" -version = "0.34.3" +version = "0.35.0" dependencies = [ "criterion", "document-features", @@ -1409,7 +1409,7 @@ dependencies = [ [[package]] name = "egui_extras" -version = "0.34.3" +version = "0.35.0" dependencies = [ "ahash", "document-features", @@ -1429,7 +1429,7 @@ dependencies = [ [[package]] name = "egui_glow" -version = "0.34.3" +version = "0.35.0" dependencies = [ "bytemuck", "document-features", @@ -1446,7 +1446,7 @@ dependencies = [ [[package]] name = "egui_inspection" -version = "0.34.3" +version = "0.35.0" dependencies = [ "document-features", "egui", @@ -1459,7 +1459,7 @@ dependencies = [ [[package]] name = "egui_kittest" -version = "0.34.3" +version = "0.35.0" dependencies = [ "dify", "document-features", @@ -1480,7 +1480,7 @@ dependencies = [ [[package]] name = "egui_tests" -version = "0.34.3" +version = "0.35.0" dependencies = [ "egui", "egui_extras", @@ -1510,7 +1510,7 @@ checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] name = "emath" -version = "0.34.3" +version = "0.35.0" dependencies = [ "bytemuck", "document-features", @@ -1608,7 +1608,7 @@ dependencies = [ [[package]] name = "epaint" -version = "0.34.3" +version = "0.35.0" dependencies = [ "ahash", "bytemuck", @@ -1637,7 +1637,7 @@ dependencies = [ [[package]] name = "epaint_default_fonts" -version = "0.34.3" +version = "0.35.0" [[package]] name = "equivalent" @@ -3624,7 +3624,7 @@ dependencies = [ [[package]] name = "popups" -version = "0.34.3" +version = "0.35.0" dependencies = [ "eframe", "env_logger", @@ -6026,7 +6026,7 @@ checksum = "ec7a2a501ed189703dba8b08142f057e887dfc4b2cc4db2d343ac6376ba3e0b9" [[package]] name = "xtask" -version = "0.34.3" +version = "0.35.0" [[package]] name = "yaml-rust" diff --git a/Cargo.toml b/Cargo.toml index 188f7f7a1..0879ce464 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,7 +25,7 @@ members = [ edition = "2024" license = "MIT OR Apache-2.0" rust-version = "1.92" -version = "0.34.3" +version = "0.35.0" [profile.release] @@ -56,19 +56,19 @@ opt-level = 2 [workspace.dependencies] -emath = { version = "0.34.3", path = "crates/emath", default-features = false } -ecolor = { version = "0.34.3", path = "crates/ecolor", default-features = false } -epaint = { version = "0.34.3", path = "crates/epaint", default-features = false } -epaint_default_fonts = { version = "0.34.3", path = "crates/epaint_default_fonts" } -egui = { version = "0.34.3", path = "crates/egui", default-features = false } -egui-winit = { version = "0.34.3", path = "crates/egui-winit", default-features = false } -egui_extras = { version = "0.34.3", path = "crates/egui_extras", default-features = false } -egui-wgpu = { version = "0.34.3", path = "crates/egui-wgpu", default-features = false } -egui_demo_lib = { version = "0.34.3", path = "crates/egui_demo_lib", default-features = false } -egui_glow = { version = "0.34.3", path = "crates/egui_glow", default-features = false } -egui_inspection = { version = "0.34.3", path = "crates/egui_inspection", default-features = false } -egui_kittest = { version = "0.34.3", path = "crates/egui_kittest", default-features = false } -eframe = { version = "0.34.3", path = "crates/eframe", default-features = false } +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 } accesskit = "0.24.1" accesskit_consumer = "0.35.0" diff --git a/crates/ecolor/CHANGELOG.md b/crates/ecolor/CHANGELOG.md index e441bf982..340a0c4ae 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.35.0 - 2026-06-25 +Nothing new + + ## 0.34.3 - 2026-05-27 Nothing new diff --git a/crates/eframe/CHANGELOG.md b/crates/eframe/CHANGELOG.md index faea2d407..d65e3699a 100644 --- a/crates/eframe/CHANGELOG.md +++ b/crates/eframe/CHANGELOG.md @@ -7,6 +7,29 @@ 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.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) +* Feat: add `remove_string()` to storage trait [#8264](https://github.com/emilk/egui/pull/8264) by [@mikesk8r](https://github.com/mikesk8r) + +### 🔧 Changed +* 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) +* Wgpu: Allow configuring VSync and frame latency at runtime [#8114](https://github.com/emilk/egui/pull/8114) by [@emilk](https://github.com/emilk) +* Group `glow` config in a `struct` [#8108](https://github.com/emilk/egui/pull/8108) by [@TapGhoul](https://github.com/TapGhoul) +* Choose restored window monitor by overlap [#8191](https://github.com/emilk/egui/pull/8191) by [@YelovSK](https://github.com/YelovSK) +* Configure wgpu to be low-latency by default [#8203](https://github.com/emilk/egui/pull/8203) by [@lucasmerlin](https://github.com/lucasmerlin) + +### 🔥 Removed +* Remove everything that was marked `#[deprecated]` [#8105](https://github.com/emilk/egui/pull/8105) by [@emilk](https://github.com/emilk) + +### 🐛 Fixed +* Prevent entire page from scrolling out of view in Chrome (WASM) [#7888](https://github.com/emilk/egui/pull/7888) by [@rustbasic](https://github.com/rustbasic) +* Fix crash when parent viewport is hidden [#8226](https://github.com/emilk/egui/pull/8226) by [@kpouer](https://github.com/kpouer) +* Fix "drunk text" bug [#8250](https://github.com/emilk/egui/pull/8250) by [@emilk](https://github.com/emilk) +* Call `logic` even while browser tab is in background [#8257](https://github.com/emilk/egui/pull/8257) by [@lucasmerlin](https://github.com/lucasmerlin) +* Fix macOS wgpu live resize with low-latency surfaces [#8229](https://github.com/emilk/egui/pull/8229) by [@yay](https://github.com/yay) + + ## 0.34.3 - 2026-05-27 * Default `app_id` to `app_name` on native [#8172](https://github.com/emilk/egui/pull/8172) by [@grtlr](https://github.com/grtlr) * Add winit window access to `eframe::Frame` and `CreationContext` [#8205](https://github.com/emilk/egui/pull/8205) by [@emilk](https://github.com/emilk) diff --git a/crates/egui-wgpu/CHANGELOG.md b/crates/egui-wgpu/CHANGELOG.md index f36b8f539..6d0d1085d 100644 --- a/crates/egui-wgpu/CHANGELOG.md +++ b/crates/egui-wgpu/CHANGELOG.md @@ -6,6 +6,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.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) +* Configure wgpu to be low-latency by default [#8203](https://github.com/emilk/egui/pull/8203) by [@lucasmerlin](https://github.com/lucasmerlin) +* Fix "drunk text" bug [#8250](https://github.com/emilk/egui/pull/8250) by [@emilk](https://github.com/emilk) + + ## 0.34.3 - 2026-05-27 * Fix random hangs by improving `wgpu::Surface` lifecycle handling [#8171](https://github.com/emilk/egui/pull/8171) by [@grtlr](https://github.com/grtlr) diff --git a/crates/egui-winit/CHANGELOG.md b/crates/egui-winit/CHANGELOG.md index 58cc9be9e..536294ddc 100644 --- a/crates/egui-winit/CHANGELOG.md +++ b/crates/egui-winit/CHANGELOG.md @@ -5,6 +5,14 @@ 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.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) +* Choose restored window monitor by overlap [#8191](https://github.com/emilk/egui/pull/8191) by [@YelovSK](https://github.com/YelovSK) +* Add `ViewportBuilder::with_monitor` + `ViewportCommand::SetMonitor` [#8140](https://github.com/emilk/egui/pull/8140) by [@Le-Syl21](https://github.com/Le-Syl21) +* Implement proper visuals for IME composition [#8083](https://github.com/emilk/egui/pull/8083) by [@umajho](https://github.com/umajho) + + ## 0.34.3 - 2026-05-27 Nothing new diff --git a/crates/egui_extras/CHANGELOG.md b/crates/egui_extras/CHANGELOG.md index 45c1b9f56..a6b2470a4 100644 --- a/crates/egui_extras/CHANGELOG.md +++ b/crates/egui_extras/CHANGELOG.md @@ -5,6 +5,14 @@ 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.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) +* `Column::remainder().clip(true)` now shrinks when available width decreases [#8048](https://github.com/emilk/egui/pull/8048) by [@germ4n](https://github.com/germ4n) +* Respect `image`'s orientation [#8240](https://github.com/emilk/egui/pull/8240) by [@mattfbacon](https://github.com/mattfbacon) +* Remove 64 bit atomics in egui_extras [#8263](https://github.com/emilk/egui/pull/8263) by [@kay-lambdadelta](https://github.com/kay-lambdadelta) + + ## 0.34.3 - 2026-05-27 Nothing new diff --git a/crates/egui_glow/CHANGELOG.md b/crates/egui_glow/CHANGELOG.md index 83cf74472..988189427 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.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) +* Exclude `take_app` from `wasm32` in `egui_kittest` [#8178](https://github.com/emilk/egui/pull/8178) by [@grtlr](https://github.com/grtlr) +* Handle `ViewportCommand::Screenshot` in kittest [#8256](https://github.com/emilk/egui/pull/8256) by [@lucasmerlin](https://github.com/lucasmerlin) + + ## 0.34.3 - 2026-05-27 Nothing new diff --git a/crates/emath/CHANGELOG.md b/crates/emath/CHANGELOG.md index 1c69ee38b..4aae540c5 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.35.0 - 2026-06-25 +Nothing new + + ## 0.34.3 - 2026-05-27 Nothing new diff --git a/crates/epaint/CHANGELOG.md b/crates/epaint/CHANGELOG.md index 7d0781d52..4bb868bd3 100644 --- a/crates/epaint/CHANGELOG.md +++ b/crates/epaint/CHANGELOG.md @@ -5,6 +5,25 @@ 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.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) +* Add `subpixel_binning` to `TextOptions` and `FontTweak` [#8072](https://github.com/emilk/egui/pull/8072) by [@emilk](https://github.com/emilk) +* Add `LayoutJob::format_at_byte` [#8244](https://github.com/emilk/egui/pull/8244) by [@emilk](https://github.com/emilk) + +### 🔧 Changed +* Use `harfrust` for better kerning and ligatures [#8031](https://github.com/emilk/egui/pull/8031) by [@gcailly](https://github.com/gcailly) +* Rename `AlphaFromCoverage` to `FontColorTransferFunction` [#8201](https://github.com/emilk/egui/pull/8201) by [@emilk](https://github.com/emilk) +* Use strongly typed `CharIndex` and `ByteIndex` + bug fixes [#8245](https://github.com/emilk/egui/pull/8245) by [@emilk](https://github.com/emilk) +* Make font hinting target configurable via `FontTweak` [#8262](https://github.com/emilk/egui/pull/8262) by [@emilk](https://github.com/emilk) + +### 🔥 Removed +* Remove `impl Into` arguments [#8194](https://github.com/emilk/egui/pull/8194) by [@emilk](https://github.com/emilk) + +### 🐛 Fixed +* Fix glyph caching on font variations [#8189](https://github.com/emilk/egui/pull/8189) by [@emilk](https://github.com/emilk) + + ## 0.34.3 - 2026-05-27 Nothing new diff --git a/crates/epaint_default_fonts/CHANGELOG.md b/crates/epaint_default_fonts/CHANGELOG.md index 35afd930b..67a0a9234 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.35.0 - 2026-06-25 +Nothing new + + ## 0.34.3 - 2026-05-27 Nothing new diff --git a/scripts/generate_changelog.py b/scripts/generate_changelog.py index d2cf72bc1..ffa27c892 100755 --- a/scripts/generate_changelog.py +++ b/scripts/generate_changelog.py @@ -255,6 +255,7 @@ def main() -> None: "eframe", "egui_extras", "egui_glow", + "egui_inspection", "egui_kittest", "egui-wgpu", "egui-winit", diff --git a/scripts/publish_crates.sh b/scripts/publish_crates.sh index a8fb54c53..61f8937ba 100755 --- a/scripts/publish_crates.sh +++ b/scripts/publish_crates.sh @@ -8,6 +8,7 @@ (cd crates/egui-winit && cargo publish --quiet) && echo "✅ egui-winit" (cd crates/egui_glow && cargo publish --quiet) && echo "✅ egui_glow" (cd crates/egui-wgpu && cargo publish --quiet) && echo "✅ egui-wgpu" +(cd crates/egui_inspection && cargo publish --quiet) && echo "✅ eframe" (cd crates/eframe && cargo publish --quiet) && echo "✅ eframe" (cd crates/egui_extras && cargo publish --quiet) && echo "✅ egui_extras" (cd crates/egui_kittest && cargo publish --quiet) && echo "✅ egui_kittest"