From f438da7c3b7d0978e4f03d4d810d175ce9218e0f Mon Sep 17 00:00:00 2001 From: Jonh Wendell Date: Wed, 17 Jul 2013 18:55:39 -0300 Subject: [PATCH] user-accounts: correctly selects the newly-created user don't compare pointers, as they can be different, given they can come from different sources. compare their UID's. https://bugzilla.gnome.org/show_bug.cgi?id=704426 --- panels/user-accounts/um-user-panel.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/panels/user-accounts/um-user-panel.c b/panels/user-accounts/um-user-panel.c index ee61e4c7a..b9b4983fc 100644 --- a/panels/user-accounts/um-user-panel.c +++ b/panels/user-accounts/um-user-panel.c @@ -351,6 +351,7 @@ select_created_user (GObject *object, ActUser *current; GtkTreePath *path; ActUser *user; + uid_t user_uid; dialog = UM_ACCOUNT_DIALOG (object); user = um_account_dialog_finish (dialog, result); @@ -363,20 +364,22 @@ select_created_user (GObject *object, tv = (GtkTreeView *)get_widget (d, "list-treeview"); model = gtk_tree_view_get_model (tv); selection = gtk_tree_view_get_selection (tv); + user_uid = act_user_get_uid (user); gtk_tree_model_get_iter_first (model, &iter); do { gtk_tree_model_get (model, &iter, USER_COL, ¤t, -1); - if (user == current) { - path = gtk_tree_model_get_path (model, &iter); - gtk_tree_view_scroll_to_cell (tv, path, NULL, FALSE, 0.0, 0.0); - gtk_tree_selection_select_path (selection, path); - gtk_tree_path_free (path); + if (current) { + if (user_uid == act_user_get_uid (current)) { + path = gtk_tree_model_get_path (model, &iter); + gtk_tree_view_scroll_to_cell (tv, path, NULL, FALSE, 0.0, 0.0); + gtk_tree_selection_select_path (selection, path); + gtk_tree_path_free (path); + g_object_unref (current); + break; + } g_object_unref (current); - break; } - if (current) - g_object_unref (current); } while (gtk_tree_model_iter_next (model, &iter)); g_object_unref (user);