From a5de11c3d698abc633e254002c004a2672a5339f Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Tue, 11 Feb 2020 19:10:15 +0100 Subject: [PATCH] sharing: Remember the password on remote desktop sharing If we are going through mutter's RemoteDesktop interface, we don't seemingly remember the password set. Add support for reading it from secrets and change the entry password on dialog construction, to bring it on par with our vino handling. --- panels/sharing/cc-gnome-remote-desktop.c | 16 ++++++++++++++++ panels/sharing/cc-gnome-remote-desktop.h | 2 ++ panels/sharing/cc-sharing-panel.c | 2 ++ 3 files changed, 20 insertions(+) diff --git a/panels/sharing/cc-gnome-remote-desktop.c b/panels/sharing/cc-gnome-remote-desktop.c index 8420fddca..7ab1b2e0d 100644 --- a/panels/sharing/cc-gnome-remote-desktop.c +++ b/panels/sharing/cc-gnome-remote-desktop.c @@ -169,3 +169,19 @@ cc_grd_on_vnc_password_entry_notify_text (GtkEntry *entry, cancellable, on_password_stored, entry, NULL); } + +void +cc_grd_update_password_entry (GtkEntry *entry) +{ + g_autoptr(GError) error = NULL; + g_autofree gchar *password = NULL; + + password = secret_password_lookup_sync (CC_GRD_VNC_PASSWORD_SCHEMA, + NULL, &error, + NULL); + if (error) + g_warning ("Failed to get password: %s", error->message); + + if (password) + gtk_entry_set_text (entry, password); +} diff --git a/panels/sharing/cc-gnome-remote-desktop.h b/panels/sharing/cc-gnome-remote-desktop.h index 15565d3f4..ce30036f7 100644 --- a/panels/sharing/cc-gnome-remote-desktop.h +++ b/panels/sharing/cc-gnome-remote-desktop.h @@ -47,4 +47,6 @@ void cc_grd_on_vnc_password_entry_notify_text (GtkEntry *entry, GParamSpec *pspec, gpointer user_data); +void cc_grd_update_password_entry (GtkEntry *entry); + G_END_DECLS diff --git a/panels/sharing/cc-sharing-panel.c b/panels/sharing/cc-sharing-panel.c index bbcc9a80c..152a290a1 100644 --- a/panels/sharing/cc-sharing-panel.c +++ b/panels/sharing/cc-sharing-panel.c @@ -1110,6 +1110,8 @@ cc_sharing_panel_setup_screen_sharing_dialog_gnome_remote_desktop (CcSharingPane G_CALLBACK (screen_sharing_hide_cb), self); + cc_grd_update_password_entry (self->remote_control_password_entry); + /* accept at most 8 bytes in password entry */ g_signal_connect (self->remote_control_password_entry, "insert-text",