forked from AuroraMiddleware/gtk
Revert "Deprecate and ignore gtk-entry-password-hint-timeout"
This reverts commit 4b5a389e88
.
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.
This commit is contained in:
parent
350569124d
commit
3442933dd7
@ -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;
|
||||
g_object_get (gtk_widget_get_settings (GTK_WIDGET (entry)),
|
||||
"gtk-entry-password-hint-timeout", &password_hint_timeout,
|
||||
NULL);
|
||||
|
||||
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);
|
||||
|
||||
/* 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);
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user