Module winit::changelog::v0_15

source ·
Expand description

§0.15.1

  • On X11, the Moved event is no longer sent when the window is resized without changing position.
  • MouseCursor and CursorState now implement Default.
  • WindowBuilder::with_resizable implemented for Windows, X11, Wayland, and macOS.
  • Window::set_resizable implemented for Windows, X11, Wayland, and macOS.
  • On X11, if the monitor’s width or height in millimeters is reported as 0, the DPI is now 1.0 instead of +inf.
  • On X11, the environment variable WINIT_HIDPI_FACTOR has been added for overriding DPI factor.
  • On X11, enabling transparency no longer causes the window contents to flicker when resizing.
  • On X11, with_override_redirect now actually enables override redirect.
  • macOS now generates VirtualKeyCode::LAlt and VirtualKeyCode::RAlt instead of None for both.
  • On macOS, VirtualKeyCode::RWin and VirtualKeyCode::LWin are no longer switched.
  • On macOS, windows without decorations can once again be resized.
  • Fixed race conditions when creating an EventsLoop on X11, most commonly manifesting as "[xcb] Unknown sequence number while processing queue".
  • On macOS, CursorMoved and MouseInput events are only generated if they occurs within the window’s client area.
  • On macOS, resizing the window no longer generates a spurious MouseInput event.

§0.15.0

  • Icon::to_cardinals is no longer public, since it was never supposed to be.
  • Wayland: improve diagnostics if initialization fails
  • Fix some system event key doesn’t work when focused, do not block keyevent forward to system on macOS
  • On X11, the scroll wheel position is now correctly reset on i3 and other WMs that have the same quirk.
  • On X11, Window::get_current_monitor now reliably returns the correct monitor.
  • On X11, Window::hidpi_factor returns values from XRandR rather than the inaccurate values previously queried from the core protocol.
  • On X11, the primary monitor is detected correctly even when using versions of XRandR less than 1.5.
  • MonitorId now implements Debug.
  • Fixed bug on macOS where using with_decorations(false) would cause set_decorations(true) to produce a transparent titlebar with no title.
  • Implemented MonitorId::get_position on macOS.
  • On macOS, Window::get_current_monitor now returns accurate values.
  • Added WindowBuilderExt::with_resize_increments to macOS.
  • Breaking: On X11, WindowBuilderExt::with_resize_increments and WindowBuilderExt::with_base_size now take u32 values rather than i32.
  • macOS keyboard handling has been overhauled, allowing for the use of dead keys, IME, etc. Right modifier keys are also no longer reported as being left.
  • Added the Window::set_ime_spot(x: i32, y: i32) method, which is implemented on X11 and macOS.
  • Breaking: os::unix::WindowExt::send_xim_spot(x: i16, y: i16) no longer exists. Switch to the new Window::set_ime_spot(x: i32, y: i32), which has equivalent functionality.
  • Fixed detection of Pause and Scroll keys on Windows.
  • On Windows, alt-tabbing while the cursor is grabbed no longer makes it impossible to re-grab the cursor.
  • On Windows, using CursorState::Hide when the cursor is grabbed now ungrabs the cursor first.
  • Implemented MouseCursor::NoneCursor on Windows.
  • Added WindowBuilder::with_always_on_top and Window::set_always_on_top. Implemented on Windows, macOS, and X11.
  • On X11, WindowBuilderExt now has with_class, with_override_redirect, and with_x11_window_type to allow for more control over window creation. WindowExt additionally has set_urgent.
  • More hints are set by default on X11, including _NET_WM_PID and WM_CLIENT_MACHINE. Note that prior to this, the WM_CLASS hint was automatically set to whatever value was passed to with_title. It’s now set to the executable name to better conform to expectations and the specification; if this is undesirable, you must explicitly use WindowBuilderExt::with_class.