mirror of
https://github.com/wailsapp/wails.git
synced 2026-03-14 14:45:49 +01:00
Support activation policy
This commit is contained in:
parent
3f82ceabba
commit
ee50170374
8 changed files with 25 additions and 19 deletions
|
|
@ -17,6 +17,7 @@
|
|||
@property bool startHidden;
|
||||
@property bool startFullscreen;
|
||||
@property (retain) WailsWindow* mainWindow;
|
||||
@property int activationPolicy;
|
||||
|
||||
@end
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,8 @@
|
|||
}
|
||||
|
||||
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
|
||||
processNotification(0); // Notify Go
|
||||
processNotification(0); // Notify Go
|
||||
[NSApp setActivationPolicy:self.activationPolicy];
|
||||
[NSApp activateIgnoringOtherApps:YES];
|
||||
if ( self.startFullscreen ) {
|
||||
NSWindowCollectionBehavior behaviour = [self.mainWindow collectionBehavior];
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
#define WindowStartsFullscreen 3
|
||||
|
||||
WailsContext* Create(const char* title, int width, int height, int frameless, int resizable, int fullscreen, int fullSizeContent, int hideTitleBar, int titlebarAppearsTransparent, int hideTitle, int useToolbar, int hideToolbarSeparator, int webviewIsTransparent, int alwaysOnTop, int hideWindowOnClose, const char *appearance, int windowIsTranslucent, int debug, int windowStartState, int startsHidden, int minWidth, int minHeight, int maxWidth, int maxHeight);
|
||||
void Run(void*, const char* url);
|
||||
void Run(void *inctx, const char* url, int activationPolicy);
|
||||
|
||||
void SetTitle(void* ctx, const char *title);
|
||||
void Center(void* ctx);
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ WailsContext* Create(const char* title, int width, int height, int frameless, in
|
|||
WailsContext *result = [WailsContext new];
|
||||
|
||||
result.debug = debug;
|
||||
|
||||
|
||||
if ( windowStartState == WindowStartsFullscreen ) {
|
||||
fullscreen = 1;
|
||||
}
|
||||
|
|
@ -27,7 +27,7 @@ WailsContext* Create(const char* title, int width, int height, int frameless, in
|
|||
[result CreateWindow:width :height :frameless :resizable :fullscreen :fullSizeContent :hideTitleBar :titlebarAppearsTransparent :hideTitle :useToolbar :hideToolbarSeparator :webviewIsTransparent :hideWindowOnClose :safeInit(appearance) :windowIsTranslucent :minWidth :minHeight :maxWidth :maxHeight];
|
||||
[result SetTitle:safeInit(title)];
|
||||
[result Center];
|
||||
|
||||
|
||||
switch( windowStartState ) {
|
||||
case WindowStartsMaximised:
|
||||
[result.mainWindow zoom:nil];
|
||||
|
|
@ -344,12 +344,11 @@ void AppendSeparator(void* inMenu) {
|
|||
[menu AppendSeparator];
|
||||
}
|
||||
|
||||
|
||||
|
||||
void Run(void *inctx, const char* url) {
|
||||
void Run(void *inctx, const char* url, int activationPolicy) {
|
||||
WailsContext *ctx = (__bridge WailsContext*) inctx;
|
||||
NSApplication *app = [NSApplication sharedApplication];
|
||||
AppDelegate* delegate = [AppDelegate new];
|
||||
delegate.activationPolicy = activationPolicy;
|
||||
[app setDelegate:(id)delegate];
|
||||
ctx.appdelegate = delegate;
|
||||
delegate.mainWindow = ctx.mainWindow;
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
@property NSSize userMinSize;
|
||||
@property NSSize userMaxSize;
|
||||
@property int activationPolicy;
|
||||
|
||||
- (BOOL) canBecomeKeyWindow;
|
||||
- (void) applyWindowConstraints;
|
||||
|
|
|
|||
|
|
@ -178,7 +178,11 @@ func (f *Frontend) Run(ctx context.Context) error {
|
|||
f.frontendOptions.OnStartup(f.ctx)
|
||||
}
|
||||
}()
|
||||
mainWindow.Run(f.startURL.String())
|
||||
var activationPolicy C.int
|
||||
if f.frontendOptions != nil && f.frontendOptions.Mac != nil {
|
||||
activationPolicy = C.int(f.frontendOptions.Mac.ActivationPolicy)
|
||||
}
|
||||
mainWindow.Run(f.startURL.String(), activationPolicy)
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -123,9 +123,9 @@ func (w *Window) Center() {
|
|||
C.Center(w.context)
|
||||
}
|
||||
|
||||
func (w *Window) Run(url string) {
|
||||
func (w *Window) Run(url string, activationPolicy C.int) {
|
||||
_url := C.CString(url)
|
||||
C.Run(w.context, _url)
|
||||
C.Run(w.context, _url, activationPolicy)
|
||||
C.free(unsafe.Pointer(_url))
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
package mac
|
||||
|
||||
//type ActivationPolicy int
|
||||
//
|
||||
//const (
|
||||
// NSApplicationActivationPolicyRegular ActivationPolicy = 0
|
||||
// NSApplicationActivationPolicyAccessory ActivationPolicy = 1
|
||||
// NSApplicationActivationPolicyProhibited ActivationPolicy = 2
|
||||
//)
|
||||
type ActivationPolicy int
|
||||
|
||||
const (
|
||||
NSApplicationActivationPolicyRegular ActivationPolicy = 0
|
||||
NSApplicationActivationPolicyAccessory ActivationPolicy = 1
|
||||
NSApplicationActivationPolicyProhibited ActivationPolicy = 2
|
||||
)
|
||||
|
||||
type AboutInfo struct {
|
||||
Title string
|
||||
|
|
@ -20,7 +20,7 @@ type Options struct {
|
|||
Appearance AppearanceType
|
||||
WebviewIsTransparent bool
|
||||
WindowIsTranslucent bool
|
||||
//ActivationPolicy ActivationPolicy
|
||||
About *AboutInfo
|
||||
About *AboutInfo
|
||||
ActivationPolicy ActivationPolicy
|
||||
//URLHandlers map[string]func(string)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue