diff options
| author | Justin Anderson <jander@mit.edu> | 2008-10-17 22:08:12 +0000 |
|---|---|---|
| committer | Justin Anderson <jander@mit.edu> | 2008-10-17 22:08:12 +0000 |
| commit | 451a8448222f86f3a320548b80074b8bcc082e52 (patch) | |
| tree | 5e135b859a45b2418807127eb426be3b97615d4e /src/kim/agent/mac/IPCClient.m | |
| parent | c5db8d59dd2ea0612a148b2b514347fd32ee1dbc (diff) | |
| download | krb5-451a8448222f86f3a320548b80074b8bcc082e52.tar.gz krb5-451a8448222f86f3a320548b80074b8bcc082e52.tar.xz krb5-451a8448222f86f3a320548b80074b8bcc082e52.zip | |
Make all dialogs beyond the change password sheet also appear as sheets
ticket:6145
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@20894 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/kim/agent/mac/IPCClient.m')
| -rw-r--r-- | src/kim/agent/mac/IPCClient.m | 65 |
1 files changed, 52 insertions, 13 deletions
diff --git a/src/kim/agent/mac/IPCClient.m b/src/kim/agent/mac/IPCClient.m index 51bbf02dd..8b9eb2194 100644 --- a/src/kim/agent/mac/IPCClient.m +++ b/src/kim/agent/mac/IPCClient.m @@ -33,7 +33,6 @@ enum krb_agent_client_state { ipc_client_state_init, ipc_client_state_enter, ipc_client_state_select, - ipc_client_state_select_change_password, ipc_client_state_auth_prompt, ipc_client_state_change_password, ipc_client_state_handle_error, @@ -128,12 +127,11 @@ enum krb_agent_client_state { else if (self.state == ipc_client_state_auth_prompt) { [KerberosAgentListener didPromptForAuth:self.currentInfo error:err]; } - else if (self.state == ipc_client_state_change_password || - self.state == ipc_client_state_select_change_password) { + else if (self.state == ipc_client_state_change_password) { [KerberosAgentListener didChangePassword:self.currentInfo error:err]; } - if (self.state == ipc_client_state_select_change_password) { + if ([[self.selectController window] isVisible]) { self.state = ipc_client_state_select; } else { @@ -178,11 +176,18 @@ enum krb_agent_client_state { - (kim_error) enterIdentity: (NSDictionary *) info { + NSWindow *parentWindow = nil; + [self.currentInfo addEntriesFromDictionary:info]; + + if ([[self.selectController window] isVisible]) { + parentWindow = [selectController window]; + } + self.state = ipc_client_state_enter; [self.authController setContent:self.currentInfo]; - [self.authController showEnterIdentity]; + [self.authController showEnterIdentity:parentWindow]; return 0; } @@ -196,7 +201,7 @@ enum krb_agent_client_state { [self.currentInfo setObject:[NSNumber numberWithBool:wantsChangePassword] forKey:@"wants_change_password"]; [KerberosAgentListener didEnterIdentity:self.currentInfo error:0]; - if (self.state == ipc_client_state_select_change_password) { + if ([[self.selectController window] isVisible]) { self.state = ipc_client_state_select; } else { @@ -206,11 +211,18 @@ enum krb_agent_client_state { - (kim_error) promptForAuth: (NSDictionary *) info { + NSWindow *parentWindow = nil; + [self.currentInfo addEntriesFromDictionary:info]; + + if ([[self.selectController window] isVisible]) { + parentWindow = [selectController window]; + } + self.state = ipc_client_state_auth_prompt; [self.authController setContent:self.currentInfo]; - [self.authController showAuthPrompt]; + [self.authController showAuthPrompt:parentWindow]; return 0; } @@ -220,6 +232,13 @@ enum krb_agent_client_state { [self.currentInfo setObject:responseString forKey:@"prompt_response"]; [self.currentInfo setObject:saveResponse forKey:@"save_response"]; [KerberosAgentListener didPromptForAuth:self.currentInfo error:0]; + + if ([[self.selectController window] isVisible]) { + self.state = ipc_client_state_select; + } + else { + self.state = ipc_client_state_idle; + } } - (kim_error) changePassword: (NSDictionary *) info @@ -228,13 +247,11 @@ enum krb_agent_client_state { [self.currentInfo addEntriesFromDictionary:info]; - if (self.state == ipc_client_state_select) { - self.state = ipc_client_state_select_change_password; + if ([[self.selectController window] isVisible]) { parentWindow = [selectController window]; } - else { - self.state = ipc_client_state_change_password; - } + + self.state = ipc_client_state_change_password; [self.authController setContent:self.currentInfo]; [self.authController showChangePassword:parentWindow]; @@ -249,23 +266,45 @@ enum krb_agent_client_state { [self.currentInfo setObject:oldPassword forKey:@"old_password"]; [self.currentInfo setObject:newPassword forKey:@"new_password"]; [self.currentInfo setObject:verifyPassword forKey:@"verify_password"]; + + if ([[self.selectController window] isVisible]) { + self.state = ipc_client_state_select; + } + else { + self.state = ipc_client_state_idle; + } + [KerberosAgentListener didChangePassword:self.currentInfo error:0]; } - (kim_error) handleError: (NSDictionary *) info { + NSWindow *parentWindow = nil; + [self.currentInfo addEntriesFromDictionary:info]; + + if ([[self.selectController window] isVisible]) { + parentWindow = [selectController window]; + } + self.state = ipc_client_state_handle_error; [self.authController setContent:self.currentInfo]; - [self.authController showError]; + [self.authController showError:parentWindow]; return 0; } - (void) didHandleError { + if ([[self.selectController window] isVisible]) { + self.state = ipc_client_state_select; + } + else { + self.state = ipc_client_state_idle; + } + [KerberosAgentListener didHandleError:self.currentInfo error:0]; } |
