Skip to content

Winit Version v0.28.0

Compare
Choose a tag to compare
@kchibisov kchibisov released this 02 Feb 03:56
· 675 commits to master since this release
v0.28.0
e5260da
  • On macOS, fixed Ime::Commit persisting for all input after interacting with Ime.
  • On macOS, added WindowExtMacOS::option_as_alt and WindowExtMacOS::set_option_as_alt.
  • On Windows, fix window size for maximized, undecorated windows.
  • On Windows and macOS, add WindowBuilder::with_active.
  • Add Window::is_minimized.
  • On X11, fix errors handled during register_xlib_error_hook invocation bleeding into winit.
  • Add Window::has_focus.
  • On Windows, fix Window::set_minimized(false) not working for windows minimized by Win + D hotkey.
  • Breaking: On Web, touch input no longer fires WindowEvent::Cursor*, WindowEvent::MouseInput, or DeviceEvent::MouseMotion like other platforms, but instead it fires WindowEvent::Touch.
  • Breaking: Removed platform specific WindowBuilder::with_parent API in favor of WindowBuilder::with_parent_window.
  • On Windows, retain WS_MAXIMIZE window style when un-minimizing a maximized window.
  • On Windows, fix left mouse button release event not being sent after Window::drag_window.
  • On macOS, run most actions on the main thread, which is strictly more correct, but might make multithreaded applications block slightly more.
  • On macOS, fix panic when getting current monitor without any monitor attached.
  • On Windows and MacOS, add API to enable/disable window buttons (close, minimize, ...etc).
  • On Windows, macOS, X11 and Wayland, add Window::set_theme.
  • Breaking: Remove WindowExtWayland::wayland_set_csd_theme and WindowBuilderExtX11::with_gtk_theme_variant.
  • On Windows, revert window background to an empty brush to avoid white flashes when changing scaling.
  • Breaking: Removed Window::set_always_on_top and related APIs in favor of Window::set_window_level.
  • On Windows, MacOS and X11, add always on bottom APIs.
  • On Windows, fix the value in MouseButton::Other.
  • On macOS, add WindowExtMacOS::is_document_edited and WindowExtMacOS::set_document_edited APIs.
  • Breaking: Removed WindowBuilderExtIOS::with_root_view_class; instead, you should use [[view layer] addSublayer: ...] to add an instance of the desired layer class (e.g. CAEAGLLayer or CAMetalLayer). See vulkano-win or wgpu for examples of this.
  • On MacOS and Windows, add Window::set_content_protected.
  • On MacOS, add EventLoopBuilderExtMacOS::with_activate_ignoring_other_apps.
  • On Windows, fix icons specified on WindowBuilder not taking effect for windows created after the first one.
  • On Windows and macOS, add Window::title to query the current window title.
  • On Windows, fix focusing menubar when pressing Alt.
  • On MacOS, made accepts_first_mouse configurable.
  • Migrated WindowBuilderExtUnix::with_resize_increments to WindowBuilder.
  • Added Window::resize_increments/Window::set_resize_increments to update resize increments at runtime for X11/macOS.
  • macOS/iOS: Use objc2 instead of objc internally.
  • Breaking: Bump MSRV from 1.57 to 1.60.
  • Breaking: Split the platform::unix module into platform::x11 and platform::wayland. The extension types are similarly renamed.
  • Breaking:: Removed deprecated method platform::unix::WindowExtUnix::is_ready.
  • Removed parking_lot dependency.
  • Breaking: On macOS, add support for two-finger touchpad magnification and rotation gestures with new events WindowEvent::TouchpadMagnify and WindowEvent::TouchpadRotate. Also add support for touchpad smart-magnification gesture with a new event WindowEvent::SmartMagnify.
  • Breaking: On web, the WindowBuilderExtWebSys::with_prevent_default setting (enabled by default), now additionally prevents scrolling of the webpage in mobile browsers, previously it only disabled scrolling on desktop.
  • On Wayland, wayland-csd-adwaita now uses ab_glyph instead of crossfont to render the title for decorations.
  • On Wayland, a new wayland-csd-adwaita-crossfont feature was added to use crossfont instead of ab_glyph for decorations.
  • On Wayland, if not otherwise specified use upstream automatic CSD theme selection.
  • On X11, added WindowExtX11::with_parent to create child windows.
  • Added support for WindowBuilder::with_theme and Window::theme to support per-window dark/light/system theme configuration on macos, windows and wayland.
  • On macOS, added support for WindowEvent::ThemeChanged.
  • Breaking: Removed WindowBuilderExtWindows::with_theme and WindowBuilderExtWayland::with_wayland_csd_theme in favour of WindowBuilder::with_theme.
  • Breaking: Removed WindowExtWindows::theme in favour of Window::theme.
  • Enabled doc_auto_cfg when generating docs on docs.rs for feature labels.
  • Breaking: On Android, switched to using android-activity crate as a glue layer instead of ndk-glue. See README.md#Android for more details. (#2444)
  • Breaking: Removed support for raw-window-handle version 0.4
  • On Wayland, RedrawRequested not emitted during resize.
  • Add a set_wait_timeout function to ControlFlow to allow waiting for a Duration.
  • Breaking: Remove the unstable xlib_xconnection() function from the private interface.
  • Added Orbital support for Redox OS
  • On X11, added drag_resize_window method.
  • Added Window::set_transparent to provide a hint about transparency of the window on Wayland and macOS.
  • On macOS, fix the mouse buttons other than left/right/middle being reported as middle.
  • On Wayland, support fractional scaling via the wp-fractional-scale protocol.
  • On web, fix removal of mouse event listeners from the global object upon window distruction.
  • Add WindowAttributes getter to WindowBuilder to allow introspection of default values.
  • Added Window::set_ime_purpose for setting the IME purpose, currently implemented on Wayland only.