[evolution/gnome-3-18] Bug 677862 - Delete of multiple messages can keep cursor out of view



commit 00cf82a17e33fbd405b864a871eb810c23ceff6e
Author: Milan Crha <mcrha redhat com>
Date:   Mon Sep 21 16:26:42 2015 +0200

    Bug 677862 - Delete of multiple messages can keep cursor out of view

 e-util/e-table-item.c |   16 ++++++++++++++++
 e-util/e-table-item.h |    3 +++
 e-util/e-tree.c       |    2 ++
 3 files changed, 21 insertions(+), 0 deletions(-)
---
diff --git a/e-util/e-table-item.c b/e-util/e-table-item.c
index 5ff9b48..6c5eae1 100644
--- a/e-util/e-table-item.c
+++ b/e-util/e-table-item.c
@@ -4102,3 +4102,19 @@ e_table_item_cursor_scrolled (ETableItem *eti)
 
        eti_check_cursor_bounds (eti);
 }
+
+void
+e_table_item_cancel_scroll_to_cursor (ETableItem *eti)
+{
+       ETableItemPrivate *priv;
+
+       g_return_if_fail (E_IS_TABLE_ITEM (eti));
+
+       priv = E_TABLE_ITEM_GET_PRIVATE (eti);
+
+       if (priv->show_cursor_delay_source) {
+               g_source_destroy (priv->show_cursor_delay_source);
+               g_source_unref (priv->show_cursor_delay_source);
+               priv->show_cursor_delay_source = NULL;
+       }
+}
diff --git a/e-util/e-table-item.h b/e-util/e-table-item.h
index 5fc9346..2ed1f9e 100644
--- a/e-util/e-table-item.h
+++ b/e-util/e-table-item.h
@@ -258,6 +258,9 @@ gboolean    e_table_item_is_editing         (ETableItem *eti);
 
 void           e_table_item_cursor_scrolled    (ETableItem *eti);
 
+void           e_table_item_cancel_scroll_to_cursor
+                                               (ETableItem *eti);
+
 void           e_table_item_freeze             (ETableItem *eti);
 void           e_table_item_thaw               (ETableItem *eti);
 
diff --git a/e-util/e-tree.c b/e-util/e-tree.c
index a525513..8ff1bb3 100644
--- a/e-util/e-tree.c
+++ b/e-util/e-tree.c
@@ -810,6 +810,8 @@ scroll_to_cursor (ETree *tree)
                                &row, &col, &x, &y, &w, &h);
        }
 
+       e_table_item_cancel_scroll_to_cursor (E_TABLE_ITEM (tree->priv->item));
+
        scrollable = GTK_SCROLLABLE (tree->priv->table_canvas);
        adjustment = gtk_scrollable_get_vadjustment (scrollable);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]