diff --git a/panels/user-accounts/data/account-dialog.ui b/panels/user-accounts/data/account-dialog.ui index 03d8ffa54..a508ecd30 100644 --- a/panels/user-accounts/data/account-dialog.ui +++ b/panels/user-accounts/data/account-dialog.ui @@ -335,11 +335,14 @@ True discrete - 4 + 5 True - - + + + + + diff --git a/panels/user-accounts/data/password-dialog.ui b/panels/user-accounts/data/password-dialog.ui index bf2476955..283f703d1 100644 --- a/panels/user-accounts/data/password-dialog.ui +++ b/panels/user-accounts/data/password-dialog.ui @@ -187,10 +187,13 @@ True discrete - 4 + 5 - - + + + + + diff --git a/panels/user-accounts/pw-utils.c b/panels/user-accounts/pw-utils.c index 7c31e56b1..49d2f77aa 100644 --- a/panels/user-accounts/pw-utils.c +++ b/panels/user-accounts/pw-utils.c @@ -127,7 +127,7 @@ pw_strength (const gchar *password, const gchar **hint, gint *strength_level) { - gint rv, level = 0; + gint rv, level, length = 0; gdouble strength = 0.0; void *auxerror; @@ -135,17 +135,21 @@ pw_strength (const gchar *password, password, old_password, username, &auxerror); + if (password != NULL) + length = strlen (password); + strength = CLAMP (0.01 * rv, 0.0, 1.0); if (rv < 0) { + level = (length > 0) ? 1 : 0; } else if (strength < 0.50) { - level = 1; - } else if (strength < 0.75) { level = 2; - } else if (strength < 0.90) { + } else if (strength < 0.75) { level = 3; - } else { + } else if (strength < 0.90) { level = 4; + } else { + level = 5; } *hint = pw_error_hint (rv); diff --git a/panels/user-accounts/um-account-dialog.c b/panels/user-accounts/um-account-dialog.c index 94191fafe..91cba2ec2 100644 --- a/panels/user-accounts/um-account-dialog.c +++ b/panels/user-accounts/um-account-dialog.c @@ -282,7 +282,7 @@ update_password_strength (UmAccountDialog *self) gtk_label_set_label (GTK_LABEL (self->local_hint), hint); gtk_level_bar_set_value (GTK_LEVEL_BAR (self->local_strength_indicator), strength_level); - if (strength_level > 0) { + if (strength_level > 1) { set_entry_validation_checkmark (GTK_ENTRY (self->local_password)); } else if (strlen (password) == 0) { set_entry_generation_icon (GTK_ENTRY (self->local_password)); diff --git a/panels/user-accounts/um-password-dialog.c b/panels/user-accounts/um-password-dialog.c index 9b7974396..6921b881c 100644 --- a/panels/user-accounts/um-password-dialog.c +++ b/panels/user-accounts/um-password-dialog.c @@ -84,7 +84,7 @@ update_password_strength (UmPasswordDialog *um) gtk_level_bar_set_value (GTK_LEVEL_BAR (um->strength_indicator), strength_level); gtk_label_set_label (GTK_LABEL (um->password_hint), hint); - if (strength_level > 0) { + if (strength_level > 1) { set_entry_validation_checkmark (GTK_ENTRY (um->password_entry)); } else if (strlen (password) == 0) { set_entry_generation_icon (GTK_ENTRY (um->password_entry));