winit::changelog

Module v0_16

source
Expand description

§0.16.2

  • On Windows, non-resizable windows now have the maximization button disabled. This is consistent with behavior on macOS and popular X11 WMs.
  • Corrected incorrect unreachable! usage when guessing the DPI factor with no detected monitors.

§0.16.1

  • Added logging through log. Logging will become more extensive over time.
  • On X11 and Windows, the window’s DPI factor is guessed before creating the window. This greatly cuts back on unsightly auto-resizing that would occur immediately after window creation.
  • Fixed X11 backend compilation for environments where c_char is unsigned.

§0.16.0

  • Windows additionally has WindowBuilderExt::with_no_redirection_bitmap.
  • Breaking: Removed VirtualKeyCode::LMenu and VirtualKeyCode::RMenu; Windows now generates VirtualKeyCode::LAlt and VirtualKeyCode::RAlt instead.
  • On X11, exiting fullscreen no longer leaves the window in the monitor’s top left corner.
  • Breaking: Window::hidpi_factor has been renamed to Window::get_hidpi_factor for better consistency. WindowEvent::HiDPIFactorChanged has been renamed to WindowEvent::HiDpiFactorChanged. DPI factors are always represented as f64 instead of f32 now.
  • The Windows backend is now DPI aware. WindowEvent::HiDpiFactorChanged is implemented, and MonitorId::get_hidpi_factor and Window::hidpi_factor return accurate values.
  • Implemented WindowEvent::HiDpiFactorChanged on X11.
  • On macOS, Window::set_cursor_position is now relative to the client area.
  • On macOS, setting the maximum and minimum dimensions now applies to the client area dimensions rather than to the window dimensions.
  • On iOS, MonitorId::get_dimensions has been implemented and both MonitorId::get_hidpi_factor and Window::get_hidpi_factor return accurate values.
  • On Emscripten, MonitorId::get_hidpi_factor now returns the same value as Window::get_hidpi_factor (it previously would always return 1.0).
  • Breaking: The entire API for sizes, positions, etc. has changed. In the majority of cases, winit produces and consumes positions and sizes as LogicalPosition and LogicalSize, respectively. The notable exception is MonitorId methods, which deal in PhysicalPosition and PhysicalSize. See the documentation for specifics and explanations of the types. Additionally, winit automatically conserves logical size when the DPI factor changes.
  • Breaking: All deprecated methods have been removed. For Window::platform_display and Window::platform_window, switch to the appropriate platform-specific WindowExt methods. For Window::get_inner_size_points and Window::get_inner_size_pixels, use the LogicalSize returned by Window::get_inner_size and convert as needed.
  • HiDPI support for Wayland.
  • EventsLoop::get_available_monitors and EventsLoop::get_primary_monitor now have identical counterparts on Window, so this information can be acquired without an EventsLoop borrow.
  • AvailableMonitorsIter now implements Debug.
  • Fixed quirk on macOS where certain keys would generate characters at twice the normal rate when held down.
  • On X11, all event loops now share the same XConnection.
  • Breaking: Window::set_cursor_state and CursorState enum removed in favor of the more composable Window::grab_cursor and Window::hide_cursor. As a result, grabbing the cursor no longer automatically hides it; you must call both methods to retain the old behavior on Windows and macOS. Cursor::NoneCursor has been removed, as it’s no longer useful.
  • Breaking: Window::set_cursor_position now returns Result<(), String>, thus allowing for Box<Error> conversion via ?.