diff options
author | Marco Trevisan (TreviƱo) <mail@3v1n0.net> | 2020-03-26 06:41:33 +0100 |
---|---|---|
committer | Robert Ancell <robert.ancell@gmail.com> | 2020-06-26 02:01:27 +0000 |
commit | 689aee32920d5228ee79b72889182ffbc2796212 (patch) | |
tree | ed86a98d0d7dbad1322b966715ef27cf6c13c30e | |
parent | e501566cf6f34383d251223a06c55fdda4d2236b (diff) | |
download | gnome-control-center-689aee32920d5228ee79b72889182ffbc2796212.tar.gz |
user-panel: Add reference to selected user and clear on dispose
The object was wrongly unreffed (as ActUserManager has the ownership) on
user switch, so add a reference instead when assigning it to our private
ref and unref it on dispose.
-rw-r--r-- | panels/user-accounts/cc-user-panel.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/panels/user-accounts/cc-user-panel.c b/panels/user-accounts/cc-user-panel.c index ee9cccd14..bde10675f 100644 --- a/panels/user-accounts/cc-user-panel.c +++ b/panels/user-accounts/cc-user-panel.c @@ -174,10 +174,9 @@ set_selected_user (CcUserPanel *self, CcCarouselItem *item) { uid_t uid; - g_clear_object (&self->selected_user); - uid = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (item), "uid")); - self->selected_user = act_user_manager_get_user_by_id (self->um, uid); + g_set_object (&self->selected_user, + act_user_manager_get_user_by_id (self->um, uid)); if (self->selected_user != NULL) { show_user (self->selected_user, self); @@ -1474,6 +1473,8 @@ cc_user_panel_dispose (GObject *object) { CcUserPanel *self = CC_USER_PANEL (object); + g_clear_object (&self->selected_user); + g_clear_object (&self->login_screen_settings); g_clear_pointer ((GtkWidget **)&self->language_chooser, gtk_widget_destroy); |