Allow the user to register the application delegate on macOS and iOS (#3758)
This allows the user to override the application delegate themselves, which opens several doors for customization that were previously closed. To do this, we use notifications instead of top-level application delegate methods. One effect of not providing an application delegate on iOS is that we no longer act as-if the application successfully open all URLs there. This is a breaking change, although unlikely to matter in practice, since the return value of `application:didFinishLaunchingWithOptions:` is seldom used by the system (and is likely the preferred behaviour anyhow).
This commit is contained in:
parent
3392e9c1de
commit
92e9bfe0fc
17 changed files with 445 additions and 269 deletions
|
|
@ -28,9 +28,8 @@ impl Window {
|
|||
attributes: WindowAttributes,
|
||||
) -> Result<Self, RootOsError> {
|
||||
let mtm = window_target.mtm;
|
||||
let delegate = autoreleasepool(|_| {
|
||||
WindowDelegate::new(window_target.app_delegate(), attributes, mtm)
|
||||
})?;
|
||||
let delegate =
|
||||
autoreleasepool(|_| WindowDelegate::new(&window_target.app_state, attributes, mtm))?;
|
||||
Ok(Window {
|
||||
window: MainThreadBound::new(delegate.window().retain(), mtm),
|
||||
delegate: MainThreadBound::new(delegate, mtm),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue