## 0.23.0 - On iOS, fixed support for the "Debug View Hierarchy" feature in Xcode. - On all platforms, `available_monitors` and `primary_monitor` are now on `EventLoopWindowTarget` rather than `EventLoop` to list monitors event in the event loop. - On Unix, X11 and Wayland are now optional features (enabled by default) - On X11, fix deadlock when calling `set_fullscreen_inner`. - On Web, prevent the webpage from scrolling when the user is focused on a winit canvas - On Web, calling `window.set_cursor_icon` no longer breaks HiDPI scaling - On Windows, drag and drop is now optional (enabled by default) and can be disabled with `WindowBuilderExtWindows::with_drag_and_drop(false)`. - On Wayland, fix deadlock when calling to `set_inner_size` from a callback. - On macOS, add `hide__other_applications` to `EventLoopWindowTarget` via existing `EventLoopWindowTargetExtMacOS` trait. `hide_other_applications` will hide other applications by calling `-[NSApplication hideOtherApplications: nil]`. - On android added support for `run_return`. - On MacOS, Fixed fullscreen and dialog support for `run_return`. - On Windows, fix bug where we'd try to emit `MainEventsCleared` events during nested win32 event loops. - On Web, use mouse events if pointer events aren't supported. This affects Safari. - On Windows, `set_ime_position` is now a no-op instead of a runtime crash. - On Android, `set_fullscreen` is now a no-op instead of a runtime crash. - On iOS and Android, `set_inner_size` is now a no-op instead of a runtime crash. - On Android, fix `ControlFlow::Poll` not polling the Android event queue. - On macOS, add `NSWindow.hasShadow` support. - On Web, fix vertical mouse wheel scrolling being inverted. - On Web, implement mouse capturing for click-dragging out of the canvas. - On Web, fix `ControlFlow::Exit` not properly handled. - On Web (web-sys only), send `WindowEvent::ScaleFactorChanged` event when `window.devicePixelRatio` is changed. - **Breaking:** On Web, `set_cursor_position` and `set_cursor_grab` will now always return an error. - **Breaking:** `PixelDelta` scroll events now return a `PhysicalPosition`. - On NetBSD, fixed crash due to incorrect detection of the main thread. - **Breaking:** On X11, `-` key is mapped to the `Minus` virtual key code, instead of `Subtract`. - On macOS, fix inverted horizontal scroll. - **Breaking:** `current_monitor` now returns `Option`. - **Breaking:** `primary_monitor` now returns `Option`. - On macOS, updated core-* dependencies and cocoa. - Bump `parking_lot` to 0.11 - On Android, bump `ndk`, `ndk-sys` and `ndk-glue` to 0.2. Checkout the new ndk-glue main proc attribute. - On iOS, fixed starting the app in landscape where the view still had portrait dimensions. - Deprecate the stdweb backend, to be removed in a future release - **Breaking:** Prefixed virtual key codes `Add`, `Multiply`, `Divide`, `Decimal`, and `Subtract` with `Numpad`. - Added `Asterisk` and `Plus` virtual key codes. - On Web (web-sys only), the `Event::LoopDestroyed` event is correctly emitted when leaving the page. - On Web, the `WindowEvent::Destroyed` event now gets emitted when a `Window` is dropped. - On Web (web-sys only), the event listeners are now removed when a `Window` is dropped or when the event loop is destroyed. - On Web, the event handler closure passed to `EventLoop::run` now gets dropped after the event loop is destroyed. - **Breaking:** On Web, the canvas element associated to a `Window` is no longer removed from the DOM when the `Window` is dropped. - On Web, `WindowEvent::Resized` is now emitted when `Window::set_inner_size` is called. - **Breaking:** `Fullscreen` enum now uses `Borderless(Option)` instead of `Borderless(MonitorHandle)` to allow picking the current monitor. - On MacOS, fix `WindowEvent::Moved` ignoring the scale factor. - On Wayland, add missing virtual keycodes. - On Wayland, implement proper `set_cursor_grab`. - On Wayland, the cursor will use similar icons if the requested one isn't available. - On Wayland, right clicking on client side decorations will request application menu. - On Wayland, fix tracking of window size after state changes. - On Wayland, fix client side decorations not being hidden properly in fullscreen. - On Wayland, fix incorrect size event when entering fullscreen with client side decorations. - On Wayland, fix `resizable` attribute not being applied properly on startup. - On Wayland, fix disabled repeat rate not being handled. - On Wayland, fix decoration buttons not working after tty switch. - On Wayland, fix scaling not being applied on output re-enable. - On Wayland, fix crash when `XCURSOR_SIZE` is `0`. - On Wayland, fix pointer getting created in some cases without pointer capability. - On Wayland, on kwin, fix space between window and decorations on startup. - **Breaking:** On Wayland, `Theme` trait was reworked. - On Wayland, disable maximize button for non-resizable window. - On Wayland, added support for `set_ime_position`. - On Wayland, fix crash on startup since GNOME 3.37.90. - On X11, fix incorrect modifiers state on startup.