Available on nowhere.
Expand description
§0.29.15
- On X11, fix crash due to xsettings query on systems with incomplete xsettings.
§0.29.14
- On X11/Wayland, fix
text
andtext_with_all_modifiers
not beingNone
during compose. - On Wayland, don’t reapply cursor grab when unchanged.
- On X11, fix a bug where some mouse events would be unexpectedly filtered out.
§0.29.13
- On Web, fix possible crash with
ControlFlow::Wait
andControlFlow::WaitUntil
.
§0.29.12
- On X11, fix use after free during xinput2 handling.
- On X11, filter close to zero values in mouse device events
§0.29.11
- Fix compatibility with 32-bit platforms without 64-bit atomics.
- On macOS, fix incorrect IME cursor rect origin.
- On Windows, fixed a race condition when sending an event through the loop proxy.
- On X11, fix swapped instance and general class names.
- On X11, don’t require XIM to run.
- On X11, fix xkb state not being updated correctly sometimes leading to wrong input.
- On X11, reload dpi on
_XSETTINGS_SETTINGS
update. - On X11, fix deadlock when adjusting DPI and resizing at the same time.
- On Wayland, disable
Occluded
event handling. - On Wayland, fix DeviceEvent::Motion not being sent
- On Wayland, fix
Focused(false)
being send when other seats still have window focused. - On Wayland, fix
Window::set_{min,max}_inner_size
not always applied. - On Wayland, fix title in CSD not updated from
AboutToWait
. - On Windows, fix inconsistent resizing behavior with multi-monitor setups when repositioning outside the event loop.
- On Wayland, fix
WAYLAND_SOCKET
not used when detecting platform. - On Orbital, fix
logical_key
andtext
not reported inKeyEvent
. - On Orbital, implement
KeyEventExtModifierSupplement
. - On Orbital, map keys to
NamedKey
when possible. - On Orbital, implement
set_cursor_grab
. - On Orbital, implement
set_cursor_visible
. - On Orbital, implement
drag_window
. - On Orbital, implement
drag_resize_window
. - On Orbital, implement
set_transparent
. - On Orbital, implement
set_visible
. - On Orbital, implement
is_visible
. - On Orbital, implement
set_resizable
. - On Orbital, implement
is_resizable
. - On Orbital, implement
set_maximized
. - On Orbital, implement
is_maximized
. - On Orbital, implement
set_decorations
. - On Orbital, implement
is_decorated
. - On Orbital, implement
set_window_level
. - On Orbital, emit
DeviceEvent::MouseMotion
.
§0.29.10
- On Web, account for canvas being focused already before event loop starts.
- On Web, increase cursor position accuracy.
§0.29.9
- On X11, fix
NotSupported
error not propagated when creating event loop. - On Wayland, fix resize not issued when scale changes
- On X11 and Wayland, fix arrow up on keypad reported as
ArrowLeft
. - On macOS, report correct logical key when Ctrl or Cmd is pressed.
§0.29.8
- On X11, fix IME input lagging behind.
- On X11, fix
ModifiersChanged
not sent from xdotool-like input - On X11, fix keymap not updated from xmodmap.
- On X11, reduce the amount of time spent fetching screen resources.
- On Wayland, fix
Window::request_inner_size
being overwritten by resize. - On Wayland, fix
Window::inner_size
not using the correct rounding.
§0.29.7
- On X11, fix
Xft.dpi
reload during runtime. - On X11, fix window minimize.
§0.29.6
- On Web, fix context menu not being disabled by
with_prevent_default(true)
. - On Wayland, fix
WindowEvent::Destroyed
not being delivered after destroying window. - Fix
EventLoopExtRunOnDemand::run_on_demand
not working for consequent invocation
§0.29.5
- On macOS, remove spurious error logging when handling
Fn
. - On X11, fix an issue where floating point data from the server is misinterpreted during a drag and drop operation.
- On X11, fix a bug where focusing the window would panic.
- On macOS, fix
refresh_rate_millihertz
. - On Wayland, disable Client Side Decorations when
wl_subcompositor
is not supported. - On X11, fix
Xft.dpi
detection from Xresources. - On Windows, fix consecutive calls to
window.set_fullscreen(Some(Fullscreen::Borderless(None)))
resulting in losing previous window state when eventually exiting fullscreen usingwindow.set_fullscreen(None)
. - On Wayland, fix resize being sent on focus change.
- On Windows, fix
set_ime_cursor_area
.
§0.29.4
- Fix crash when running iOS app on macOS.
- On X11, check common alternative cursor names when loading cursor.
- On X11, reload the DPI after a property change event.
- On Windows, fix so
drag_window
anddrag_resize_window
can be called from another thread. - On Windows, fix
set_control_flow
inAboutToWait
not being taken in account. - On macOS, send a
Resized
event after eachScaleFactorChanged
event. - On Wayland, fix
wl_surface
being destroyed before associated objects. - On macOS, fix assertion when pressing
Fn
key. - On Windows, add
WindowBuilderExtWindows::with_clip_children
to controlWS_CLIPCHILDREN
style.
§0.29.3
- On Wayland, apply correct scale to
PhysicalSize
passed inWindowBuilder::with_inner_size
when possible. - On Wayland, fix
RedrawRequested
being always sent without decorations andsctk-adwaita
feature. - On Wayland, ignore resize requests when the window is fully tiled.
- On Wayland, use
configure_bounds
to constrainwith_inner_size
when compositor wants users to pick size. - On Windows, fix deadlock when accessing the state during
Cursor{Enter,Leave}
. - On Windows, add support for
Window::set_transparent
. - On macOS, fix deadlock when entering a nested event loop from an event handler.
- On macOS, add support for
Window::set_blur
.
§0.29.2
- Breaking: Bump MSRV from
1.60
to1.65
. - Breaking: Add
Event::MemoryWarning
; implemented on iOS/Android. - Breaking: Bump
ndk
version to0.8.0
, ndk-sys to0.5.0
,android-activity
to0.5.0
. - Breaking: Change default
ControlFlow
fromPoll
toWait
. - Breaking: Move
Event::RedrawRequested
toWindowEvent::RedrawRequested
. - Breaking: Moved
ControlFlow::Exit
toEventLoopWindowTarget::exit()
andEventLoopWindowTarget::exiting()
and removedControlFlow::ExitWithCode(_)
entirely. - Breaking: Moved
ControlFlow
toEventLoopWindowTarget::set_control_flow()
andEventLoopWindowTarget::control_flow()
. - Breaking:
EventLoop::new
andEventLoopBuilder::build
now returnResult<Self, EventLoopError>
- Breaking:
WINIT_UNIX_BACKEND
was removed in favor of standardWAYLAND_DISPLAY
andDISPLAY
variables. - Breaking: on Wayland, dispatching user created Wayland queue won’t wake up the loop unless winit has event to send back.
- Breaking: remove
DeviceEvent::Text
. - Breaking: Remove lifetime parameter from
Event
andWindowEvent
. - Breaking: Rename
Window::set_inner_size
toWindow::request_inner_size
and indicate if the size was applied immediately. - Breaking:
ActivationTokenDone
event which could be requested with the newstartup_notify
module, see its docs for more. - Breaking:
ScaleFactorChanged
now contains a writer instead of a reference to update inner size. - Breaking
run() -> !
has been replaced byrun() -> Result<(), EventLoopError>
for returning errors without callingstd::process::exit()
(#2767) - Breaking Removed
EventLoopExtRunReturn
/run_return
in favor ofEventLoopExtPumpEvents
/pump_events
andEventLoopExtRunOnDemand
/run_on_demand
(#2767) RedrawRequested
is no longer guaranteed to be emitted afterMainEventsCleared
, it is now platform-specific when the event is emitted after being requested viaredraw_request()
.- On Windows,
RedrawRequested
is now driven byWM_PAINT
messages which are requested viaredraw_request()
- On Windows,
- Breaking
LoopDestroyed
renamed toLoopExiting
(#2900) - Breaking
RedrawEventsCleared
removed (#2900) - Breaking
MainEventsCleared
removed (#2900) - Breaking: Remove all deprecated
modifiers
fields. - Breaking: Rename
DeviceEventFilter
toDeviceEvents
reversing the behavior of variants. - Breaking Add
AboutToWait
event which is emitted when the event loop is about to block and wait for new events (#2900) - Breaking: Rename
EventLoopWindowTarget::set_device_event_filter
tolisten_device_events
. - Breaking: Rename
Window::set_ime_position
toWindow::set_ime_cursor_area
adding a way to set exclusive zone. - Breaking:
with_x11_visual
now takes the visual ID instead of the bare pointer. - Breaking
MouseButton
now supportsBack
andForward
variants, emitted from mouse events on Wayland, X11, Windows, macOS and Web. - Breaking: On Web,
instant
is now replaced byweb_time
. - Breaking: On Web, dropped support for Safari versions below 13.1.
- Breaking: On Web, the canvas output bitmap size is no longer adjusted.
- Breaking: On Web, the canvas size is not controlled by Winit anymore and external changes to the canvas size will be reported through
WindowEvent::Resized
. - Breaking: Updated
bitflags
crate version to2
, which changes the API on exposed types. - Breaking:
CursorIcon::Arrow
was removed. - Breaking:
CursorIcon::Hand
is now namedCursorIcon::Pointer
. - Breaking:
CursorIcon
is now used from thecursor-icon
crate. - Breaking:
WindowExtWebSys::canvas()
now returns anOption
. - Breaking: Overhaul keyboard input handling.
- Replace
KeyboardInput
withKeyEvent
andRawKeyEvent
.- Change
WindowEvent::KeyboardInput
to contain aKeyEvent
. - Change
Event::Key
to contain aRawKeyEvent
.
- Change
- Remove
Event::ReceivedCharacter
. In its place, you should useKeyEvent.text
in combination withWindowEvent::Ime
. - Replace
VirtualKeyCode
with theKey
enum. - Replace
ScanCode
with theKeyCode
enum. - Rename
ModifiersState::LOGO
toSUPER
andModifiersState::CTRL
toCONTROL
. - Add
PhysicalKey
wrappingKeyCode
andNativeKeyCode
. - Add
KeyCode
to refer to keys (roughly) by their physical location. - Add
NativeKeyCode
to represent rawKeyCode
s which Winit doesn’t understand. - Add
Key
to represent the keys after they’ve been interpreted by the active (software) keyboard layout. - Add
NamedKey
to represent the categorized keys. - Add
NativeKey
to represent rawKey
s which Winit doesn’t understand. - Add
KeyLocation
to tell apartKey
s which usually “mean” the same thing, but can appear simultaneously in different spots on the same keyboard layout. - Add
Window::reset_dead_keys
to enable application-controlled cancellation of dead key sequences. - Add
KeyEventExtModifierSupplement
to expose additional (and less portable) interpretations of a given key-press. - Add
PhysicalKeyExtScancode
, which lets you convert between scancodes andPhysicalKey
. ModifiersChanged
now uses dedicatedModifiers
struct.
- Replace
- Removed platform-specific extensions that should be retrieved through
raw-window-handle
trait implementations instead:platform::windows::HINSTANCE
.WindowExtWindows::hinstance
.WindowExtWindows::hwnd
.WindowExtIOS::ui_window
.WindowExtIOS::ui_view_controller
.WindowExtIOS::ui_view
.WindowExtMacOS::ns_window
.WindowExtMacOS::ns_view
.EventLoopWindowTargetExtWayland::wayland_display
.WindowExtWayland::wayland_surface
.WindowExtWayland::wayland_display
.WindowExtX11::xlib_window
.WindowExtX11::xlib_display
.WindowExtX11::xlib_screen_id
.WindowExtX11::xcb_connection
.
- Reexport
raw-window-handle
inwindow
module. - Add
ElementState::is_pressed
. - Add
Window::pre_present_notify
to notify winit before presenting to the windowing system. - Add
Window::set_blur
to request a blur behind the window; implemented on Wayland for now. - Add
Window::show_window_menu
to request a titlebar/system menu; implemented on Wayland/Windows for now. - Implement
AsFd
/AsRawFd
forEventLoop<T>
on X11 and Wayland. - Implement
PartialOrd
andOrd
forMouseButton
. - Implement
PartialOrd
andOrd
on types in thedpi
module. - Make
WindowBuilder
Send + Sync
. - Make iOS
MonitorHandle
andVideoMode
usable from other threads. - Make iOS windows usable from other threads.
- On Android, add force data to touch events.
- On Android, added
EventLoopBuilderExtAndroid::handle_volume_keys
to indicate that the application will handle the volume keys manually. - On Android, fix
DeviceId
to contain device id’s. - On Orbital, fix
ModifiersChanged
not being sent. - On Wayland,
Window::outer_size
now accounts for client side decorations. - On Wayland, add
Window::drag_resize_window
method. - On Wayland, remove
WINIT_WAYLAND_CSD_THEME
variable. - On Wayland, fix
TouchPhase::Canceled
being sent for moved events. - On Wayland, fix forward compatibility issues.
- On Wayland, fix initial window size not restored for maximized/fullscreened on startup window.
- On Wayland, fix maximized startup not taking full size on GNOME.
- On Wayland, fix maximized window creation and window geometry handling.
- On Wayland, fix window not checking that it actually got initial configure event.
- On Wayland, make double clicking and moving the CSD frame more reliable.
- On Wayland, support
Occluded
event with xdg-shell v6 - On Wayland, use frame callbacks to throttle
RedrawRequested
events so redraws will align with compositor. - On Web,
ControlFlow::WaitUntil
now uses the Prioritized Task Scheduling API.setTimeout()
, with a trick to circumvent throttling to 4ms, is used as a fallback. - On Web,
EventLoopProxy
now implementsSend
. - On Web,
Window
now implementsSend
andSync
. - On Web, account for CSS
padding
,border
, andmargin
when getting or setting the canvas position. - On Web, add Fullscreen API compatibility for Safari.
- On Web, add
DeviceEvent::Motion
,DeviceEvent::MouseWheel
,DeviceEvent::Button
andDeviceEvent::Key
support. - On Web, add
EventLoopWindowTargetExtWebSys
andPollStrategy
, which allows to set different strategies forControlFlow::Poll
. By default the Prioritized Task Scheduling API is used, but an option to useWindow.requestIdleCallback
is available as well. Both usesetTimeout()
, with a trick to circumvent throttling to 4ms, as a fallback. - On Web, add
WindowBuilderExtWebSys::with_append()
to append the canvas element to the web page on creation. - On Web, allow event loops to be recreated with
spawn
. - On Web, enable event propagation.
- On Web, fix
ControlFlow::WaitUntil
to never wake up before the given time. - On Web, fix
DeviceEvent::MouseMotion
only being emitted for each canvas instead of the whole window. - On Web, fix
Window:::set_fullscreen
doing nothing when called outside the event loop but during transient activation. - On Web, fix pen treated as mouse input.
- On Web, fix pointer button events not being processed when a buttons is already pressed.
- On Web, fix scale factor resize suggestion always overwriting the canvas size.
- On Web, fix some
WindowBuilder
methods doing nothing. - On Web, fix some
Window
methods using incorrect HTML attributes instead of CSS properties. - On Web, fix the bfcache by not using the
beforeunload
event and map bfcache loading/unloading toSuspended
/Resumed
events. - On Web, fix touch input not gaining or loosing focus.
- On Web, fix touch location to be as accurate as mouse position.
- On Web, handle coalesced pointer events, which increases the resolution of pointer inputs.
- On Web, implement
Window::focus_window()
. - On Web, implement
Window::set_(min|max)_inner_size()
. - On Web, implement
WindowEvent::Occluded
. - On Web, never return a
MonitorHandle
. - On Web, prevent clicks on the canvas to select text.
- On Web, remove any fullscreen requests from the queue when an external fullscreen activation was detected.
- On Web, remove unnecessary
Window::is_dark_mode()
, which was replaced withWindow::theme()
. - On Web, respect
EventLoopWindowTarget::listen_device_events()
settings. - On Web, scale factor and dark mode detection are now more robust.
- On Web, send mouse position on button release as well.
- On Web, take all transient activations on the canvas and window into account to queue a fullscreen request.
- On Web, use
Window.requestAnimationFrame()
to throttleRedrawRequested
events. - On Web, use the correct canvas size when calculating the new size during scale factor change, instead of using the output bitmap size.
- On Web: fix
Window::request_redraw
not waking the event loop when called from outside the loop. - On Web: fix position of touch events to be relative to the canvas.
- On Windows, add
drag_resize_window
method support. - On Windows, add horizontal MouseWheel
DeviceEvent
. - On Windows, added
WindowBuilderExtWindows::with_class_name
to customize the internal class name. - On Windows, fix IME APIs not working when from non event loop thread.
- On Windows, fix
CursorEnter/Left
not being sent when grabbing the mouse. - On Windows, fix
RedrawRequested
not being delivered when callingWindow::request_redraw
fromRedrawRequested
. - On Windows, port to
windows-sys
version 0.48.0. - On X11, add a
with_embedded_parent_window
function to the window builder to allow embedding a window into another window. - On X11, fix event loop not waking up on
ControlFlow::Poll
andControlFlow::WaitUntil
. - On X11, fix false positive flagging of key repeats when pressing different keys with no release between presses.
- On X11, set
visual_id
in returnedraw-window-handle
. - On iOS, add ability to change the status bar style.
- On iOS, add force data to touch events when using the Apple Pencil.
- On iOS, always wake the event loop when transitioning from
ControlFlow::Poll
toControlFlow::Poll
. - On iOS, send events
WindowEvent::Occluded(false)
,WindowEvent::Occluded(true)
when application enters/leaves foreground. - On macOS, add tabbing APIs on
WindowExtMacOS
andEventLoopWindowTargetExtMacOS
. - On macOS, fix assertion when pressing
Globe
key. - On macOS, fix crash in
window.set_minimized(false)
. - On macOS, fix crash when dropping
Window
.