shellEntry: Handle PasswordEntries automatically

shellEntry should not need to query the clutter-text directly
in order to know if the entry is for passport-input purpose.
shellEntry can easily determine a password-entry by querying
if it is an instance of StPasswordEntry and use it's API
whereever relevant.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/619
This commit is contained in:
Umang Jain 2019-12-12 14:38:42 +05:30 committed by Florian Müllner
parent 281c87d11b
commit b166de08dc

View File

@ -27,7 +27,8 @@ var EntryMenu = class extends PopupMenu.PopupMenu {
this.addMenuItem(item);
this._pasteItem = item;
this._passwordItem = null;
if (entry instanceof St.PasswordEntry)
this._makePasswordItem();
Main.uiGroup.add_actor(this.actor);
this.actor.hide();
@ -86,8 +87,7 @@ var EntryMenu = class extends PopupMenu.PopupMenu {
}
_updatePasswordItem() {
let textHidden = this._entry.clutter_text.password_char;
if (textHidden)
if (!this._entry.password_visible)
this._passwordItem.label.set_text(_("Show Text"));
else
this._passwordItem.label.set_text(_("Hide Text"));
@ -110,8 +110,7 @@ var EntryMenu = class extends PopupMenu.PopupMenu {
}
_onPasswordActivated() {
let visible = !!this._entry.clutter_text.password_char;
this._entry.clutter_text.set_password_char(visible ? '' : '\u25cf');
this._entry.password_visible = !this._entry.password_visible;
}
};