[gtk+] Revert "Deprecate and ignore gtk-entry-password-hint-timeout"



commit 3442933dd7ea6c9f411a021a19202b91cc090610
Author: Matthias Clasen <mclasen redhat com>
Date:   Sat Aug 31 00:14:58 2013 -0400

    Revert "Deprecate and ignore gtk-entry-password-hint-timeout"
    
    This reverts commit 4b5a389e88af7e7a1fa9e33294642dcfbc2832ec.
    
    This change caused considerable concern about accidental
    leaking of passwords, see e.g.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=706563
    https://bugzilla.gnome.org/show_bug.cgi?id=706873
    https://bugzilla.redhat.com/show_bug.cgi?id=994237
    
    We may have to do something else for password entries, such
    as the windows-style 'peekabo' icon.

 gtk/gtkentry.c    |   21 +++++++--------------
 gtk/gtksettings.c |    6 ++----
 2 files changed, 9 insertions(+), 18 deletions(-)
---
diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c
index 9ed148c..01fa816 100644
--- a/gtk/gtkentry.c
+++ b/gtk/gtkentry.c
@@ -117,7 +117,6 @@
 #define MIN_ENTRY_WIDTH  150
 #define DRAW_TIMEOUT     20
 #define PASSWORD_HINT_MAX 8
-#define PASSWORD_HINT_TIMEOUT 600
 
 #define MAX_ICONS 2
 
@@ -5177,6 +5176,7 @@ buffer_inserted_text (GtkEntryBuffer *buffer,
                       GtkEntry       *entry)
 {
   GtkEntryPrivate *priv = entry->priv;
+  guint password_hint_timeout;
   guint current_pos;
   gint selection_bound;
 
@@ -5193,18 +5193,11 @@ buffer_inserted_text (GtkEntryBuffer *buffer,
   /* Calculate the password hint if it needs to be displayed. */
   if (n_chars == 1 && !priv->visible)
     {
-      GdkScreen *screen;
-      gint primary_num;
-      gint monitor_num;
-
-      screen = gtk_widget_get_screen (GTK_WIDGET (entry));
-      primary_num = gdk_screen_get_primary_monitor (screen);
-      monitor_num = gdk_screen_get_monitor_at_window (screen, priv->text_area);
+      g_object_get (gtk_widget_get_settings (GTK_WIDGET (entry)),
+                    "gtk-entry-password-hint-timeout", &password_hint_timeout,
+                    NULL);
 
-      /* Only show password hint on the primary monitor to help avoid
-         showing passwords on presentations and the like. Would be
-         better if we had an explicit presentation mode. */
-      if (primary_num == monitor_num)
+      if (password_hint_timeout > 0)
         {
           GtkEntryPasswordHint *password_hint = g_object_get_qdata (G_OBJECT (entry),
                                                                     quark_password_hint);
@@ -5218,7 +5211,7 @@ buffer_inserted_text (GtkEntryBuffer *buffer,
           password_hint->position = position;
           if (password_hint->source_id)
             g_source_remove (password_hint->source_id);
-          password_hint->source_id = gdk_threads_add_timeout (PASSWORD_HINT_TIMEOUT,
+          password_hint->source_id = gdk_threads_add_timeout (password_hint_timeout,
                                                               (GSourceFunc)gtk_entry_remove_password_hint, 
entry);
         }
     }
diff --git a/gtk/gtksettings.c b/gtk/gtksettings.c
index 2095bfb..700d1ac 100644
--- a/gtk/gtksettings.c
+++ b/gtk/gtksettings.c
@@ -1327,16 +1327,14 @@ gtk_settings_class_init (GtkSettingsClass *class)
    * last char. 600 is a good value for enabling it.
    *
    * Since: 2.10
-   *
-   * Deprecated: 3.10: This setting is ignored
    */
   result = settings_install_property_parser (class,
                                              g_param_spec_uint ("gtk-entry-password-hint-timeout",
                                                                 P_("Password Hint Timeout"),
                                                                 P_("How long to show the last input 
character in hidden entries"),
                                                                 0, G_MAXUINT,
-                                                                600,
-                                                                GTK_PARAM_READWRITE | G_PARAM_DEPRECATED),
+                                                                0,
+                                                                GTK_PARAM_READWRITE),
                                              NULL);
   g_assert (result == PROP_ENTRY_PASSWORD_HINT_TIMEOUT);
 


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