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
|
struct _StPasswordEntryPrivate
|
||||||
{
|
{
|
||||||
ClutterActor *peek_password_icon;
|
ClutterActor *peek_password_icon;
|
||||||
|
|
||||||
gboolean password_visible;
|
gboolean password_visible;
|
||||||
gboolean show_peek_icon;
|
gboolean show_peek_icon;
|
||||||
};
|
};
|
||||||
@ -229,10 +230,11 @@ st_password_entry_init (StPasswordEntry *entry)
|
|||||||
|
|
||||||
st_password_entry_set_show_peek_icon (entry, TRUE);
|
st_password_entry_set_show_peek_icon (entry, TRUE);
|
||||||
|
|
||||||
g_signal_connect (st_settings_get (),
|
g_signal_connect_object (st_settings_get (),
|
||||||
"notify::disable-show-password",
|
"notify::disable-show-password",
|
||||||
G_CALLBACK (on_disable_show_password_changed),
|
G_CALLBACK (on_disable_show_password_changed),
|
||||||
entry);
|
entry,
|
||||||
|
0);
|
||||||
|
|
||||||
clutter_text = st_entry_get_clutter_text (ST_ENTRY (entry));
|
clutter_text = st_entry_get_clutter_text (ST_ENTRY (entry));
|
||||||
clutter_text_set_password_char (CLUTTER_TEXT (clutter_text), BLACK_CIRCLE);
|
clutter_text_set_password_char (CLUTTER_TEXT (clutter_text), BLACK_CIRCLE);
|
||||||
|
Loading…
Reference in New Issue
Block a user