Fix CI for Rust v1.80 (#3822)
`clippy::doc_lazy_continuation` was added, which needed some fixing from our side.
This commit is contained in:
parent
a0bc3e5dc8
commit
4e2e764e4a
6 changed files with 65 additions and 68 deletions
|
|
@ -137,7 +137,7 @@
|
||||||
|
|
||||||
- On X11, non-resizable windows now have maximize explicitly disabled.
|
- On X11, non-resizable windows now have maximize explicitly disabled.
|
||||||
- On Windows, support paths longer than MAX_PATH (260 characters) in `WindowEvent::DroppedFile`
|
- On Windows, support paths longer than MAX_PATH (260 characters) in `WindowEvent::DroppedFile`
|
||||||
and `WindowEvent::HoveredFile`.
|
and `WindowEvent::HoveredFile`.
|
||||||
- On Mac, implement `DeviceEvent::Button`.
|
- On Mac, implement `DeviceEvent::Button`.
|
||||||
- Change `Event::Suspended(true / false)` to `Event::Suspended` and `Event::Resumed`.
|
- Change `Event::Suspended(true / false)` to `Event::Suspended` and `Event::Resumed`.
|
||||||
- On X11, fix sanity check which checks that a monitor's reported width and height (in millimeters) are non-zero when calculating the DPI factor.
|
- On X11, fix sanity check which checks that a monitor's reported width and height (in millimeters) are non-zero when calculating the DPI factor.
|
||||||
|
|
|
||||||
|
|
@ -3,20 +3,20 @@
|
||||||
- Added event `WindowEvent::HiDPIFactorChanged`.
|
- Added event `WindowEvent::HiDPIFactorChanged`.
|
||||||
- Added method `MonitorId::get_hidpi_factor`.
|
- Added method `MonitorId::get_hidpi_factor`.
|
||||||
- Deprecated `get_inner_size_pixels` and `get_inner_size_points` methods of `Window` in favor of
|
- Deprecated `get_inner_size_pixels` and `get_inner_size_points` methods of `Window` in favor of
|
||||||
`get_inner_size`.
|
`get_inner_size`.
|
||||||
- **Breaking:** `EventsLoop` is `!Send` and `!Sync` because of platform-dependant constraints,
|
- **Breaking:** `EventsLoop` is `!Send` and `!Sync` because of platform-dependant constraints,
|
||||||
but `Window`, `WindowId`, `DeviceId` and `MonitorId` guaranteed to be `Send`.
|
but `Window`, `WindowId`, `DeviceId` and `MonitorId` guaranteed to be `Send`.
|
||||||
- `MonitorId::get_position` now returns `(i32, i32)` instead of `(u32, u32)`.
|
- `MonitorId::get_position` now returns `(i32, i32)` instead of `(u32, u32)`.
|
||||||
- Rewrite of the wayland backend to use wayland-client-0.11
|
- Rewrite of the wayland backend to use wayland-client-0.11
|
||||||
- Support for dead keys on wayland for keyboard utf8 input
|
- Support for dead keys on wayland for keyboard utf8 input
|
||||||
- Monitor enumeration on Windows is now implemented using `EnumDisplayMonitors` instead of
|
- Monitor enumeration on Windows is now implemented using `EnumDisplayMonitors` instead of
|
||||||
`EnumDisplayDevices`. This changes the value returned by `MonitorId::get_name()`.
|
`EnumDisplayDevices`. This changes the value returned by `MonitorId::get_name()`.
|
||||||
- On Windows added `MonitorIdExt::hmonitor` method
|
- On Windows added `MonitorIdExt::hmonitor` method
|
||||||
- Impl `Clone` for `EventsLoopProxy`
|
- Impl `Clone` for `EventsLoopProxy`
|
||||||
- `EventsLoop::get_primary_monitor()` on X11 will fallback to any available monitor if no primary is found
|
- `EventsLoop::get_primary_monitor()` on X11 will fallback to any available monitor if no primary is found
|
||||||
- Support for touch event on wayland
|
- Support for touch event on wayland
|
||||||
- `WindowEvent`s `MouseMoved`, `MouseEntered`, and `MouseLeft` have been renamed to
|
- `WindowEvent`s `MouseMoved`, `MouseEntered`, and `MouseLeft` have been renamed to
|
||||||
`CursorMoved`, `CursorEntered`, and `CursorLeft`.
|
`CursorMoved`, `CursorEntered`, and `CursorLeft`.
|
||||||
- New `DeviceEvent`s added, `MouseMotion` and `MouseWheel`.
|
- New `DeviceEvent`s added, `MouseMotion` and `MouseWheel`.
|
||||||
- Send `CursorMoved` event after `CursorEntered` and `Focused` events.
|
- Send `CursorMoved` event after `CursorEntered` and `Focused` events.
|
||||||
- Add support for `ModifiersState`, `MouseMove`, `MouseInput`, `MouseMotion` for emscripten backend.
|
- Add support for `ModifiersState`, `MouseMove`, `MouseInput`, `MouseMotion` for emscripten backend.
|
||||||
|
|
|
||||||
17
src/event.rs
17
src/event.rs
|
|
@ -539,11 +539,11 @@ pub struct KeyEvent {
|
||||||
/// ## Caveats
|
/// ## Caveats
|
||||||
///
|
///
|
||||||
/// - Certain niche hardware will shuffle around physical key positions, e.g. a keyboard that
|
/// - Certain niche hardware will shuffle around physical key positions, e.g. a keyboard that
|
||||||
/// implements DVORAK in hardware (or firmware)
|
/// implements DVORAK in hardware (or firmware)
|
||||||
/// - Your application will likely have to handle keyboards which are missing keys that your
|
/// - Your application will likely have to handle keyboards which are missing keys that your
|
||||||
/// own keyboard has.
|
/// own keyboard has.
|
||||||
/// - Certain `KeyCode`s will move between a couple of different positions depending on what
|
/// - Certain `KeyCode`s will move between a couple of different positions depending on what
|
||||||
/// layout the keyboard was manufactured to support.
|
/// layout the keyboard was manufactured to support.
|
||||||
///
|
///
|
||||||
/// **Because of these caveats, it is important that you provide users with a way to configure
|
/// **Because of these caveats, it is important that you provide users with a way to configure
|
||||||
/// most (if not all) keybinds in your application.**
|
/// most (if not all) keybinds in your application.**
|
||||||
|
|
@ -565,8 +565,7 @@ pub struct KeyEvent {
|
||||||
///
|
///
|
||||||
/// This has two use cases:
|
/// This has two use cases:
|
||||||
/// - Allows querying whether the current input is a Dead key.
|
/// - Allows querying whether the current input is a Dead key.
|
||||||
/// - Allows handling key-bindings on platforms which don't
|
/// - Allows handling key-bindings on platforms which don't support [`key_without_modifiers`].
|
||||||
/// support [`key_without_modifiers`].
|
|
||||||
///
|
///
|
||||||
/// If you use this field (or [`key_without_modifiers`] for that matter) for keyboard
|
/// If you use this field (or [`key_without_modifiers`] for that matter) for keyboard
|
||||||
/// shortcuts, **it is important that you provide users with a way to configure your
|
/// shortcuts, **it is important that you provide users with a way to configure your
|
||||||
|
|
@ -574,8 +573,8 @@ pub struct KeyEvent {
|
||||||
/// incompatible keyboard layout.**
|
/// incompatible keyboard layout.**
|
||||||
///
|
///
|
||||||
/// ## Platform-specific
|
/// ## Platform-specific
|
||||||
/// - **Web:** Dead keys might be reported as the real key instead
|
/// - **Web:** Dead keys might be reported as the real key instead of `Dead` depending on the
|
||||||
/// of `Dead` depending on the browser/OS.
|
/// browser/OS.
|
||||||
///
|
///
|
||||||
/// [`key_without_modifiers`]: crate::platform::modifier_supplement::KeyEventExtModifierSupplement::key_without_modifiers
|
/// [`key_without_modifiers`]: crate::platform::modifier_supplement::KeyEventExtModifierSupplement::key_without_modifiers
|
||||||
pub logical_key: keyboard::Key,
|
pub logical_key: keyboard::Key,
|
||||||
|
|
@ -857,8 +856,8 @@ pub struct Touch {
|
||||||
///
|
///
|
||||||
/// - Only available on **iOS** 9.0+, **Windows** 8+, **Web**, and **Android**.
|
/// - Only available on **iOS** 9.0+, **Windows** 8+, **Web**, and **Android**.
|
||||||
/// - **Android**: This will never be [None]. If the device doesn't support pressure
|
/// - **Android**: This will never be [None]. If the device doesn't support pressure
|
||||||
/// sensitivity, force will either be 0.0 or 1.0. Also see the
|
/// sensitivity, force will either be 0.0 or 1.0. Also see the
|
||||||
/// [android documentation](https://developer.android.com/reference/android/view/MotionEvent#AXIS_PRESSURE).
|
/// [android documentation](https://developer.android.com/reference/android/view/MotionEvent#AXIS_PRESSURE).
|
||||||
pub force: Option<Force>,
|
pub force: Option<Force>,
|
||||||
/// Unique identifier of a finger.
|
/// Unique identifier of a finger.
|
||||||
pub id: u64,
|
pub id: u64,
|
||||||
|
|
|
||||||
|
|
@ -48,18 +48,18 @@ pub trait EventLoopExtPumpEvents {
|
||||||
/// - `RedrawRequested` events, used to schedule rendering.
|
/// - `RedrawRequested` events, used to schedule rendering.
|
||||||
///
|
///
|
||||||
/// macOS for example uses a `drawRect` callback to drive rendering
|
/// macOS for example uses a `drawRect` callback to drive rendering
|
||||||
/// within applications and expects rendering to be finished before
|
/// within applications and expects rendering to be finished before
|
||||||
/// the `drawRect` callback returns.
|
/// the `drawRect` callback returns.
|
||||||
///
|
///
|
||||||
/// For portability it's strongly recommended that applications should
|
/// For portability it's strongly recommended that applications should
|
||||||
/// keep their rendering inside the closure provided to Winit.
|
/// keep their rendering inside the closure provided to Winit.
|
||||||
/// - Any lifecycle events, such as `Suspended` / `Resumed`.
|
/// - Any lifecycle events, such as `Suspended` / `Resumed`.
|
||||||
///
|
///
|
||||||
/// The handling of these events needs to be synchronized with the
|
/// The handling of these events needs to be synchronized with the
|
||||||
/// operating system and it would never be appropriate to buffer a
|
/// operating system and it would never be appropriate to buffer a
|
||||||
/// notification that your application has been suspended or resumed and
|
/// notification that your application has been suspended or resumed and
|
||||||
/// then handled that later since there would always be a chance that
|
/// then handled that later since there would always be a chance that
|
||||||
/// other lifecycle events occur while the event is buffered.
|
/// other lifecycle events occur while the event is buffered.
|
||||||
///
|
///
|
||||||
/// ## Supported Platforms
|
/// ## Supported Platforms
|
||||||
///
|
///
|
||||||
|
|
@ -70,13 +70,13 @@ pub trait EventLoopExtPumpEvents {
|
||||||
///
|
///
|
||||||
/// ## Unsupported Platforms
|
/// ## Unsupported Platforms
|
||||||
///
|
///
|
||||||
/// - **Web:** This API is fundamentally incompatible with the event-based way in which
|
/// - **Web:** This API is fundamentally incompatible with the event-based way in which Web
|
||||||
/// Web browsers work because it's not possible to have a long-running external
|
/// browsers work because it's not possible to have a long-running external loop that would
|
||||||
/// loop that would block the browser and there is nothing that can be
|
/// block the browser and there is nothing that can be polled to ask for new new events.
|
||||||
/// polled to ask for new new events. Events are delivered via callbacks based
|
/// Events are delivered via callbacks based on an event loop that is internal to the browser
|
||||||
/// on an event loop that is internal to the browser itself.
|
/// itself.
|
||||||
/// - **iOS:** It's not possible to stop and start an `NSApplication` repeatedly on iOS so
|
/// - **iOS:** It's not possible to stop and start an `NSApplication` repeatedly on iOS so
|
||||||
/// there's no way to support the same approach to polling as on MacOS.
|
/// there's no way to support the same approach to polling as on MacOS.
|
||||||
///
|
///
|
||||||
/// ## Platform-specific
|
/// ## Platform-specific
|
||||||
///
|
///
|
||||||
|
|
|
||||||
|
|
@ -263,39 +263,37 @@ pub fn get_keyboard_physical_key(keyboard: RAWKEYBOARD) -> Option<PhysicalKey> {
|
||||||
scancode_to_physicalkey(scancode as u32)
|
scancode_to_physicalkey(scancode as u32)
|
||||||
};
|
};
|
||||||
if keyboard.VKey == VK_SHIFT {
|
if keyboard.VKey == VK_SHIFT {
|
||||||
if let PhysicalKey::Code(code) = physical_key {
|
if let PhysicalKey::Code(
|
||||||
match code {
|
KeyCode::NumpadDecimal
|
||||||
KeyCode::NumpadDecimal
|
| KeyCode::Numpad0
|
||||||
| KeyCode::Numpad0
|
| KeyCode::Numpad1
|
||||||
| KeyCode::Numpad1
|
| KeyCode::Numpad2
|
||||||
| KeyCode::Numpad2
|
| KeyCode::Numpad3
|
||||||
| KeyCode::Numpad3
|
| KeyCode::Numpad4
|
||||||
| KeyCode::Numpad4
|
| KeyCode::Numpad5
|
||||||
| KeyCode::Numpad5
|
| KeyCode::Numpad6
|
||||||
| KeyCode::Numpad6
|
| KeyCode::Numpad7
|
||||||
| KeyCode::Numpad7
|
| KeyCode::Numpad8
|
||||||
| KeyCode::Numpad8
|
| KeyCode::Numpad9,
|
||||||
| KeyCode::Numpad9 => {
|
) = physical_key
|
||||||
// On Windows, holding the Shift key makes numpad keys behave as if NumLock
|
{
|
||||||
// wasn't active. The way this is exposed to applications by the system is that
|
// On Windows, holding the Shift key makes numpad keys behave as if NumLock
|
||||||
// the application receives a fake key release event for the shift key at the
|
// wasn't active. The way this is exposed to applications by the system is that
|
||||||
// moment when the numpad key is pressed, just before receiving the numpad key
|
// the application receives a fake key release event for the shift key at the
|
||||||
// as well.
|
// moment when the numpad key is pressed, just before receiving the numpad key
|
||||||
//
|
// as well.
|
||||||
// The issue is that in the raw device event (here), the fake shift release
|
//
|
||||||
// event reports the numpad key as the scancode. Unfortunately, the event
|
// The issue is that in the raw device event (here), the fake shift release
|
||||||
// doesn't have any information to tell whether it's the
|
// event reports the numpad key as the scancode. Unfortunately, the event
|
||||||
// left shift or the right shift that needs to get the fake
|
// doesn't have any information to tell whether it's the
|
||||||
// release (or press) event so we don't forward this
|
// left shift or the right shift that needs to get the fake
|
||||||
// event to the application at all.
|
// release (or press) event so we don't forward this
|
||||||
//
|
// event to the application at all.
|
||||||
// For more on this, read the article by Raymond Chen, titled:
|
//
|
||||||
// "The shift key overrides NumLock"
|
// For more on this, read the article by Raymond Chen, titled:
|
||||||
// https://devblogs.microsoft.com/oldnewthing/20040906-00/?p=37953
|
// "The shift key overrides NumLock"
|
||||||
return None;
|
// https://devblogs.microsoft.com/oldnewthing/20040906-00/?p=37953
|
||||||
},
|
return None;
|
||||||
_ => (),
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -416,8 +416,8 @@ impl WindowAttributes {
|
||||||
///
|
///
|
||||||
/// ## Platform-specific
|
/// ## Platform-specific
|
||||||
///
|
///
|
||||||
/// - **macOS**: if `false`, [`NSWindowSharingNone`] is used but doesn't completely
|
/// - **macOS**: if `false`, [`NSWindowSharingNone`] is used but doesn't completely prevent all
|
||||||
/// prevent all apps from reading the window content, for instance, QuickTime.
|
/// apps from reading the window content, for instance, QuickTime.
|
||||||
/// - **iOS / Android / Web / x11 / Orbital:** Ignored.
|
/// - **iOS / Android / Web / x11 / Orbital:** Ignored.
|
||||||
///
|
///
|
||||||
/// [`NSWindowSharingNone`]: https://developer.apple.com/documentation/appkit/nswindowsharingtype/nswindowsharingnone
|
/// [`NSWindowSharingNone`]: https://developer.apple.com/documentation/appkit/nswindowsharingtype/nswindowsharingnone
|
||||||
|
|
@ -465,8 +465,8 @@ impl WindowAttributes {
|
||||||
/// ## Platform-specific
|
/// ## Platform-specific
|
||||||
///
|
///
|
||||||
/// - **Windows** : A child window has the WS_CHILD style and is confined
|
/// - **Windows** : A child window has the WS_CHILD style and is confined
|
||||||
/// to the client area of its parent window. For more information, see
|
/// to the client area of its parent window. For more information, see
|
||||||
/// <https://docs.microsoft.com/en-us/windows/win32/winmsg/window-features#child-windows>
|
/// <https://docs.microsoft.com/en-us/windows/win32/winmsg/window-features#child-windows>
|
||||||
/// - **X11**: A child window is confined to the client area of its parent window.
|
/// - **X11**: A child window is confined to the client area of its parent window.
|
||||||
/// - **Android / iOS / Wayland / Web:** Unsupported.
|
/// - **Android / iOS / Wayland / Web:** Unsupported.
|
||||||
#[cfg(feature = "rwh_06")]
|
#[cfg(feature = "rwh_06")]
|
||||||
|
|
@ -529,9 +529,9 @@ impl Window {
|
||||||
/// provided by XRandR.
|
/// provided by XRandR.
|
||||||
///
|
///
|
||||||
/// If `WINIT_X11_SCALE_FACTOR` is set to `randr`, it'll ignore the `Xft.dpi` field and use
|
/// If `WINIT_X11_SCALE_FACTOR` is set to `randr`, it'll ignore the `Xft.dpi` field and use
|
||||||
/// the XRandR scaling method. Generally speaking, you should try to configure the
|
/// the XRandR scaling method. Generally speaking, you should try to configure the
|
||||||
/// standard system variables to do what you want before resorting to
|
/// standard system variables to do what you want before resorting to
|
||||||
/// `WINIT_X11_SCALE_FACTOR`.
|
/// `WINIT_X11_SCALE_FACTOR`.
|
||||||
/// - **Wayland:** The scale factor is suggested by the compositor for each window individually
|
/// - **Wayland:** The scale factor is suggested by the compositor for each window individually
|
||||||
/// by using the wp-fractional-scale protocol if available. Falls back to integer-scale
|
/// by using the wp-fractional-scale protocol if available. Falls back to integer-scale
|
||||||
/// factors otherwise.
|
/// factors otherwise.
|
||||||
|
|
@ -1394,8 +1394,8 @@ impl Window {
|
||||||
///
|
///
|
||||||
/// ## Platform-specific
|
/// ## Platform-specific
|
||||||
///
|
///
|
||||||
/// - **macOS**: if `false`, [`NSWindowSharingNone`] is used but doesn't completely
|
/// - **macOS**: if `false`, [`NSWindowSharingNone`] is used but doesn't completely prevent all
|
||||||
/// prevent all apps from reading the window content, for instance, QuickTime.
|
/// apps from reading the window content, for instance, QuickTime.
|
||||||
/// - **iOS / Android / x11 / Wayland / Web / Orbital:** Unsupported.
|
/// - **iOS / Android / x11 / Wayland / Web / Orbital:** Unsupported.
|
||||||
///
|
///
|
||||||
/// [`NSWindowSharingNone`]: https://developer.apple.com/documentation/appkit/nswindowsharingtype/nswindowsharingnone
|
/// [`NSWindowSharingNone`]: https://developer.apple.com/documentation/appkit/nswindowsharingtype/nswindowsharingnone
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue