[gnome-control-center/rhel/8.4.0: 21/32] sharing: Remember the password on remote desktop sharing




commit 8c0dcf26de4c52cd402fc5c66880e1945bbf870b
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 2a4819986..1f83e2dd6 100644
--- a/panels/sharing/cc-gnome-remote-desktop.h
+++ b/panels/sharing/cc-gnome-remote-desktop.h
@@ -46,4 +46,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);
+
 #endif /* CC_GNOME_REMOTE_DESKTOP_H */
diff --git a/panels/sharing/cc-sharing-panel.c b/panels/sharing/cc-sharing-panel.c
index ab22f5df8..17ecdb11a 100644
--- a/panels/sharing/cc-sharing-panel.c
+++ b/panels/sharing/cc-sharing-panel.c
@@ -1106,6 +1106,8 @@ cc_sharing_panel_setup_screen_sharing_dialog_gnome_remote_desktop (CcSharingPane
   g_signal_connect (priv->screen_sharing_dialog, "hide",
                     G_CALLBACK (screen_sharing_hide_cb), self);
 
+  cc_grd_update_password_entry (WID ("remote-control-password-entry"));
+
   /* accept at most 8 bytes in password entry */
   g_signal_connect (WID ("remote-control-password-entry"), "insert-text",
                     G_CALLBACK (screen_sharing_password_insert_text_cb), self);


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