st/password-entry: Fix crash when DConf changes after StEntry is destroyed
commit 8721c5db37
made StPasswordEntry
honor the 'disable-show-password' setting.
Unfortunately, it introduced a lifecycle bug where the signal handler
for noticing setting changes can out live the entry itself.
This commit fixes the problem by using g_signal_connect_object
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2004>
This commit is contained in:
parent
c1c0b34d77
commit
ddb6276a49
@ -37,6 +37,7 @@ struct _StPasswordEntry
|
||||
struct _StPasswordEntryPrivate
|
||||
{
|
||||
ClutterActor *peek_password_icon;
|
||||
|
||||
gboolean password_visible;
|
||||
gboolean show_peek_icon;
|
||||
};
|
||||
@ -229,10 +230,11 @@ st_password_entry_init (StPasswordEntry *entry)
|
||||
|
||||
st_password_entry_set_show_peek_icon (entry, TRUE);
|
||||
|
||||
g_signal_connect (st_settings_get (),
|
||||
"notify::disable-show-password",
|
||||
G_CALLBACK (on_disable_show_password_changed),
|
||||
entry);
|
||||
g_signal_connect_object (st_settings_get (),
|
||||
"notify::disable-show-password",
|
||||
G_CALLBACK (on_disable_show_password_changed),
|
||||
entry,
|
||||
0);
|
||||
|
||||
clutter_text = st_entry_get_clutter_text (ST_ENTRY (entry));
|
||||
clutter_text_set_password_char (CLUTTER_TEXT (clutter_text), BLACK_CIRCLE);
|
||||
|
Loading…
Reference in New Issue
Block a user