Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: add NSPanel support for BrowserWindow
- Loading branch information
1 parent
38dd2a7
commit 6ef9d10
Showing
7 changed files
with
83 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
// Copyright (c) 2022 Microsoft, Inc. | ||
// Use of this source code is governed by the MIT license that can be | ||
// found in the LICENSE file. | ||
|
||
#ifndef SHELL_BROWSER_UI_COCOA_ELECTRON_NS_PANEL_H_ | ||
#define SHELL_BROWSER_UI_COCOA_ELECTRON_NS_PANEL_H_ | ||
|
||
#include "shell/browser/ui/cocoa/electron_ns_window.h" | ||
|
||
@interface ElectronNSPanel : ElectronNSWindow | ||
@property NSWindowStyleMask styleMask; | ||
@property NSWindowStyleMask originalStyleMask; | ||
- (id)initWithShell:(electron::NativeWindowMac*)shell | ||
styleMask:(NSUInteger)styleMask; | ||
@end | ||
|
||
#endif // SHELL_BROWSER_UI_COCOA_ELECTRON_NS_PANEL_H_ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
// Copyright (c) 2022 Microsoft, Inc. | ||
// Use of this source code is governed by the MIT license that can be | ||
// found in the LICENSE file. | ||
|
||
#include "shell/browser/ui/cocoa/electron_ns_panel.h" | ||
|
||
@implementation ElectronNSPanel | ||
|
||
@synthesize originalStyleMask; | ||
|
||
- (id)initWithShell:(electron::NativeWindowMac*)shell | ||
styleMask:(NSUInteger)styleMask { | ||
if (self = [super initWithShell:shell styleMask:styleMask]) { | ||
originalStyleMask = styleMask; | ||
} | ||
return self; | ||
} | ||
|
||
@dynamic styleMask; | ||
// The Nonactivating mask is reserverd for NSPanel, | ||
// but we can use this workaround to add it at runtime | ||
- (NSWindowStyleMask)styleMask { | ||
return originalStyleMask | NSWindowStyleMaskNonactivatingPanel; | ||
} | ||
|
||
- (void)setStyleMask:(NSWindowStyleMask)styleMask { | ||
originalStyleMask = styleMask; | ||
// Notify change of style mask. | ||
[super setStyleMask:styleMask]; | ||
} | ||
|
||
- (void)setCollectionBehavior:(NSWindowCollectionBehavior)collectionBehavior { | ||
NSWindowCollectionBehavior panelBehavior = | ||
(NSWindowCollectionBehaviorCanJoinAllSpaces | | ||
NSWindowCollectionBehaviorFullScreenAuxiliary); | ||
[super setCollectionBehavior:collectionBehavior | panelBehavior]; | ||
} | ||
|
||
@end |