diff options
Diffstat (limited to 'src/frontends/osx/strongSwan/PasswordController.m')
-rw-r--r-- | src/frontends/osx/strongSwan/PasswordController.m | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/src/frontends/osx/strongSwan/PasswordController.m b/src/frontends/osx/strongSwan/PasswordController.m new file mode 100644 index 000000000..2e0ce556a --- /dev/null +++ b/src/frontends/osx/strongSwan/PasswordController.m @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2013 Martin Willi + * Copyright (C) 2013 revosec AG + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + */ + +#import "PasswordController.h" + +@interface PasswordController () + +@end + +@implementation PasswordController + +- (void)moveWindowToActiveSpace +{ + NSInteger behavior, old; + + /* seems that NSWindowCollectionBehaviorMoveToActiveSpace does not work + * when a window is opened a second time. Fix that by changing the + * behavior forth and back. */ + old = behavior = [[self window] collectionBehavior]; + behavior &= ~NSWindowCollectionBehaviorMoveToActiveSpace; + behavior |= NSWindowCollectionBehaviorCanJoinAllSpaces; + + [[self window] setCollectionBehavior: behavior]; + [[self window] setCollectionBehavior: old]; + + [NSApp activateIgnoringOtherApps:YES]; +} + +- (IBAction)confirm:(id)sender +{ + [NSApp stopModal]; +} + +- (NSString *)query +{ + [password setStringValue:@""]; + [self moveWindowToActiveSpace]; + [NSApp runModalForWindow: [self window]]; + [[self window] orderOut: self]; + + return [[password stringValue] retain]; +} + +@end |