g_list_free(children);
static void draglist_move(struct dlgparam *dp, struct uctrl *uc, int direction){    int index = dlg_listbox_index(uc->ctrl, dp);    GList *children = gtk_container_children(GTK_CONTAINER(uc->list));    GtkWidget *child;    if ((index < 0) ||	(index == 0 && direction < 0) ||	(index == g_list_length(children)-1 && direction > 0)) {	gdk_beep();	return;    }    child = g_list_nth_data(children, index);    gtk_widget_ref(child);    gtk_list_clear_items(GTK_LIST(uc->list), index, index+1);    children = NULL;    children = g_list_append(children, child);    gtk_list_insert_items(GTK_LIST(uc->list), children, index + direction);    gtk_list_select_item(GTK_LIST(uc->list), index + direction);    uc->ctrl->generic.handler(uc->ctrl, dp, dp->data, EVENT_VALCHANGE);}