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:
daxpedda 2024-07-25 15:15:21 +02:00 committed by GitHub
parent a0bc3e5dc8
commit 4e2e764e4a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 65 additions and 68 deletions

View file

@ -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.

View file

@ -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.

View file

@ -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,

View file

@ -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
/// ///

View file

@ -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;
_ => (),
}
} }
} }

View file

@ -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