static void showed_message_cb (GtrTab * tab, GtrMsg * msg, GtrMessageTable * table) { GtkTreePath *path; GtkTreeSelection *selection; GtkTreeIter iter, child_iter; GtrMessageTablePrivate *priv; priv = gtr_message_table_get_instance_private (table); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->treeview)); gtr_message_table_get_message_iter (priv->store, msg, &child_iter); gtk_tree_model_sort_convert_child_iter_to_iter (GTK_TREE_MODEL_SORT (priv->sort_model), &iter, &child_iter); gtk_tree_selection_select_iter (selection, &iter); path = gtk_tree_model_get_path (priv->sort_model, &iter); gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (priv->treeview), path, NULL, TRUE, 0.5, 0.0); gtk_tree_path_free (path); }
static void message_changed_cb (GtrTab * tab, GtrMsg * msg, GtrMessageTable * table) { GtkTreePath *path; GtkTreeIter iter; if (!gtr_message_table_get_message_iter (GTR_MESSAGE_TABLE_MODEL (table->priv->store), msg, &iter)) return; path = gtk_tree_model_get_path (GTK_TREE_MODEL (table->priv->store), &iter); gtr_message_table_model_update_row (GTR_MESSAGE_TABLE_MODEL (table->priv->store), path); gtk_tree_path_free (path); }