feat: add panel support for BrowserWindow (#34388)
* feat: add NSPanel support for BrowserWindow * change header guard to satisfy linter * change panel wording in browser-window * Revert "change panel wording in browser-window" This reverts commit 6f3f80f94a7040e1d612a2a65952753bbafd437d. * change wording in browser-window * Update shell/browser/ui/cocoa/electron_native_widget_mac.mm Co-authored-by: Cheng Zhao <github@zcbenz.com> * Update shell/browser/ui/cocoa/electron_native_widget_mac.h Co-authored-by: Cheng Zhao <github@zcbenz.com> * Changed ScopedDisableResize class to allow for nesting Co-authored-by: andreiisaila <andreiisaila@microsoft.com> Co-authored-by: Cheng Zhao <github@zcbenz.com>
This commit is contained in:
parent
bed38e0985
commit
21ef8501e7
9 changed files with 92 additions and 9 deletions
39
shell/browser/ui/cocoa/electron_ns_panel.mm
Normal file
39
shell/browser/ui/cocoa/electron_ns_panel.mm
Normal file
|
@ -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
|
Loading…
Add table
Add a link
Reference in a new issue