static gint sort_users (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer data) { UmUser *ua, *ub; gint sa, sb; gint result; gtk_tree_model_get (model, a, USER_COL, &ua, SORT_KEY_COL, &sa, -1); gtk_tree_model_get (model, b, USER_COL, &ub, SORT_KEY_COL, &sb, -1); if (sa < sb) { result = -1; } else if (sa > sb) { result = 1; } else { result = um_user_collate (ua, ub); } if (ua) { g_object_unref (ua); } if (ub) { g_object_unref (ub); } return result; }
static gint sort_login_users (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer data) { UmUser *ua, *ub; gint result; gtk_tree_model_get (model, a, AUTOLOGIN_USER_COL, &ua, -1); gtk_tree_model_get (model, b, AUTOLOGIN_USER_COL, &ub, -1); if (ua == NULL) result = -1; else if (ub == NULL) result = 1; else if (um_user_get_uid (ua) == getuid ()) result = -1; else if (um_user_get_uid (ub) == getuid ()) result = 1; else result = um_user_collate (ua, ub); if (ua) g_object_unref (ua); if (ub) g_object_unref (ub); return result; }