From 9d1f95bebe28683a23f56568539ee2c56655b80c Mon Sep 17 00:00:00 2001 From: Danielle Madeley Date: Tue, 16 Aug 2011 13:55:56 +1000 Subject: Reimplement scrollToRow N.B. This has not been properly tested, because I'm not actually sure how to exhaust this codepath. --- libempathy-gtk/empathy-log-window.c | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) (limited to 'libempathy-gtk') diff --git a/libempathy-gtk/empathy-log-window.c b/libempathy-gtk/empathy-log-window.c index ac05740cf..b4501af57 100644 --- a/libempathy-gtk/empathy-log-window.c +++ b/libempathy-gtk/empathy-log-window.c @@ -3049,13 +3049,12 @@ log_window_got_messages_for_date_cb (GObject *manager, gpointer user_data) { Ctx *ctx = user_data; - // GtkTreeView *view; - // GtkTreeModel *model; - // GtkTreeIter iter; + GtkTreeModel *model; + GtkTreeIter iter; GList *events; GList *l; GError *error = NULL; - // gint n; + gint n; if (log_window == NULL) { @@ -3129,18 +3128,28 @@ log_window_got_messages_for_date_cb (GObject *manager, } g_list_free (events); - // view = GTK_TREE_VIEW (log_window->priv->treeview_events); - // model = gtk_tree_view_get_model (view); - // n = gtk_tree_model_iter_n_children (model, NULL) - 1; + model = GTK_TREE_MODEL (log_window->priv->store_events); + n = gtk_tree_model_iter_n_children (model, NULL) - 1; + + if (n >= 0 && gtk_tree_model_iter_nth_child (model, &iter, NULL, n)) + { + GtkTreePath *path; + char *str, *script; + + path = gtk_tree_model_get_path (model, &iter); + str = gtk_tree_path_to_string (path); - // if (n >= 0 && gtk_tree_model_iter_nth_child (model, &iter, NULL, n)) - // { - // GtkTreePath *path; + script = g_strdup_printf ("javascript:scrollToRow([%s]);", + g_strdelimit (str, ":", ',')); - // path = gtk_tree_model_get_path (model, &iter); - // gtk_tree_view_scroll_to_cell (view, path, NULL, FALSE, 0, 0); - // gtk_tree_path_free (path); - // } + webkit_web_view_execute_script ( + WEBKIT_WEB_VIEW (log_window->priv->webview), + script); + + gtk_tree_path_free (path); + g_free (str); + g_free (script); + } out: ctx_free (ctx); -- cgit v1.2.3