diff options
author | Daniel P. Berrange <berrange@redhat.com> | 2012-02-08 19:33:40 +0000 |
---|---|---|
committer | Daniel P. Berrange <berrange@redhat.com> | 2012-02-08 19:33:40 +0000 |
commit | 0fa4d098f9f1decd9ddeb83bc8afe629a3889c39 (patch) | |
tree | 29a300da8be237a90e501c156bd1c26ddfda2110 /src/virt-viewer-auth.c | |
parent | 28830c8596ccdb038ee4d1cf7da349a8fdd00bba (diff) | |
download | virt-viewer-0fa4d098f9f1decd9ddeb83bc8afe629a3889c39.tar.gz virt-viewer-0fa4d098f9f1decd9ddeb83bc8afe629a3889c39.tar.xz virt-viewer-0fa4d098f9f1decd9ddeb83bc8afe629a3889c39.zip |
Ensure auth popup windows have correct transient parent
Diffstat (limited to 'src/virt-viewer-auth.c')
-rw-r--r-- | src/virt-viewer-auth.c | 70 |
1 files changed, 8 insertions, 62 deletions
diff --git a/src/virt-viewer-auth.c b/src/virt-viewer-auth.c index bef75aa..8c4041d 100644 --- a/src/virt-viewer-auth.c +++ b/src/virt-viewer-auth.c @@ -33,7 +33,8 @@ int -virt_viewer_auth_collect_credentials(const char *type, +virt_viewer_auth_collect_credentials(GtkWindow *window, + const char *type, const char *address, char **username, char **password) @@ -50,6 +51,7 @@ virt_viewer_auth_collect_credentials(const char *type, dialog = GTK_WIDGET(gtk_builder_get_object(creds, "auth")); gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK); + gtk_window_set_transient_for(GTK_WINDOW(dialog), window); labelMessage = GTK_WIDGET(gtk_builder_get_object(creds, "message")); credUsername = GTK_WIDGET(gtk_builder_get_object(creds, "cred-username")); @@ -93,9 +95,10 @@ virt_viewer_auth_collect_credentials(const char *type, #ifdef HAVE_GTK_VNC void -virt_viewer_auth_vnc_credentials(GtkWidget *vnc, +virt_viewer_auth_vnc_credentials(GtkWindow *window, + GtkWidget *vnc, GValueArray *credList, - char **vncAddress) + char *vncAddress) { char *username = NULL, *password = NULL; gboolean wantPassword = FALSE, wantUsername = FALSE; @@ -122,7 +125,8 @@ virt_viewer_auth_vnc_credentials(GtkWidget *vnc, } if (wantUsername || wantPassword) { - int ret = virt_viewer_auth_collect_credentials("VNC", vncAddress ? *vncAddress : NULL, + int ret = virt_viewer_auth_collect_credentials(window, + "VNC", vncAddress, wantUsername ? &username : NULL, wantPassword ? &password : NULL); @@ -173,64 +177,6 @@ virt_viewer_auth_vnc_credentials(GtkWidget *vnc, } #endif - -#ifdef HAVE_LIBVIRT -int -virt_viewer_auth_libvirt_credentials(virConnectCredentialPtr cred, - unsigned int ncred, - void *cbdata) -{ - char **username = NULL, **password = NULL; - const char *uri = cbdata; - int i; - int ret = -1; - - DEBUG_LOG("Got libvirt credential request for %d credential(s)", ncred); - - for (i = 0 ; i < ncred ; i++) { - switch (cred[i].type) { - case VIR_CRED_USERNAME: - case VIR_CRED_AUTHNAME: - username = &cred[i].result; - break; - case VIR_CRED_PASSPHRASE: - password = &cred[i].result; - break; - default: - DEBUG_LOG("Unsupported libvirt credential %d", cred[i].type); - return -1; - } - } - - if (username || password) { - ret = virt_viewer_auth_collect_credentials("libvirt", uri, - username, password); - if (ret < 0) - goto cleanup; - } else { - ret = 0; - } - - for (i = 0 ; i < ncred ; i++) { - switch (cred[i].type) { - case VIR_CRED_AUTHNAME: - case VIR_CRED_USERNAME: - case VIR_CRED_PASSPHRASE: - if (cred[i].result) - cred[i].resultlen = strlen(cred[i].result); - else - cred[i].resultlen = 0; - DEBUG_LOG("Got '%s' %d %d", cred[i].result, cred[i].resultlen, cred[i].type); - break; - } - } - - cleanup: - DEBUG_LOG("Return %d", ret); - return ret; -} -#endif - /* * Local variables: * c-indent-level: 4 |