[gnome-control-center/wip/carlosg/recover-remote-desktop-password] sharing: Remember the password on remote desktop sharing



commit 044cc6d1195d84265ab78f5775fd7ffb70d3d43d
Author: Carlos Garnacho <carlosg gnome org>
Date:   Tue Feb 11 19:10:15 2020 +0100

    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..599467fb4 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_critical ("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",


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]