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
This commit is contained in:
Jonh Wendell 2013-07-17 18:55:39 -03:00
parent 6f02cc8244
commit f438da7c3b

View file

@ -351,6 +351,7 @@ select_created_user (GObject *object,
ActUser *current; ActUser *current;
GtkTreePath *path; GtkTreePath *path;
ActUser *user; ActUser *user;
uid_t user_uid;
dialog = UM_ACCOUNT_DIALOG (object); dialog = UM_ACCOUNT_DIALOG (object);
user = um_account_dialog_finish (dialog, result); user = um_account_dialog_finish (dialog, result);
@ -363,20 +364,22 @@ select_created_user (GObject *object,
tv = (GtkTreeView *)get_widget (d, "list-treeview"); tv = (GtkTreeView *)get_widget (d, "list-treeview");
model = gtk_tree_view_get_model (tv); model = gtk_tree_view_get_model (tv);
selection = gtk_tree_view_get_selection (tv); selection = gtk_tree_view_get_selection (tv);
user_uid = act_user_get_uid (user);
gtk_tree_model_get_iter_first (model, &iter); gtk_tree_model_get_iter_first (model, &iter);
do { do {
gtk_tree_model_get (model, &iter, USER_COL, &current, -1); gtk_tree_model_get (model, &iter, USER_COL, &current, -1);
if (user == current) { if (current) {
path = gtk_tree_model_get_path (model, &iter); if (user_uid == act_user_get_uid (current)) {
gtk_tree_view_scroll_to_cell (tv, path, NULL, FALSE, 0.0, 0.0); path = gtk_tree_model_get_path (model, &iter);
gtk_tree_selection_select_path (selection, path); gtk_tree_view_scroll_to_cell (tv, path, NULL, FALSE, 0.0, 0.0);
gtk_tree_path_free (path); gtk_tree_selection_select_path (selection, path);
gtk_tree_path_free (path);
g_object_unref (current);
break;
}
g_object_unref (current); g_object_unref (current);
break;
} }
if (current)
g_object_unref (current);
} while (gtk_tree_model_iter_next (model, &iter)); } while (gtk_tree_model_iter_next (model, &iter));
g_object_unref (user); g_object_unref (user);