Skip to content

Commit e32b611

Browse files
committed
unlock dialog: Allow password visibility to be toggled.
1 parent f54ad03 commit e32b611

File tree

3 files changed

+93
-4
lines changed

3 files changed

+93
-4
lines changed
Lines changed: 40 additions & 0 deletions
Loading
Lines changed: 40 additions & 0 deletions
Loading

src/passwordEntry.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ def __init__(self):
2929
self.set_placeholder_text (placeholder_text)
3030
self.set_can_default(True)
3131

32+
self.set_icon_from_icon_name(Gtk.EntryIconPosition.SECONDARY, "cinnamon-screensaver-view-reveal")
33+
trackers.con_tracker_get().connect(self, "icon-press", self.on_icon_pressed)
34+
3235
self.placeholder_text = placeholder_text
3336
self.current_icon_name = None
3437
self.current_flag_id = 0
@@ -174,6 +177,16 @@ def on_config_changed(self, controller):
174177
def on_icon_pressed(self, entry, icon_pos, event):
175178
if icon_pos == Gtk.EntryIconPosition.PRIMARY:
176179
self.keyboard_controller.next_group()
180+
elif icon_pos == Gtk.EntryIconPosition.SECONDARY:
181+
if self.get_input_purpose() == Gtk.InputPurpose.FREE_FORM:
182+
self.set_visibility(False)
183+
self.set_input_purpose(Gtk.InputPurpose.PASSWORD)
184+
self.set_icon_from_icon_name(Gtk.EntryIconPosition.SECONDARY, "cinnamon-screensaver-view-reveal")
185+
else:
186+
self.set_visibility(True)
187+
self.set_input_purpose(Gtk.InputPurpose.FREE_FORM)
188+
self.set_icon_from_icon_name(Gtk.EntryIconPosition.SECONDARY, "cinnamon-screensaver-view-conceal")
189+
self.queue_draw()
177190

178191
def update_layout_icon(self):
179192
"""
@@ -222,10 +235,6 @@ def set_lockscreen_keyboard_layout(self):
222235
self.update_saved_group(new_group)
223236
self.update_layout_icon()
224237

225-
trackers.con_tracker_get().connect(self,
226-
"icon-press",
227-
self.on_icon_pressed)
228-
229238
trackers.con_tracker_get().connect(self,
230239
"draw",
231240
self.on_draw)

0 commit comments

Comments
 (0)