summaryrefslogtreecommitdiff
path: root/gui
diff options
context:
space:
mode:
Diffstat (limited to 'gui')
-rw-r--r--gui/gdmlogin.c2
-rw-r--r--gui/gdmsetup.c29
-rw-r--r--gui/gdmsetup.glade113
-rw-r--r--gui/greeter/greeter_canvas_item.c2
4 files changed, 131 insertions, 15 deletions
diff --git a/gui/gdmlogin.c b/gui/gdmlogin.c
index a3ad5508..f673ddff 100644
--- a/gui/gdmlogin.c
+++ b/gui/gdmlogin.c
@@ -2536,6 +2536,8 @@ gdm_login_gui_init (void)
gtk_entry_set_invisible_char (GTK_ENTRY (entry), 0);
else if (gdm_config_get_bool (GDM_KEY_ENTRY_CIRCLES))
gtk_entry_set_invisible_char (GTK_ENTRY (entry), 0x25cf);
+ else
+ gtk_entry_set_invisible_char (GTK_ENTRY (entry), '*');
gtk_entry_set_max_length (GTK_ENTRY (entry), PW_ENTRY_SIZE);
gtk_widget_set_size_request (entry, 250, -1);
diff --git a/gui/gdmsetup.c b/gui/gdmsetup.c
index c06b9c4e..8fe176d4 100644
--- a/gui/gdmsetup.c
+++ b/gui/gdmsetup.c
@@ -512,7 +512,14 @@ toggle_timeout (GtkWidget *toggle)
const char *key = g_object_get_data (G_OBJECT (toggle), "key");
gboolean val = gdm_config_get_bool ((gchar *)key);
- if (strcmp (ve_sure_string (key), GDM_KEY_GLOBAL_FACE_DIR) == 0) {
+ if (strcmp (ve_sure_string (key), GDM_KEY_ENTRY_INVISIBLE) == 0) {
+ /* This is a lil bit back to front
+ true is false and false is true in this case */
+ if ( bool_equal (val, GTK_TOGGLE_BUTTON (toggle)->active)) {
+ gdm_setup_config_set_bool (key, !GTK_TOGGLE_BUTTON (toggle)->active);
+ }
+ }
+ else if (strcmp (ve_sure_string (key), GDM_KEY_GLOBAL_FACE_DIR) == 0) {
/* Once enabled write the curently selected item
in the filechooser widget, otherwise disable
the config entry, i.e. write an empty string */
@@ -2195,11 +2202,20 @@ setup_notify_toggle (const char *name,
g_signal_connect (G_OBJECT (toggle), "toggled",
G_CALLBACK (timedlogin_allow_remote_toggled), timedlogin_allow_remote);
}
- else if (strcmp ("hide_vis_feedback_passwd_checkbox", ve_sure_string (name)) == 0) {
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (toggle), val);
+ else if (strcmp ("vis_feedback_passwd_checkbox", ve_sure_string (name)) == 0) {
+ /* This one is a lil bit back to front
+ true is false and false is true */
+ GtkWidget *use_circles_in_passwd;
+ use_circles_in_passwd = glade_xml_get_widget (xml, "use_circles_passwd_checkbox");
+
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (toggle), !val);
+ gtk_widget_set_sensitive (use_circles_in_passwd, !val);
g_signal_connect (G_OBJECT (toggle), "toggled",
- G_CALLBACK (toggle_toggled), toggle);
+ G_CALLBACK (toggle_toggled), toggle);
+ g_signal_connect (G_OBJECT (toggle), "toggled",
+ G_CALLBACK (toggle_toggled_sensitivity_positive), use_circles_in_passwd);
+
}
else if (strcmp ("local_set_pos_checkbox", ve_sure_string (name)) == 0) {
@@ -7446,7 +7462,10 @@ setup_general_tab (void)
/* Setup use visual feedback in the passwotrd entry */
- setup_notify_toggle ("hide_vis_feedback_passwd_checkbox", GDM_KEY_ENTRY_INVISIBLE);
+ setup_notify_toggle ("vis_feedback_passwd_checkbox", GDM_KEY_ENTRY_INVISIBLE);
+
+ /* Setup use circles in the password entry */
+ setup_notify_toggle ("use_circles_passwd_checkbox", GDM_KEY_ENTRY_CIRCLES);
/* Setup always login current session entry */
setup_notify_toggle ("a_login_curr_session_checkbutton", GDM_KEY_ALWAYS_LOGIN_CURRENT_SESSION);
diff --git a/gui/gdmsetup.glade b/gui/gdmsetup.glade
index 9c69f8e6..46e63d10 100644
--- a/gui/gdmsetup.glade
+++ b/gui/gdmsetup.glade
@@ -2,6 +2,7 @@
<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
<glade-interface>
+<requires lib="gnome"/>
<widget class="GtkDialog" id="setup_dialog">
<property name="title" translatable="yes">Login Window Preferences</property>
@@ -89,17 +90,109 @@
<property name="spacing">3</property>
<child>
- <widget class="GtkCheckButton" id="hide_vis_feedback_passwd_checkbox">
+ <widget class="GtkHBox" id="hbox201">
<property name="visible">True</property>
- <property name="tooltip" translatable="yes">Hide visual feedback in the password entry. Turning this option on can increase security, as the length of your password cannot be guessed by people looking at your screen.</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Hide visual feedback in the password entry</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkTable" id="table24">
+ <property name="visible">True</property>
+ <property name="n_rows">2</property>
+ <property name="n_columns">1</property>
+ <property name="homogeneous">False</property>
+ <property name="row_spacing">3</property>
+ <property name="column_spacing">12</property>
+
+ <child>
+ <widget class="GtkCheckButton" id="vis_feedback_passwd_checkbox">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Show visual feedback in the password entry. Turning this option on can be a security hazard as the length of your password can be guessed.</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Show visual feedback (asterisks) in the password entry</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox203">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkLabel" id="label297">
+ <property name="visible">True</property>
+ <property name="label"> </property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkCheckButton" id="use_circles_passwd_checkbox">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Use circles instead of asterisks in the password entry. This may not work with all fonts however.</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Use circles instead of asterisks in the password entry</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">fill</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
</widget>
<packing>
<property name="padding">0</property>
diff --git a/gui/greeter/greeter_canvas_item.c b/gui/greeter/greeter_canvas_item.c
index 18dcf702..56e7fd1a 100644
--- a/gui/greeter/greeter_canvas_item.c
+++ b/gui/greeter/greeter_canvas_item.c
@@ -468,6 +468,8 @@ greeter_item_create_canvas_item (GreeterItemInfo *item)
gtk_entry_set_invisible_char (GTK_ENTRY (entry), 0);
else if (gdm_config_get_bool (GDM_KEY_ENTRY_CIRCLES))
gtk_entry_set_invisible_char (GTK_ENTRY (entry), 0x25cf);
+ else
+ gtk_entry_set_invisible_char (GTK_ENTRY (entry), '*');
gtk_widget_modify_font (entry, item->data.text.fonts[GREETER_ITEM_STATE_NORMAL]);