emilk/egui (egui_demo_lib)
### [`v0.23.0`](https://togithub.com/emilk/egui/blob/HEAD/CHANGELOG.md#0230---2023-09-27---New-image-API)
[Compare Source](https://togithub.com/emilk/egui/compare/0.22.0...0.23.0)
This release contains a simple and powerful image API:
```rs
// Load from web:
ui.image("https://www.example.com/some_image.png");
// Include image in the binary using `include_bytes`:
ui.image(egui::include_image!("../assets/ferris.svg"));
// With options:
ui.add(
egui::Image::new("file://path/to/image.jpg")
.max_width(200.0)
.rounding(10.0),
);
```
The API is based on a plugin-system, where you can tell `egui` how to load the images, and from where.
`egui_extras` comes with loaders for you, so all you need to do is add the following to your `Cargo.toml`:
```toml
egui_extras = { version = "0.23", features = ["all_loaders"] }
image = { version = "0.24", features = ["jpeg", "png"] } # Add the types you want support for
```
And this to your code:
```rs
egui_extras::install_image_loaders(egui_ctx);
```
##### β οΈ BREAKING
- Update MSRV to Rust 1.70.0 [#3310](https://togithub.com/emilk/egui/pull/3310)
- Break out plotting to own crate `egui_plot` [#3282](https://togithub.com/emilk/egui/pull/3282)
##### β Added
- A new image API [#3297](https://togithub.com/emilk/egui/pull/3297) [#3315](https://togithub.com/emilk/egui/pull/3315) [#3328](https://togithub.com/emilk/egui/pull/3328) [#3338](https://togithub.com/emilk/egui/pull/3338) [#3342](https://togithub.com/emilk/egui/pull/3342) [#3343](https://togithub.com/emilk/egui/pull/3343) [#3402](https://togithub.com/emilk/egui/pull/3402) (thanks [@jprochazk](https://togithub.com/jprochazk)!)
- Add option to truncate text at some width [#3244](https://togithub.com/emilk/egui/pull/3244)
- Add control of line height and letter spacing [#3302](https://togithub.com/emilk/egui/pull/3302)
- Support images with rounded corners [#3257](https://togithub.com/emilk/egui/pull/3257)
- Change focused widget with arrow keys [#3272](https://togithub.com/emilk/egui/pull/3272) (thanks [@TimonPost](https://togithub.com/TimonPost)!)
- Add opt-in `puffin` feature to egui [#3298](https://togithub.com/emilk/egui/pull/3298)
- Add debug-option to show a callstack to the widget under the mouse [#3391](https://togithub.com/emilk/egui/pull/3391)
- Add `Context::open_url` and `Context::copy_text` [#3380](https://togithub.com/emilk/egui/pull/3380)
- Add `Area::constrain_to` and `Window::constrain_to` [#3396](https://togithub.com/emilk/egui/pull/3396)
- Add `Memory::area_rect` [#3161](https://togithub.com/emilk/egui/pull/3161) (thanks [@tosti007](https://togithub.com/tosti007)!)
- Add `Margin::expand_rect` and `shrink_rect` [#3214](https://togithub.com/emilk/egui/pull/3214)
- Provide `into_inner()` for `egui::mutex::{Mutex, RwLock}` [#3110](https://togithub.com/emilk/egui/pull/3110) (thanks [@KmolYuan](https://togithub.com/KmolYuan)!)
- Support multi-threaded Wasm [#3236](https://togithub.com/emilk/egui/pull/3236)
- Change touch force to be `Option` instead of `f32` [#3240](https://togithub.com/emilk/egui/pull/3240) (thanks [@lucasmerlin](https://togithub.com/lucasmerlin)!)
- Add option to always open hyperlink in a new browser tab [#3242](https://togithub.com/emilk/egui/pull/3242) (thanks [@FreddyFunk](https://togithub.com/FreddyFunk)!)
- Add `Window::drag_to_scroll` [#3118](https://togithub.com/emilk/egui/pull/3118) (thanks [@KYovchevski](https://togithub.com/KYovchevski)!)
- Add `CollapsingState::remove` to clear stored state [#3252](https://togithub.com/emilk/egui/pull/3252) (thanks [@dmackdev](https://togithub.com/dmackdev)!)
- Add tooltip_delay option [#3245](https://togithub.com/emilk/egui/pull/3245) (thanks [@YgorSouza](https://togithub.com/YgorSouza)!)
- Added `Context::is_context_menu_open()` [#3267](https://togithub.com/emilk/egui/pull/3267) (thanks [@dmlary](https://togithub.com/dmlary)!)
- Add `mime` field to `DroppedFile` [#3273](https://togithub.com/emilk/egui/pull/3273) (thanks [@abey79](https://togithub.com/abey79)!)
- Allow setting the progress bar height [#3183](https://togithub.com/emilk/egui/pull/3183) (thanks [@s-nie](https://togithub.com/s-nie)!)
- Add `scroll_area::State::velocity` [#3300](https://togithub.com/emilk/egui/pull/3300) (thanks [@Barugon](https://togithub.com/Barugon)!)
- Add `Visuals::interact_cursor` [#3312](https://togithub.com/emilk/egui/pull/3312) (thanks [@zkldi](https://togithub.com/zkldi)!)
- Add method to `RichText` making it easier to construct layout jobs [#3319](https://togithub.com/emilk/egui/pull/3319) (thanks [@OmegaJak](https://togithub.com/OmegaJak)!)
- Add `Context::style_mut` [#3359](https://togithub.com/emilk/egui/pull/3359)
- `std::borrow::Cow<'_, str>` now implements `TextBuffer` [#3164](https://togithub.com/emilk/egui/pull/3164) (thanks [@burtonageo](https://togithub.com/burtonageo)!)
##### π§ Changed
- Separate text cursor from selection visuals [#3181](https://togithub.com/emilk/egui/pull/3181) (thanks [@lampsitter](https://togithub.com/lampsitter)!)
- `DragValue`: update value on each key press by default [#2880](https://togithub.com/emilk/egui/pull/2880) (thanks [@Barugon](https://togithub.com/Barugon)!)
- Replace uses of `RangeInclusive` with `emath::Rangef` [#3221](https://togithub.com/emilk/egui/pull/3221)
- Implement `Send + Sync` for `ColorPickerFn` and `Ui` ([#3148](https://togithub.com/emilk/egui/issues/3148)) [#3233](https://togithub.com/emilk/egui/pull/3233) (thanks [@idanarye](https://togithub.com/idanarye)!)
- Use the minus character instead of "dash" [#3271](https://togithub.com/emilk/egui/pull/3271)
- Changing `menu_image_button` to use `ImageButton` builder [#3288](https://togithub.com/emilk/egui/pull/3288) (thanks [@v-kat](https://togithub.com/v-kat)!)
- Prune old egui memory data when reaching some limit [#3299](https://togithub.com/emilk/egui/pull/3299)
##### π Fixed
- Fix TextEdit's character limit [#3173](https://togithub.com/emilk/egui/pull/3173) (thanks [@Serverator](https://togithub.com/Serverator)!)
- Set the correct unicode character for "ctrl" shortcuts [#3186](https://togithub.com/emilk/egui/pull/3186) (thanks [@abey79](https://togithub.com/abey79)!)
- Fix crash in `DragValue` when only setting `min_decimals` [#3231](https://togithub.com/emilk/egui/pull/3231)
- Fix clipping issued with `ScrollArea` [#2860](https://togithub.com/emilk/egui/pull/2860) (thanks [@Barugon](https://togithub.com/Barugon)!)
- Fix moving slider with arrow keys [#3354](https://togithub.com/emilk/egui/pull/3354)
- Fix problems with tabs in text [#3355](https://togithub.com/emilk/egui/pull/3355)
- Fix interaction with moved color-picker [#3395](https://togithub.com/emilk/egui/pull/3395)
### [`v0.22.0`](https://togithub.com/emilk/egui/blob/HEAD/CHANGELOG.md#0220---2023-05-23---A-plethora-of-small-improvements)
[Compare Source](https://togithub.com/emilk/egui/compare/0.21.0...0.22.0)
##### β Added
- Scroll bar visibility options [#2729](https://togithub.com/emilk/egui/pull/2729) (thanks [@IVAN-MK7](https://togithub.com/IVAN-MK7)!)
- Add `Grid::with_row_color` [#2519](https://togithub.com/emilk/egui/pull/2519) (thanks [@imgurbot12](https://togithub.com/imgurbot12)!)
- Add raw mouse wheel event [#2782](https://togithub.com/emilk/egui/pull/2782) (thanks [@YgorSouza](https://togithub.com/YgorSouza)!)
- Improved plot groups and bounds handling [#2410](https://togithub.com/emilk/egui/pull/2410) (thanks [@s-nie](https://togithub.com/s-nie)!)
- Return plot transforms [#2935](https://togithub.com/emilk/egui/pull/2935)
- Add `Pointer::is_decidedly_dragging` and `could_any_button_be_click` [#2979](https://togithub.com/emilk/egui/pull/2979)
- Plot widget - allow disabling zoom and drag for x and y separately [#2901](https://togithub.com/emilk/egui/pull/2901) (thanks [@OmegaJak](https://togithub.com/OmegaJak)!)
- Add character limit to `TextEdit` [#2816](https://togithub.com/emilk/egui/pull/2816) (thanks [@wzid](https://togithub.com/wzid)!)
- Add `egui::Modifiers::contains` [#2989](https://togithub.com/emilk/egui/pull/2989) (thanks [@Wumpf](https://togithub.com/Wumpf)!)
##### π§ Changed
- Improve vertical alignment of fonts [#2724](https://togithub.com/emilk/egui/pull/2724) (thanks [@lictex](https://togithub.com/lictex)!)
- Transpose the value/satuation panel of the color picker [#2727](https://togithub.com/emilk/egui/pull/2727) (thanks [@IVAN-MK7](https://togithub.com/IVAN-MK7)!)
- Replace `ComboBox::show_index` `String` with `Into` [#2790](https://togithub.com/emilk/egui/pull/2790) (thanks [@tosti007](https://togithub.com/tosti007)!)
- Replace `tracing` with `log` [#2928](https://togithub.com/emilk/egui/pull/2928)
- Only show id clash warnings in debug builds by default [#2930](https://togithub.com/emilk/egui/pull/2930)
- β οΈ BREAKING: `Plot::link_axis` and `Plot::link_cursor` now take the name of the group [#2410](https://togithub.com/emilk/egui/pull/2410)
##### π Fixed
- Clear all keys and modifies on focus change, fixing "stuck keys" [#2933](https://togithub.com/emilk/egui/pull/2933)
- Fix deadlock when using `show_blocking_widget` [#2753](https://togithub.com/emilk/egui/pull/2753) (thanks [@YgorSouza](https://togithub.com/YgorSouza)!)
- Fix the OS check for windows [#2832](https://togithub.com/emilk/egui/pull/2832) (thanks [@jleibs](https://togithub.com/jleibs)!)
- Fix scroll bars not appearing ([#2826](https://togithub.com/emilk/egui/issues/2826)) [#2827](https://togithub.com/emilk/egui/pull/2827) (thanks [@lunixbochs](https://togithub.com/lunixbochs)!)
- Fix UI `data()` read mutability [#2742](https://togithub.com/emilk/egui/pull/2742) (thanks [@IS2511](https://togithub.com/IS2511)!)
- Menu State rect now uses menu frame rect instead of contents rect [#2886](https://togithub.com/emilk/egui/pull/2886) (thanks [@hats-np](https://togithub.com/hats-np)!)
- Hide `Response::triple_clicked` in docs [#2867](https://togithub.com/emilk/egui/pull/2867) (thanks [@ccaven](https://togithub.com/ccaven)!)
- `request_repaint_after` works even when called from background thread [#2939](https://togithub.com/emilk/egui/pull/2939)
- Show alt key on Mac as `"Option"`, not `"Alt"` [#2981](https://togithub.com/emilk/egui/pull/2981) (thanks [@Wumpf](https://togithub.com/Wumpf)!)
- Mention `store` in `TextEditState` doc comment [#2988](https://togithub.com/emilk/egui/pull/2988) (thanks [@fxdave](https://togithub.com/fxdave)!)
- Fix typos [#2866](https://togithub.com/emilk/egui/pull/2866) (thanks [@fezjo](https://togithub.com/fezjo)!)
##### β¨ Examples
- Fix resizable columns option in the table demo [#2780](https://togithub.com/emilk/egui/pull/2780) (thanks [@Bobo1239](https://togithub.com/Bobo1239)!)
- Update serial window example [#2756](https://togithub.com/emilk/egui/pull/2756) (thanks [@c-git](https://togithub.com/c-git)!)
- Demo app: use `enum` instead of strings for demo-selector anchor [#2781](https://togithub.com/emilk/egui/pull/2781) (thanks [@XyLyXyRR](https://togithub.com/XyLyXyRR)!)
- Use `env_logger` in all examples [#2934](https://togithub.com/emilk/egui/pull/2934)
- Rename `examples/user_attention/README.mg` to `README.md` [#2948](https://togithub.com/emilk/egui/pull/2948) (thanks [@MAlba124](https://togithub.com/MAlba124)!)
- egui_demo_app: add some native window info [b5c24d6](https://togithub.com/emilk/egui/commit/b5c24d6ec83112440f1a807d5ec79241ea8b40fe)
### [`v0.21.0`](https://togithub.com/emilk/egui/blob/HEAD/CHANGELOG.md#0210---2023-02-08---Deadlock-fix-and-style-customizability)
[Compare Source](https://togithub.com/emilk/egui/compare/0.20.0...0.21.0)
- β οΈ BREAKING: `egui::Context` now use closures for locking ([#2625](https://togithub.com/emilk/egui/pull/2625)):
- `ctx.input().key_pressed(Key::A)` -> `ctx.input(|i| i.key_pressed(Key::A))`
- `ui.memory().toggle_popup(popup_id)` -> `ui.memory_mut(|mem| mem.toggle_popup(popup_id))`
##### β Added
- Add `Response::drag_started_by` and `Response::drag_released_by` for convenience, similar to `dragged` and `dragged_by` ([#2507](https://togithub.com/emilk/egui/pull/2507)).
- Add `PointerState::*_pressed` to check if the given button was pressed in this frame ([#2507](https://togithub.com/emilk/egui/pull/2507)).
- `Event::Key` now has a `repeat` field that is set to `true` if the event was the result of a key-repeat ([#2435](https://togithub.com/emilk/egui/pull/2435)).
- Add `Slider::drag_value_speed`, which lets you ask for finer precision when dragging the slider value rather than the actual slider.
- Add `Memory::any_popup_open`, which returns true if any popup is currently open ([#2464](https://togithub.com/emilk/egui/pull/2464)).
- Add `Plot::clamp_grid` to only show grid where there is data ([#2480](https://togithub.com/emilk/egui/pull/2480)).
- Add `ScrollArea::drag_to_scroll` if you want to turn off that feature.
- Add `Response::on_hover_and_drag_cursor`.
- Add `Window::default_open` ([#2539](https://togithub.com/emilk/egui/pull/2539)).
- Add `ProgressBar::fill` if you want to set the fill color manually. ([#2618](https://togithub.com/emilk/egui/pull/2618)).
- Add `Button::rounding` to enable round buttons ([#2616](https://togithub.com/emilk/egui/pull/2616)).
- Add `WidgetVisuals::optional_bg_color` - set it to `Color32::TRANSPARENT` to hide button backgrounds ([#2621](https://togithub.com/emilk/egui/pull/2621)).
- Add `Context::screen_rect` and `Context::set_cursor_icon` ([#2625](https://togithub.com/emilk/egui/pull/2625)).
- You can turn off the vertical line left of indented regions with `Visuals::indent_has_left_vline` ([#2636](https://togithub.com/emilk/egui/pull/2636)).
- Add `Response.highlight` to highlight a widget ([#2632](https://togithub.com/emilk/egui/pull/2632)).
- Add `Separator::grow` and `Separator::shrink` ([#2665](https://togithub.com/emilk/egui/pull/2665)).
- Add `Slider::trailing_fill` for trailing color behind the circle like a `ProgressBar` ([#2660](https://togithub.com/emilk/egui/pull/2660)).
##### π§ Changed
- Improved plot grid appearance ([#2412](https://togithub.com/emilk/egui/pull/2412)).
- Improved the algorithm for picking the number of decimals to show when hovering values in the `Plot`.
- Default `ComboBox` is now controlled with `Spacing::combo_width` ([#2621](https://togithub.com/emilk/egui/pull/2621)).
- `DragValue` and `Slider` now use the proportional font ([#2638](https://togithub.com/emilk/egui/pull/2638)).
- `ScrollArea` is less aggressive about clipping its contents ([#2665](https://togithub.com/emilk/egui/pull/2665)).
- Updated to be compatible with a major breaking change in AccessKit that drastically reduces memory usage when accessibility is enabled ([#2678](https://togithub.com/emilk/egui/pull/2678)).
- Improve `DragValue` behavior ([#2649](https://togithub.com/emilk/egui/pull/2649), [#2650](https://togithub.com/emilk/egui/pull/2650), [#2688](https://togithub.com/emilk/egui/pull/2688), [#2638](https://togithub.com/emilk/egui/pull/2638)).
##### π Fixed
- Trigger `PointerEvent::Released` for drags ([#2507](https://togithub.com/emilk/egui/pull/2507)).
- Expose `TextEdit`'s multiline flag to AccessKit ([#2448](https://togithub.com/emilk/egui/pull/2448)).
- Don't render `\r` (Carriage Return) ([#2452](https://togithub.com/emilk/egui/pull/2452)).
- The `button_padding` style option works closer as expected with image+text buttons now ([#2510](https://togithub.com/emilk/egui/pull/2510)).
- Menus are now moved to fit on the screen.
- Fix `Window::pivot` causing windows to move around ([#2694](https://togithub.com/emilk/egui/pull/2694)).
### [`v0.20.0`](https://togithub.com/emilk/egui/blob/HEAD/CHANGELOG.md#0200---2022-12-08---AccessKit-prettier-text-overlapping-widgets)
[Compare Source](https://togithub.com/emilk/egui/compare/0.19.0...0.20.0)
- MSRV (Minimum Supported Rust Version) is now `1.65.0` ([#2314](https://togithub.com/emilk/egui/pull/2314)).
- β οΈ BREAKING: egui now expects integrations to do all color blending in gamma space ([#2071](https://togithub.com/emilk/egui/pull/2071)).
- β οΈ BREAKING: if you have overlapping interactive widgets, only the top widget (last added) will be interactive ([#2244](https://togithub.com/emilk/egui/pull/2244)).
##### β Added
- Added helper functions for animating panels that collapse/expand ([#2190](https://togithub.com/emilk/egui/pull/2190)).
- Added `Context::os/Context::set_os` to query/set what operating system egui believes it is running on ([#2202](https://togithub.com/emilk/egui/pull/2202)).
- Added `Button::shortcut_text` for showing keyboard shortcuts in menu buttons ([#2202](https://togithub.com/emilk/egui/pull/2202)).
- Added `egui::KeyboardShortcut` for showing keyboard shortcuts in menu buttons ([#2202](https://togithub.com/emilk/egui/pull/2202)).
- Texture loading now takes a `TextureOptions` with minification and magnification filters ([#2224](https://togithub.com/emilk/egui/pull/2224)).
- Added `Key::Minus` and `Key::Equals` ([#2239](https://togithub.com/emilk/egui/pull/2239)).
- Added `egui::gui_zoom` module with helpers for scaling the whole GUI of an app ([#2239](https://togithub.com/emilk/egui/pull/2239)).
- You can now put one interactive widget on top of another, and only one will get interaction at a time ([#2244](https://togithub.com/emilk/egui/pull/2244)).
- Added `spacing.menu_margin` for customizing menu spacing ([#2036](https://togithub.com/emilk/egui/pull/2036))
- Added possibility to enable text wrap for the selected text of `egui::ComboBox` ([#2272](https://togithub.com/emilk/egui/pull/2272))
- Added `Area::constrain` and `Window::constrain` which constrains area to the screen bounds ([#2270](https://togithub.com/emilk/egui/pull/2270)).
- Added `Area::pivot` and `Window::pivot` which controls what part of the window to position ([#2303](https://togithub.com/emilk/egui/pull/2303)).
- Added support for [thin space](https://en.wikipedia.org/wiki/Thin_space).
- Added optional integration with [AccessKit](https://accesskit.dev/) for implementing platform accessibility APIs ([#2294](https://togithub.com/emilk/egui/pull/2294)).
- Added `panel_fill`, `window_fill` and `window_stroke` to `Visuals` for your theming pleasure ([#2406](https://togithub.com/emilk/egui/pull/2406)).
- Plots:
- Allow linking plot cursors ([#1722](https://togithub.com/emilk/egui/pull/1722)).
- Added `Plot::auto_bounds_x/y` and `Plot::reset` ([#2029](https://togithub.com/emilk/egui/pull/2029)).
- Added `PlotUi::translate_bounds` ([#2145](https://togithub.com/emilk/egui/pull/2145)).
- Added `PlotUi::set_plot_bounds` ([#2320](https://togithub.com/emilk/egui/pull/2320)).
- Added `PlotUi::plot_secondary_clicked` ([#2318](https://togithub.com/emilk/egui/pull/2318)).
##### π§ Changed
- Panels always have a separator line, but no stroke on other sides. Their spacing has also changed slightly ([#2261](https://togithub.com/emilk/egui/pull/2261)).
- Tooltips are only shown when mouse pointer is still ([#2263](https://togithub.com/emilk/egui/pull/2263)).
- Make it slightly easier to click buttons ([#2304](https://togithub.com/emilk/egui/pull/2304)).
- `egui::color` has been renamed `egui::ecolor` ([#2399](https://togithub.com/emilk/egui/pull/2399)).
##### π Fixed
- β οΈ BREAKING: Fix text being too small ([#2069](https://togithub.com/emilk/egui/pull/2069)).
- Improve mixed CJK/Latin line-breaking ([#1986](https://togithub.com/emilk/egui/pull/1986)).
- Improved text rendering ([#2071](https://togithub.com/emilk/egui/pull/2071)).
- Constrain menu popups to the screen ([#2191](https://togithub.com/emilk/egui/pull/2191)).
- Less jitter when calling `Context::set_pixels_per_point` ([#2239](https://togithub.com/emilk/egui/pull/2239)).
- Fixed popups and color edit going outside the screen.
- Fixed keyboard support in `DragValue` ([#2342](https://togithub.com/emilk/egui/pull/2342)).
- If you nest `ScrollAreas` inside each other, the inner area will now move its scroll bar so it is always visible ([#2371](https://togithub.com/emilk/egui/pull/2371)).
- Ignore key-repeats for `input.key_pressed` ([#2334](https://togithub.com/emilk/egui/pull/2334), [#2389](https://togithub.com/emilk/egui/pull/2389)).
- Fixed issue with calling `set_pixels_per_point` each frame ([#2352](https://togithub.com/emilk/egui/pull/2352)).
- Fix bug in `ScrollArea::show_rows` ([#2258](https://togithub.com/emilk/egui/pull/2258)).
- Fix bug in `plot::Line::fill` ([#2275](https://togithub.com/emilk/egui/pull/2275)).
- Only emit `changed` events in `radio_value` and `selectable_value` if the value actually changed ([#2343](https://togithub.com/emilk/egui/pull/2343)).
- Fixed sizing bug in `Grid` ([#2384](https://togithub.com/emilk/egui/pull/2384)).
- `ComboBox::width` now correctly sets the outer width ([#2406](https://togithub.com/emilk/egui/pull/2406)).
### [`v0.19.0`](https://togithub.com/emilk/egui/blob/HEAD/CHANGELOG.md#0190---2022-08-20)
[Compare Source](https://togithub.com/emilk/egui/compare/0.18.0...0.19.0)
##### β Added
- Added `*_released` & `*_clicked` methods for `PointerState` ([#1582](https://togithub.com/emilk/egui/pull/1582)).
- Added `PointerButton::Extra1` and `PointerButton::Extra2` ([#1592](https://togithub.com/emilk/egui/pull/1592)).
- Added `egui::hex_color!` to create `Color32`'s from hex strings under the `color-hex` feature ([#1596](https://togithub.com/emilk/egui/pull/1596)).
- Optimized painting of filled circles (e.g. for scatter plots) by 10x or more ([#1616](https://togithub.com/emilk/egui/pull/1616)).
- Added opt-in feature `deadlock_detection` to detect double-lock of mutexes on the same thread ([#1619](https://togithub.com/emilk/egui/pull/1619)).
- Added `InputState::stable_dt`: a more stable estimate for the delta-time in reactive mode ([#1625](https://togithub.com/emilk/egui/pull/1625)).
- You can now specify a texture filter for your textures ([#1636](https://togithub.com/emilk/egui/pull/1636)).
- Added functions keys in `egui::Key` ([#1665](https://togithub.com/emilk/egui/pull/1665)).
- Added support for using `PaintCallback` shapes with the WGPU backend ([#1684](https://togithub.com/emilk/egui/pull/1684)).
- Added `Context::request_repaint_after` ([#1694](https://togithub.com/emilk/egui/pull/1694)).
- `ctrl-h` now acts like backspace in `TextEdit` ([#1812](https://togithub.com/emilk/egui/pull/1812)).
- Added `custom_formatter` method for `Slider` and `DragValue` ([#1851](https://togithub.com/emilk/egui/issues/1851)).
- Added `RawInput::has_focus` which backends can set to indicate whether the UI as a whole has the keyboard focus ([#1859](https://togithub.com/emilk/egui/pull/1859)).
- Added `PointerState::button_double_clicked()` and `PointerState::button_triple_clicked()` ([#1906](https://togithub.com/emilk/egui/issues/1906)).
- Added `custom_formatter`, `binary`, `octal`, and `hexadecimal` to `DragValue` and `Slider` ([#1953](https://togithub.com/emilk/egui/issues/1953))
##### π§ Changed
- MSRV (Minimum Supported Rust Version) is now `1.61.0` ([#1846](https://togithub.com/emilk/egui/pull/1846)).
- `PaintCallback` shapes now require the whole callback to be put in an `Arc` with the value being a backend-specific callback type ([#1684](https://togithub.com/emilk/egui/pull/1684)).
- Replaced `needs_repaint` in `FullOutput` with `repaint_after`. Used to force repaint after the set duration in reactive mode ([#1694](https://togithub.com/emilk/egui/pull/1694)).
- `Layout::left_to_right` and `Layout::right_to_left` now takes the vertical align as an argument. Previous default was `Align::Center`.
- Improved ergonomics of adding plot items. All plot items that take a series of 2D coordinates can now be created directly from `Vec<[f64; 2]>`. The `Value` and `Values` types were removed in favor of `PlotPoint` and `PlotPoints` respectively ([#1816](https://togithub.com/emilk/egui/pull/1816)).
- `TextBuffer` no longer needs to implement `AsRef` ([#1824](https://togithub.com/emilk/egui/pull/1824)).
##### π Fixed
- Fixed `Response::changed` for `ui.toggle_value` ([#1573](https://togithub.com/emilk/egui/pull/1573)).
- Fixed `ImageButton`'s changing background padding on hover ([#1595](https://togithub.com/emilk/egui/pull/1595)).
- Fixed `Plot` auto-bounds bug ([#1599](https://togithub.com/emilk/egui/pull/1599)).
- Fixed dead-lock when alt-tabbing while also showing a tooltip ([#1618](https://togithub.com/emilk/egui/pull/1618)).
- Fixed `ScrollArea` scrolling when editing an unrelated `TextEdit` ([#1779](https://togithub.com/emilk/egui/pull/1779)).
- Fixed `Slider` not always generating events on change ([#1854](https://togithub.com/emilk/egui/pull/1854)).
- Fixed jitter of anchored windows for the first frame ([#1856](https://togithub.com/emilk/egui/pull/1856)).
- Fixed focus behavior when pressing Tab in a UI with no focused widget ([#1861](https://togithub.com/emilk/egui/pull/1861)).
- Fixed automatic plot bounds ([#1865](https://togithub.com/emilk/egui/pull/1865)).
### [`v0.18.0`](https://togithub.com/emilk/egui/blob/HEAD/CHANGELOG.md#0180---2022-04-30)
[Compare Source](https://togithub.com/emilk/egui/compare/0.17.0...0.18.0)
##### β Added
- Added `Shape::Callback` for backend-specific painting, [with an example](https://togithub.com/emilk/egui/tree/master/examples/custom\_3d_glow) ([#1351](https://togithub.com/emilk/egui/pull/1351)).
- Added `Frame::canvas` ([#1362](https://togithub.com/emilk/egui/pull/1362)).
- `Context::request_repaint` will now wake up UI thread, if integrations has called `Context::set_request_repaint_callback` ([#1366](https://togithub.com/emilk/egui/pull/1366)).
- Added `Plot::allow_scroll`, `Plot::allow_zoom` no longer affects scrolling ([#1382](https://togithub.com/emilk/egui/pull/1382)).
- Added `Ui::push_id` to resolve id clashes ([#1374](https://togithub.com/emilk/egui/pull/1374)).
- Added `ComboBox::icon` ([#1405](https://togithub.com/emilk/egui/pull/1405)).
- Added `Ui::scroll_with_delta`.
- Added `Frame::outer_margin`.
- Added `Painter::hline` and `Painter::vline`.
- Added `Link` and `ui.link` ([#1506](https://togithub.com/emilk/egui/pull/1506)).
- Added triple-click support; triple-clicking a TextEdit field will select the whole paragraph ([#1512](https://togithub.com/emilk/egui/pull/1512)).
- Added `Plot::x_grid_spacer` and `Plot::y_grid_spacer` for custom grid spacing ([#1180](https://togithub.com/emilk/egui/pull/1180)).
- Added `Ui::spinner()` shortcut method ([#1494](https://togithub.com/emilk/egui/pull/1494)).
- Added `CursorIcon`s for resizing columns, rows, and the eight cardinal directions.
- Added `Ui::toggle_value`.
- Added ability to add any widgets to the header of a collapsing region ([#1538](https://togithub.com/emilk/egui/pull/1538)).
##### π§ Changed
- MSRV (Minimum Supported Rust Version) is now `1.60.0` ([#1467](https://togithub.com/emilk/egui/pull/1467)).
- `ClippedMesh` has been replaced with `ClippedPrimitive` ([#1351](https://togithub.com/emilk/egui/pull/1351)).
- Renamed `Frame::margin` to `Frame::inner_margin`.
- Renamed `AlphaImage` to `FontImage` to discourage any other use for it ([#1412](https://togithub.com/emilk/egui/pull/1412)).
- Warnings will be painted on screen when there is an `Id` clash for `Grid`, `Plot` or `ScrollArea` ([#1452](https://togithub.com/emilk/egui/pull/1452)).
- `Checkbox` and `RadioButton` with an empty label (`""`) will now take up much less space ([#1456](https://togithub.com/emilk/egui/pull/1456)).
- Replaced `Memory::top_most_layer` with more flexible `Memory::layer_ids`.
- Renamed the feature `convert_bytemuck` to `bytemuck` ([#1467](https://togithub.com/emilk/egui/pull/1467)).
- Renamed the feature `serialize` to `serde` ([#1467](https://togithub.com/emilk/egui/pull/1467)).
- Renamed `Painter::sub_region` to `Painter::with_clip_rect`.
##### π Fixed
- Fixed `ComboBox`es always being rendered left-aligned ([#1304](https://togithub.com/emilk/egui/pull/1304)).
- Fixed ui code that could lead to a deadlock ([#1380](https://togithub.com/emilk/egui/pull/1380)).
- Text is darker and more readable in bright mode ([#1412](https://togithub.com/emilk/egui/pull/1412)).
- Fixed a lot of broken/missing doclinks ([#1419](https://togithub.com/emilk/egui/pull/1419)).
- Fixed `Ui::add_visible` sometimes leaving the `Ui` in a disabled state ([#1436](https://togithub.com/emilk/egui/issues/1436)).
- Added line breaking rules for Japanese text ([#1498](https://togithub.com/emilk/egui/pull/1498)).
##### β’οΈ Deprecated
- Deprecated `CollapsingHeader::selectable` ([#1538](https://togithub.com/emilk/egui/pull/1538)).
##### π₯ Removed
- Removed the `single_threaded/multi_threaded` flags - egui is now always thread-safe ([#1390](https://togithub.com/emilk/egui/pull/1390)).
##### Contributors π
- [4JX](https://togithub.com/4JX)
- [AlexxxRu](https://togithub.com/AlexxxRu)
- [ascclemens](https://togithub.com/ascclemens)
- [awaken1ng](https://togithub.com/awaken1ng)
- [bigfarts](https://togithub.com/bigfarts)
- [bobyclaws](https://togithub.com/bobyclaws)
- [Bromeon](https://togithub.com/Bromeon)
- [cloudhead](https://togithub.com/cloudhead)
- [collin-kemper](https://togithub.com/collin-kemper)
- [cpterry](https://togithub.com/cpterry)
- [dbuch](https://togithub.com/dbuch)
- [DusterTheFirst](https://togithub.com/DusterTheFirst)
- [Edgeworth ](https://togithub.com/Edgeworth)
- [elwerene](https://togithub.com/elwerene)
- [follower](https://togithub.com/follower)
- [Friz64](https://togithub.com/Friz64)
- [Hunter522 ](https://togithub.com/Hunter522)
- [Jake-Shadle](https://togithub.com/Jake-Shadle)
- [jean-airoldie ](https://togithub.com/jean-airoldie)
- [JelNiSlaw](https://togithub.com/JelNiSlaw)
- [juancampa](https://togithub.com/juancampa)
- [LU15W1R7H](https://togithub.com/LU15W1R7H)
- [mbillingr](https://togithub.com/mbillingr)
- [nicklasmoeller](https://togithub.com/nicklasmoeller)
- [rukai](https://togithub.com/rukai)
- [tami5](https://togithub.com/tami5)
- [Titaniumtown](https://togithub.com/Titaniumtown)
- [trevyn](https://togithub.com/trevyn)
- [waynr](https://togithub.com/waynr)
- [zam-5 ](https://togithub.com/zam-5)
### [`v0.17.0`](https://togithub.com/emilk/egui/blob/HEAD/CHANGELOG.md#0170---2022-02-22---Improved-font-selection-and-image-handling)
[Compare Source](https://togithub.com/emilk/egui/compare/0.16.0...0.17.0)
##### β Added
- Much improved font selection ([#1154](https://togithub.com/emilk/egui/pull/1154)):
- You can now select any font size and family using `RichText::size` amd `RichText::family` and the new `FontId`.
- Easily change text styles with `Style::text_styles`.
- Added `Ui::text_style_height`.
- Added `TextStyle::resolve`.
- Made the v-align and scale of user fonts tweakable ([#1241](https://togithub.com/emilk/egui/pull/1027)).
- Plot:
- Added `Plot::x_axis_formatter` and `Plot::y_axis_formatter` for custom axis labels ([#1130](https://togithub.com/emilk/egui/pull/1130)).
- Added `Plot::allow_boxed_zoom()`, `Plot::boxed_zoom_pointer()` for boxed zooming on plots ([#1188](https://togithub.com/emilk/egui/pull/1188)).
- Added plot pointer coordinates with `Plot::coordinates_formatter` ([#1235](https://togithub.com/emilk/egui/pull/1235)).
- Added linked axis support for plots via `plot::LinkedAxisGroup` ([#1184](https://togithub.com/emilk/egui/pull/1184)).
- `Context::load_texture` to convert an image into a texture which can be displayed using e.g. `ui.image(texture, size)` ([#1110](https://togithub.com/emilk/egui/pull/1110)).
- `Ui::input_mut` to modify how subsequent widgets see the `InputState` and a convenience method `InputState::consume_key` for shortcuts or hotkeys ([#1212](https://togithub.com/emilk/egui/pull/1212)).
- Added `Ui::add_visible` and `Ui::add_visible_ui`.
- Added `CollapsingHeader::icon` to override the default open/close icon using a custom function. ([1147](https://togithub.com/emilk/egui/pull/1147)).
- Added `ui.data()`, `ctx.data()`, `ctx.options()` and `ctx.tessellation_options()` ([#1175](https://togithub.com/emilk/egui/pull/1175)).
- Added `Response::on_hover_text_at_pointer` as a convenience akin to `Response::on_hover_text` ([1179](https://togithub.com/emilk/egui/pull/1179)).
- Opt-in dependency on `tracing` crate for logging warnings ([#1192](https://togithub.com/emilk/egui/pull/1192)).
- Added `ui.weak(text)`.
- Added `Slider::step_by` ([1225](https://togithub.com/emilk/egui/pull/1225)).
- Added `Context::move_to_top` and `Context::top_most_layer` for managing the layer on the top ([#1242](https://togithub.com/emilk/egui/pull/1242)).
- Support a subset of macOS' emacs input field keybindings in `TextEdit` ([#1243](https://togithub.com/emilk/egui/pull/1243)).
- Added ability to scroll an UI into view without specifying an alignment ([1247](https://togithub.com/emilk/egui/pull/1247)).
- Added `Ui::scroll_to_rect` ([1252](https://togithub.com/emilk/egui/pull/1252)).
##### π§ Changed
- β οΈ `Context::input` and `Ui::input` now locks a mutex. This can lead to a dead-lock is used in an `if let` binding!
- `if let Some(pos) = ui.input().pointer.latest_pos()` and similar must now be rewritten on two lines.
- Search for this problem in your code using the regex `if let .*input`.
- Better contrast in the default light mode style ([#1238](https://togithub.com/emilk/egui/pull/1238)).
- Renamed `CtxRef` to `Context` ([#1050](https://togithub.com/emilk/egui/pull/1050)).
- `Context` can now be cloned and stored between frames ([#1050](https://togithub.com/emilk/egui/pull/1050)).
- Renamed `Ui::visible` to `Ui::is_visible`.
- Split `Event::Text` into `Event::Text` and `Event::Paste` ([#1058](https://togithub.com/emilk/egui/pull/1058)).
- Replaced `Style::body_text_style` with more generic `Style::text_styles` ([#1154](https://togithub.com/emilk/egui/pull/1154)).
- `TextStyle` is no longer `Copy` ([#1154](https://togithub.com/emilk/egui/pull/1154)).
- Replaced `TextEdit::text_style` with `TextEdit::font` ([#1154](https://togithub.com/emilk/egui/pull/1154)).
- `Plot::highlight` now takes a `bool` argument ([#1159](https://togithub.com/emilk/egui/pull/1159)).
- `ScrollArea::show` now returns a `ScrollAreaOutput`, so you might need to add `.inner` after the call to it ([#1166](https://togithub.com/emilk/egui/pull/1166)).
- Replaced `corner_radius: f32` with `rounding: Rounding`, allowing per-corner rounding settings ([#1206](https://togithub.com/emilk/egui/pull/1206)).
- Replaced Frame's `margin: Vec2` with `margin: Margin`, allowing for different margins on opposing sides ([#1219](https://togithub.com/emilk/egui/pull/1219)).
- Renamed `Plot::custom_label_func` to `Plot::label_formatter` ([#1235](https://togithub.com/emilk/egui/pull/1235)).
- `Areas::layer_id_at` ignores non-interatable layers (i.e. Tooltips) ([#1240](https://togithub.com/emilk/egui/pull/1240)).
- `ScrollArea`s will not shrink below a certain minimum size, set by `min_scrolled_width/min_scrolled_height` ([1255](https://togithub.com/emilk/egui/pull/1255)).
- For integrations:
- `Output` has now been renamed `PlatformOutput` and `Context::run` now returns the new `FullOutput` ([#1292](https://togithub.com/emilk/egui/pull/1292)).
- `FontImage` has been replaced by `TexturesDelta` (found in `FullOutput`), describing what textures were loaded and freed each frame ([#1110](https://togithub.com/emilk/egui/pull/1110)).
- The painter must support partial texture updates ([#1149](https://togithub.com/emilk/egui/pull/1149)).
- Added `RawInput::max_texture_side` which should be filled in with e.g. `GL_MAX_TEXTURE_SIZE` ([#1154](https://togithub.com/emilk/egui/pull/1154)).
##### π Fixed
- Plot `Orientation` was not public, although fields using this type were ([#1130](https://togithub.com/emilk/egui/pull/1130)).
- Context menus now respects the theme ([#1043](https://togithub.com/emilk/egui/pull/1043)).
- Calling `Context::set_pixels_per_point` before the first frame will now work.
- Tooltips that don't fit the window don't flicker anymore ([#1240](https://togithub.com/emilk/egui/pull/1240)).
- Scroll areas now follow text cursor ([#1252](https://togithub.com/emilk/egui/pull/1252)).
- Slider: correctly respond with drag and focus events when interacting with the value directly ([1270](https://togithub.com/emilk/egui/pull/1270)).
##### Contributors π
- [4JX](https://togithub.com/4JX)
- [55nknown](https://togithub.com/55nknown)
- [AlanRace](https://togithub.com/AlanRace)
- [AlexxxRu](https://togithub.com/AlexxxRu)
- [awaken1ng](https://togithub.com/awaken1ng)
- [BctfN0HUK7Yg](https://togithub.com/BctfN0HUK7Yg)
- [Bromeon](https://togithub.com/Bromeon)
- [cat-state](https://togithub.com/cat)
- [danielkeller](https://togithub.com/danielkeller)
- [dvec](https://togithub.com/dvec)
- [Friz64](https://togithub.com/Friz64)
- [Gordon01](https://togithub.com/Gordon01)
- [HackerFoo](https://togithub.com/HackerFoo)
- [juancampa](https://togithub.com/juancampa)
- [justinj](https://togithub.com/justinj)
- [lampsitter](https://togithub.com/lampsitter)
- [LordMZTE](https://togithub.com/LordMZTE)
- [manuel-i](https://togithub.com/manuel)
- [Mingun](https://togithub.com/Mingun)
- [niklaskorz](https://togithub.com/niklaskorz)
- [nongiach](https://togithub.com/nongiach)
- [parasyte](https://togithub.com/parasyte)
- [psiphi75](https://togithub.com/psiphi75)
- [s-nie](https://togithub.com/s)
- [t18b219k](https://togithub.com/t18b219k)
- [terhechte](https://togithub.com/terhechte)
- [xudesheng](https://togithub.com/xudesheng)
- [yusdacra](https://togithub.com/yusdacra)
### [`v0.16.0`](https://togithub.com/emilk/egui/blob/HEAD/CHANGELOG.md#0160---2021-12-29---Context-menus-and-rich-text)
[Compare Source](https://togithub.com/emilk/egui/compare/0.15.0...0.16.0)
##### β Added
- Added context menus: See `Ui::menu_button` and `Response::context_menu` ([#543](https://togithub.com/emilk/egui/pull/543)).
- Most widgets containing text (`Label`, `Button` etc) now supports rich text ([#855](https://togithub.com/emilk/egui/pull/855)).
- Plots:
- Added bar charts and box plots ([#863](https://togithub.com/emilk/egui/pull/863)).
- You can now query information about the plot (e.g. get the mouse position in plot coordinates, or the plot
bounds) while adding items. `Plot` ([#766](https://togithub.com/emilk/egui/pull/766) and
[#892](https://togithub.com/emilk/egui/pull/892)).
- You can now read and write the cursor of a `TextEdit` ([#848](https://togithub.com/emilk/egui/pull/848)).
- When using a custom font you can now specify a font index ([#873](https://togithub.com/emilk/egui/pull/873)).
- Added vertical sliders with `Slider::new(β¦).vertical()` ([#875](https://togithub.com/emilk/egui/pull/875)).
- Added `Button::image_and_text` ([#832](https://togithub.com/emilk/egui/pull/832)).
- Added `CollapsingHeader::open` to control if it is open or collapsed ([#1006](https://togithub.com/emilk/egui/pull/1006)).
- Added `egui::widgets::color_picker::color_picker_color32` to show the color picker.
##### π§ Changed
- MSRV (Minimum Supported Rust Version) is now `1.56.0`.
- `ui.add(Button::new("β¦").text_color(β¦))` is now `ui.button(RichText::new("β¦").color(β¦))` (same for `Label` )([#855](https://togithub.com/emilk/egui/pull/855)).
- Plots now provide a `show` method that has to be used to add items to and show the plot ([#766](https://togithub.com/emilk/egui/pull/766)).
- `menu::menu(ui, ...)` is now `ui.menu_button(...)` ([#543](https://togithub.com/emilk/egui/pull/543))
- Replaced `CtxRef::begin_frame` and `end_frame` with `CtxRef::run` ([#872](https://togithub.com/emilk/egui/pull/872)).
- Replaced `scroll_delta` and `zoom_delta` in `RawInput` with `Event::Scroll` and `Event::Zoom`.
- Unified the four `Memory` data buckets (`data`, `data_temp`, `id_data` and `id_data_temp`) into a single `Memory::data`, with a new interface ([#836](https://togithub.com/emilk/egui/pull/836)).
- Replaced `Ui::__test` with `egui::__run_test_ui` ([#872](https://togithub.com/emilk/egui/pull/872)).
##### π Fixed
- Fixed `ComboBox` and other popups getting clipped to parent window ([#885](https://togithub.com/emilk/egui/pull/885)).
- The color picker is now better at keeping the same hue even when saturation goes to zero ([#886](https://togithub.com/emilk/egui/pull/886)).
##### π₯ Removed
- Removed `egui::math` (use `egui::emath` instead).
- Removed `egui::paint` (use `egui::epaint` instead).
##### Contributors π
- [5225225](https://togithub.com/5225225): [#849](https://togithub.com/emilk/egui/pull/849).
- [aevyrie](https://togithub.com/aevyrie): [#966](https://togithub.com/emilk/egui/pull/966).
- [B-Reif](https://togithub.com/B-Reif): [#875](https://togithub.com/emilk/egui/pull/875).
- [Bromeon](https://togithub.com/Bromeon): [#863](https://togithub.com/emilk/egui/pull/863), [#918](https://togithub.com/emilk/egui/pull/918).
- [d10sfan](https://togithub.com/d10sfan): [#832](https://togithub.com/emilk/egui/pull/832).
- [EmbersArc](https://togithub.com/EmbersArc): [#766](https://togithub.com/emilk/egui/pull/766), [#892](https://togithub.com/emilk/egui/pull/892).
- [Hperigo](https://togithub.com/Hperigo): [#905](https://togithub.com/emilk/egui/pull/905).
- [isegal](https://togithub.com/isegal): [#934](https://togithub.com/emilk/egui/pull/934).
- [mankinskin](https://togithub.com/mankinskin): [#543](https://togithub.com/emilk/egui/pull/543).
- [niladic](https://togithub.com/niladic): [#499](https://togithub.com/emilk/egui/pull/499), [#863](https://togithub.com/emilk/egui/pull/863).
- [singalen](https://togithub.com/singalen): [#973](https://togithub.com/emilk/egui/pull/973).
- [sumibi-yakitori](https://togithub.com/sumibi-yakitori): [#830](https://togithub.com/emilk/egui/pull/830), [#870](https://togithub.com/emilk/egui/pull/870).
- [t18b219k](https://togithub.com/t18b219k): [#868](https://togithub.com/emilk/egui/pull/868), [#888](https://togithub.com/emilk/egui/pull/888).
Configuration
π Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
π¦ Automerge: Disabled by config. Please merge this manually once you are satisfied.
β» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
π Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
0.15
->0.23
Release Notes
emilk/egui (egui_demo_lib)
### [`v0.23.0`](https://togithub.com/emilk/egui/blob/HEAD/CHANGELOG.md#0230---2023-09-27---New-image-API) [Compare Source](https://togithub.com/emilk/egui/compare/0.22.0...0.23.0) This release contains a simple and powerful image API: ```rs // Load from web: ui.image("https://www.example.com/some_image.png"); // Include image in the binary using `include_bytes`: ui.image(egui::include_image!("../assets/ferris.svg")); // With options: ui.add( egui::Image::new("file://path/to/image.jpg") .max_width(200.0) .rounding(10.0), ); ``` The API is based on a plugin-system, where you can tell `egui` how to load the images, and from where. `egui_extras` comes with loaders for you, so all you need to do is add the following to your `Cargo.toml`: ```toml egui_extras = { version = "0.23", features = ["all_loaders"] } image = { version = "0.24", features = ["jpeg", "png"] } # Add the types you want support for ``` And this to your code: ```rs egui_extras::install_image_loaders(egui_ctx); ``` ##### β οΈ BREAKING - Update MSRV to Rust 1.70.0 [#3310](https://togithub.com/emilk/egui/pull/3310) - Break out plotting to own crate `egui_plot` [#3282](https://togithub.com/emilk/egui/pull/3282) ##### β Added - A new image API [#3297](https://togithub.com/emilk/egui/pull/3297) [#3315](https://togithub.com/emilk/egui/pull/3315) [#3328](https://togithub.com/emilk/egui/pull/3328) [#3338](https://togithub.com/emilk/egui/pull/3338) [#3342](https://togithub.com/emilk/egui/pull/3342) [#3343](https://togithub.com/emilk/egui/pull/3343) [#3402](https://togithub.com/emilk/egui/pull/3402) (thanks [@jprochazk](https://togithub.com/jprochazk)!) - Add option to truncate text at some width [#3244](https://togithub.com/emilk/egui/pull/3244) - Add control of line height and letter spacing [#3302](https://togithub.com/emilk/egui/pull/3302) - Support images with rounded corners [#3257](https://togithub.com/emilk/egui/pull/3257) - Change focused widget with arrow keys [#3272](https://togithub.com/emilk/egui/pull/3272) (thanks [@TimonPost](https://togithub.com/TimonPost)!) - Add opt-in `puffin` feature to egui [#3298](https://togithub.com/emilk/egui/pull/3298) - Add debug-option to show a callstack to the widget under the mouse [#3391](https://togithub.com/emilk/egui/pull/3391) - Add `Context::open_url` and `Context::copy_text` [#3380](https://togithub.com/emilk/egui/pull/3380) - Add `Area::constrain_to` and `Window::constrain_to` [#3396](https://togithub.com/emilk/egui/pull/3396) - Add `Memory::area_rect` [#3161](https://togithub.com/emilk/egui/pull/3161) (thanks [@tosti007](https://togithub.com/tosti007)!) - Add `Margin::expand_rect` and `shrink_rect` [#3214](https://togithub.com/emilk/egui/pull/3214) - Provide `into_inner()` for `egui::mutex::{Mutex, RwLock}` [#3110](https://togithub.com/emilk/egui/pull/3110) (thanks [@KmolYuan](https://togithub.com/KmolYuan)!) - Support multi-threaded Wasm [#3236](https://togithub.com/emilk/egui/pull/3236) - Change touch force to be `OptionConfiguration
π Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
π¦ Automerge: Disabled by config. Please merge this manually once you are satisfied.
β» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
π Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.