diff --git a/gtk3-password-hint-timeout.patch b/gtk3-password-hint-timeout.patch new file mode 100644 index 0000000..1714441 --- /dev/null +++ b/gtk3-password-hint-timeout.patch @@ -0,0 +1,91 @@ +From 4b5a389e88af7e7a1fa9e33294642dcfbc2832ec Mon Sep 17 00:00:00 2001 +From: William Jon McCann +Date: Wed, 10 Jul 2013 16:13:12 +0000 +Subject: Deprecate and ignore gtk-entry-password-hint-timeout + +This feature offers a number of benefits related to providing +feedback to the user when the password is masked. Some experts have +argued that password masking is harmful. I tend to agree with this +setting providing a better and more moderate solution. Some agree: +https://www.schneier.com/blog/archives/2009/07/the_pros_and_co.html + +In order to further lessen the impact I've only enabled the feature +on the primary display since the likelyhood of a non-primary display +being visible by others is higher. +--- +Index: gtk+-3.9.12/gtk/gtkentry.c +=================================================================== +--- gtk+-3.9.12.orig/gtk/gtkentry.c ++++ gtk+-3.9.12/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 *bu + GtkEntry *entry) + { + GtkEntryPrivate *priv = entry->priv; ++ guint password_hint_timeout; + guint current_pos; + gint selection_bound; + +@@ -5193,18 +5193,11 @@ buffer_inserted_text (GtkEntryBuffer *bu + /* 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); +- +- /* 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) ++ g_object_get (gtk_widget_get_settings (GTK_WIDGET (entry)), ++ "gtk-entry-password-hint-timeout", &password_hint_timeout, ++ NULL); ++ ++ 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 *bu + 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); + } + } +Index: gtk+-3.9.12/gtk/gtksettings.c +=================================================================== +--- gtk+-3.9.12.orig/gtk/gtksettings.c ++++ gtk+-3.9.12/gtk/gtksettings.c +@@ -1327,16 +1327,14 @@ gtk_settings_class_init (GtkSettingsClas + * 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), ++ 600, ++ GTK_PARAM_READWRITE), + NULL); + g_assert (result == PROP_ENTRY_PASSWORD_HINT_TIMEOUT); + diff --git a/gtk3.changes b/gtk3.changes index 57d1ca3..2fa35e9 100644 --- a/gtk3.changes +++ b/gtk3.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Thu Aug 22 14:28:42 UTC 2013 - dimstar@opensuse.org + +- Add gtk3-password-hint-timeout.patch: Revert the removal of + password-hint-timeout: We do go with upstreams defined 600ms to + show the last character of the password (stay close), but we do + want to keep the configure option. Users that are really worried + about this can change the settings in .gtkrc. +- Add the default configure value as comment in settings.ini, to + make it easier discoverable. + ------------------------------------------------------------------- Wed Aug 21 06:47:04 UTC 2013 - dimstar@opensuse.org diff --git a/gtk3.spec b/gtk3.spec index a2d32dc..a302eb8 100644 --- a/gtk3.spec +++ b/gtk3.spec @@ -46,6 +46,8 @@ Patch3: gtk3-bnc130159-bgo319483-async-font-selection.patch Patch4: gtk3-find-wayland-includedir.patch # PATCH-FIX-UPSTREAM gtk3-build-without-wayland.patch bgo#706461 dimstar@opensuse.org -- fix build without wayland, taken from git. Patch5: gtk3-build-without-wayland.patch +# PATCH-FEATURE-OPENSUSE gtk3-password-hint-timeout.patch bgo#706563 dimstar@opensuse.org -- Revert commit 4b5a38, re-introduce gtk-entry-password-hint-timeout +Patch6: gtk3-password-hint-timeout.patch BuildRequires: cups-devel >= 1.2 BuildRequires: docbook-xsl-stylesheets BuildRequires: fdupes @@ -318,6 +320,7 @@ cp -a %{S:1} . %patch4 -p1 %endif %patch5 -p1 +%patch6 -p1 %build # Needed for patch1 and patch4 diff --git a/settings.ini b/settings.ini index 9d50aab..7eda1ba 100644 --- a/settings.ini +++ b/settings.ini @@ -11,3 +11,4 @@ #gtk-theme-name = #gtk-icon-theme-name = #gtk-fallback-icon-theme = gnome +#gtk-entry-password-hint-timeout = 600