in native/desktop-macos/src/macos/application_api.rs [513:537]
fn observe_value(
&self,
key_path: Option<&NSString>,
object: Option<&AnyObject>,
change: Option<&NSDictionary<NSKeyValueChangeKey, AnyObject>>,
context: *mut c_void,
) {
catch_panic(|| {
match (object, key_path) {
(Some(object), Some(key_path))
if object.class().superclass() == Some(MyNSApplication::class())
&& key_path == ns_string!("effectiveAppearance") =>
{
handle_application_appearance_change();
}
_ => unsafe {
let _: () = msg_send![super(self), observeValueForKeyPath: key_path,
ofObject: object,
change: change,
context: context];
},
}
Ok(())
});
}