Skip to content

Commit 6fda498

Browse files
authoredJan 21, 2025··
fix(macos): Remove internal From implementation (#1048)
Removes `impl From<ActivationPolicy> for NSApplicationActivationPolicy`. This is needed to avoid publicly exposing a dependency on cocoa, which will allow using `objc2` in the future.
1 parent 543e117 commit 6fda498

File tree

2 files changed

+14
-16
lines changed

2 files changed

+14
-16
lines changed
 
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
tao: minor
3+
---
4+
5+
macOS: Remove `From<ActivationPolicy>` implementation for `cocoa::appkit::NSApplicationActivationPolicy`.

‎src/platform/macos.rs

+9-16
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,6 @@ use crate::{
1414
window::{Window, WindowBuilder},
1515
};
1616

17-
use cocoa::appkit::{
18-
NSApplicationActivationPolicy, NSApplicationActivationPolicyAccessory,
19-
NSApplicationActivationPolicyProhibited, NSApplicationActivationPolicyRegular,
20-
};
21-
2217
/// Additional methods on `Window` that are specific to MacOS.
2318
pub trait WindowExtMacOS {
2419
/// Returns a pointer to the cocoa `NSWindow` that is used by this window.
@@ -189,16 +184,6 @@ impl Default for ActivationPolicy {
189184
}
190185
}
191186

192-
impl From<ActivationPolicy> for NSApplicationActivationPolicy {
193-
fn from(act_pol: ActivationPolicy) -> Self {
194-
match act_pol {
195-
ActivationPolicy::Regular => NSApplicationActivationPolicyRegular,
196-
ActivationPolicy::Accessory => NSApplicationActivationPolicyAccessory,
197-
ActivationPolicy::Prohibited => NSApplicationActivationPolicyProhibited,
198-
}
199-
}
200-
}
201-
202187
/// Additional methods on `WindowBuilder` that are specific to MacOS.
203188
///
204189
/// **Note:** Properties dealing with the titlebar will be overwritten by the `with_decorations` method
@@ -421,9 +406,17 @@ impl<T> EventLoopWindowTargetExtMacOS for EventLoopWindowTarget<T> {
421406
}
422407

423408
fn set_activation_policy_at_runtime(&self, activation_policy: ActivationPolicy) {
409+
use cocoa::appkit;
410+
424411
let cls = objc::runtime::Class::get("NSApplication").unwrap();
425412
let app: cocoa::base::id = unsafe { msg_send![cls, sharedApplication] };
426-
let ns_activation_policy: NSApplicationActivationPolicy = activation_policy.into();
413+
414+
let ns_activation_policy = match activation_policy {
415+
ActivationPolicy::Regular => appkit::NSApplicationActivationPolicyRegular,
416+
ActivationPolicy::Accessory => appkit::NSApplicationActivationPolicyAccessory,
417+
ActivationPolicy::Prohibited => appkit::NSApplicationActivationPolicyProhibited,
418+
};
419+
427420
unsafe { msg_send![app, setActivationPolicy: ns_activation_policy] }
428421
}
429422

0 commit comments

Comments
 (0)
Please sign in to comment.