diff options
Diffstat (limited to 'widgets/table/e-table-item.c')
-rw-r--r-- | widgets/table/e-table-item.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/widgets/table/e-table-item.c b/widgets/table/e-table-item.c index 9f6ba38709..a3201aa533 100644 --- a/widgets/table/e-table-item.c +++ b/widgets/table/e-table-item.c @@ -1664,10 +1664,20 @@ static const char gray50_bits[] = { static void adjustment_changed (GtkAdjustment *adjustment, ETableItem *eti) { + /* FIXME: It is the ugliest of hack to set the focus to scroll. Fix this up when moving away from e-tree */ + if (g_object_get_data ((GObject *) ((GnomeCanvasItem *) eti)->canvas, "freeze-cursor")) + eti_maybe_show_cursor (eti, 0); + eti_check_cursor_on_screen (eti); } static void +eti_tree_unfreeze (GtkWidget *widget, GdkEvent *event, ETableItem *eti) +{ + g_object_set_data (((GnomeCanvasItem *) eti)->canvas, "freeze-cursor", 0); +} + +static void eti_realize (GnomeCanvasItem *item) { ETableItem *eti = E_TABLE_ITEM (item); @@ -1710,6 +1720,8 @@ eti_realize (GnomeCanvasItem *item) g_signal_connect (gtk_layout_get_vadjustment(GTK_LAYOUT(item->canvas)), "value_changed", G_CALLBACK (adjustment_changed), eti); + g_signal_connect (GTK_LAYOUT(item->canvas), "scroll_event", G_CALLBACK (eti_tree_unfreeze), eti); + if (eti->cell_views == NULL) eti_attach_cell_views (eti); |