static void move_selected_input_down (GtkButton *button, gpointer data) { GtkBuilder *builder = data; GtkTreeModel *model; GtkTreeIter iter, next; GtkTreePath *path; g_debug ("move selected input source down"); if (!get_selected_iter (builder, &model, &iter)) return; next = iter; if (!gtk_tree_model_iter_next (model, &next)) return; path = gtk_tree_model_get_path (model, &next); gtk_list_store_swap (GTK_LIST_STORE (model), &iter, &next); set_selected_path (builder, path); gtk_tree_path_free (path); update_button_sensitivity (builder); update_configuration (model); }
static void input_sources_changed (GSettings *settings, gchar *key, GtkBuilder *builder) { GtkWidget *treeview; GtkTreeModel *store; GtkTreePath *path; GtkTreeIter iter; GtkTreeModel *model; treeview = WID("active_input_sources"); store = gtk_tree_view_get_model (GTK_TREE_VIEW (treeview)); if (get_selected_iter (builder, &model, &iter)) path = gtk_tree_model_get_path (model, &iter); else path = NULL; gtk_list_store_clear (GTK_LIST_STORE (store)); populate_with_active_sources (GTK_LIST_STORE (store)); if (path) { set_selected_path (builder, path); gtk_tree_path_free (path); } }
static void remove_selected_input (GtkButton *button, gpointer data) { GtkBuilder *builder = data; GtkTreeModel *model; GtkTreeIter iter; GtkTreePath *path; g_debug ("remove selected input source"); if (get_selected_iter (builder, &model, &iter) == FALSE) return; path = gtk_tree_model_get_path (model, &iter); gtk_list_store_remove (GTK_LIST_STORE (model), &iter); if (!gtk_tree_model_get_iter (model, &iter, path)) gtk_tree_path_prev (path); set_selected_path (builder, path); gtk_tree_path_free (path); update_button_sensitivity (builder); update_configuration (model); }
static void move_down_selected_layout (GtkWidget * button, GtkBuilder * dialog) { GtkTreeModel *model; GtkTreeIter iter, next; GtkTreePath *path; if (get_selected_iter (dialog, &model, &iter) == FALSE) return; next = iter; if (!gtk_tree_model_iter_next (model, &next)) return; path = gtk_tree_model_get_path (model, &next); gtk_list_store_swap (GTK_LIST_STORE (model), &iter, &next); update_layouts_list (model, dialog); set_selected_path (dialog, path); gtk_tree_path_free (path); }