Show [Secure input] indicator in macOS global menubar title area when secure keyboard entry is enabled
This commit is contained in:
parent
ce4defcff4
commit
f388fdabdc
1 changed files with 29 additions and 0 deletions
|
|
@ -51,6 +51,7 @@
|
|||
CFArrayRef CGSCopySpacesForWindows(CGSConnectionID Connection, CGSSpaceSelector Type, CFArrayRef Windows);
|
||||
|
||||
static NSMenuItem* title_menu = NULL;
|
||||
static NSMenuItem* secure_input_title_menu = NULL;
|
||||
static bool application_has_finished_launching = false;
|
||||
|
||||
|
||||
|
|
@ -217,6 +218,25 @@ - (void)update {
|
|||
@end
|
||||
// }}}
|
||||
|
||||
static void
|
||||
update_secure_input_menu_bar_indicator(BOOL enabled) {
|
||||
if (enabled) {
|
||||
if (secure_input_title_menu == NULL) {
|
||||
NSMenu *bar = [NSApp mainMenu];
|
||||
secure_input_title_menu = [bar addItemWithTitle:@"" action:NULL keyEquivalent:@""];
|
||||
NSMenu *m = [[NSMenu alloc] initWithTitle:@"[Secure input]"];
|
||||
[secure_input_title_menu setSubmenu:m];
|
||||
[m release];
|
||||
}
|
||||
} else {
|
||||
if (secure_input_title_menu != NULL) {
|
||||
NSMenu *bar = [NSApp mainMenu];
|
||||
[bar removeItem:secure_input_title_menu];
|
||||
secure_input_title_menu = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@interface UserMenuItem : NSMenuItem
|
||||
@property (nonatomic) size_t action_index;
|
||||
@end
|
||||
|
|
@ -323,6 +343,7 @@ + (GlobalMenuTarget *) shared_instance
|
|||
sharedGlobalMenuTarget = [[GlobalMenuTarget alloc] init];
|
||||
SecureKeyboardEntryController *k = [SecureKeyboardEntryController sharedInstance];
|
||||
if (!k.isDesired && [[NSUserDefaults standardUserDefaults] boolForKey:@"SecureKeyboardEntry"]) [k toggle];
|
||||
update_secure_input_menu_bar_indicator(k.isDesired);
|
||||
}
|
||||
return sharedGlobalMenuTarget;
|
||||
}
|
||||
|
|
@ -932,7 +953,14 @@ - (void)quickAccessTerminal:(NSPasteboard *)pboard userData:(NSString *)userData
|
|||
[bar removeItem:title_menu];
|
||||
}
|
||||
title_menu = NULL;
|
||||
if (secure_input_title_menu != NULL) {
|
||||
NSMenu *bar = [NSApp mainMenu];
|
||||
[bar removeItem:secure_input_title_menu];
|
||||
}
|
||||
secure_input_title_menu = NULL;
|
||||
cocoa_create_global_menu();
|
||||
SecureKeyboardEntryController *k = [SecureKeyboardEntryController sharedInstance];
|
||||
update_secure_input_menu_bar_indicator(k.isDesired);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -952,6 +980,7 @@ - (void)quickAccessTerminal:(NSPasteboard *)pboard userData:(NSString *)userData
|
|||
SecureKeyboardEntryController *k = [SecureKeyboardEntryController sharedInstance];
|
||||
[k toggle];
|
||||
[[NSUserDefaults standardUserDefaults] setBool:k.isDesired forKey:@"SecureKeyboardEntry"];
|
||||
update_secure_input_menu_bar_indicator(k.isDesired);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
Loading…
Reference in a new issue