diff --git a/src/changelog/unreleased.md b/src/changelog/unreleased.md index 31b64d1a..8a22aed4 100644 --- a/src/changelog/unreleased.md +++ b/src/changelog/unreleased.md @@ -186,6 +186,7 @@ changelog entry. - On Orbital, `MonitorHandle::name()` now returns `None` instead of a dummy name. - On macOS, fix `WindowEvent::Moved` sometimes being triggered unnecessarily on resize. -- On MacOS, package manifest definitions of `LSUIElement` will no longer be overridden with the +- On macOS, package manifest definitions of `LSUIElement` will no longer be overridden with the default activation policy, unless explicitly provided during initialization. +- On macOS, fix crash when calling `drag_window()` without a left click present. - On X11, key events forward to IME anyway, even when it's disabled. diff --git a/src/platform_impl/apple/appkit/window.rs b/src/platform_impl/apple/appkit/window.rs index 9373042a..be59dbed 100644 --- a/src/platform_impl/apple/appkit/window.rs +++ b/src/platform_impl/apple/appkit/window.rs @@ -284,8 +284,7 @@ impl CoreWindow for Window { } fn drag_window(&self) -> Result<(), RequestError> { - self.maybe_wait_on_main(|delegate| delegate.drag_window()); - Ok(()) + self.maybe_wait_on_main(|delegate| delegate.drag_window()) } fn drag_resize_window( diff --git a/src/platform_impl/apple/appkit/window_delegate.rs b/src/platform_impl/apple/appkit/window_delegate.rs index 10aac698..e5652ba2 100644 --- a/src/platform_impl/apple/appkit/window_delegate.rs +++ b/src/platform_impl/apple/appkit/window_delegate.rs @@ -1171,10 +1171,12 @@ impl WindowDelegate { } #[inline] - pub fn drag_window(&self) { + pub fn drag_window(&self) -> Result<(), RequestError> { let mtm = MainThreadMarker::from(self); - let event = NSApplication::sharedApplication(mtm).currentEvent().unwrap(); + let event = + NSApplication::sharedApplication(mtm).currentEvent().ok_or(RequestError::Ignored)?; self.window().performWindowDragWithEvent(&event); + Ok(()) } #[inline]