aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy-gtk
diff options
context:
space:
mode:
authorDanielle Madeley <danielle.madeley@collabora.co.uk>2011-08-16 11:55:56 +0800
committerDanielle Madeley <danielle.madeley@collabora.co.uk>2011-08-16 11:55:56 +0800
commit9d1f95bebe28683a23f56568539ee2c56655b80c (patch)
treed13df2a6b96485442567433aebddcd012218120d /libempathy-gtk
parent6cf57d879945059cd974a3ee6d02d81edff47438 (diff)
downloadgsoc2013-empathy-9d1f95bebe28683a23f56568539ee2c56655b80c.tar
gsoc2013-empathy-9d1f95bebe28683a23f56568539ee2c56655b80c.tar.gz
gsoc2013-empathy-9d1f95bebe28683a23f56568539ee2c56655b80c.tar.bz2
gsoc2013-empathy-9d1f95bebe28683a23f56568539ee2c56655b80c.tar.lz
gsoc2013-empathy-9d1f95bebe28683a23f56568539ee2c56655b80c.tar.xz
gsoc2013-empathy-9d1f95bebe28683a23f56568539ee2c56655b80c.tar.zst
gsoc2013-empathy-9d1f95bebe28683a23f56568539ee2c56655b80c.zip
Reimplement scrollToRow
N.B. This has not been properly tested, because I'm not actually sure how to exhaust this codepath.
Diffstat (limited to 'libempathy-gtk')
-rw-r--r--libempathy-gtk/empathy-log-window.c37
1 files changed, 23 insertions, 14 deletions
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);