aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/table/e-table-item.c
diff options
context:
space:
mode:
authorChristopher James Lahey <clahey@ximian.com>2002-06-04 05:54:37 +0800
committerChris Lahey <clahey@src.gnome.org>2002-06-04 05:54:37 +0800
commitccc7bafebeb202b0f7f7f19b23f76a2105bf2068 (patch)
tree25996cd7397728c97ebbc6113ac947a8ab66059a /widgets/table/e-table-item.c
parentbf0fa9c240d89229fb33f5a02e0360e248d83f7b (diff)
downloadgsoc2013-evolution-ccc7bafebeb202b0f7f7f19b23f76a2105bf2068.tar.gz
gsoc2013-evolution-ccc7bafebeb202b0f7f7f19b23f76a2105bf2068.tar.zst
gsoc2013-evolution-ccc7bafebeb202b0f7f7f19b23f76a2105bf2068.zip
Get the font from the style again when the style changes. (init): Checks
2002-06-03 Christopher James Lahey <clahey@ximian.com> * e-cell-text.c (ect_style_set): Get the font from the style again when the style changes. (init): Checks for the environment variable GAL_ELLIPSIS and uses that instead of ... if it is set. * e-table-click-to-add.c (finish_editing): e_table_item_leave_edit before committing. (etcta_event): Added a missing break; here. * e-table-item.c (eti_style_set): On style set, free the height cache, request a reflow and a redraw, and call eti_idle_maybe_show_cursor. (e_table_item_compute_location): Don't call eti_get_height here, just use the cached value. * e-tree.c, e-tree.h (e_tree_get_table_adapter): Added this simple accessor function. svn path=/trunk/; revision=17088
Diffstat (limited to 'widgets/table/e-table-item.c')
-rw-r--r--widgets/table/e-table-item.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/widgets/table/e-table-item.c b/widgets/table/e-table-item.c
index 80b557251a..cffe146622 100644
--- a/widgets/table/e-table-item.c
+++ b/widgets/table/e-table-item.c
@@ -2779,6 +2779,9 @@ eti_event (GnomeCanvasItem *item, GdkEvent *e)
static void
eti_style_set (ETableItem *eti, GtkStyle *previous_style)
{
+ if (!(GTK_OBJECT_FLAGS(eti) & GNOME_CANVAS_ITEM_REALIZED))
+ return;
+
if (eti->cell_views_realized) {
int i;
int n_cells = eti->n_cells;
@@ -2787,6 +2790,15 @@ eti_style_set (ETableItem *eti, GtkStyle *previous_style)
e_cell_style_set (eti->cell_views[i], previous_style);
}
}
+
+ eti->needs_compute_height = 1;
+ e_canvas_item_request_reflow (GNOME_CANVAS_ITEM (eti));
+ eti->needs_redraw = 1;
+ gnome_canvas_item_request_update (GNOME_CANVAS_ITEM (eti));
+
+ free_height_cache (eti);
+
+ eti_idle_maybe_show_cursor(eti);
}
static void
@@ -3173,7 +3185,7 @@ e_table_item_compute_location (ETableItem *eti,
eti->grabbed_row = -1;
if (!find_cell (eti, *x, *y, col, row, NULL, NULL)) {
- *y -= eti_get_height(eti);
+ *y -= eti->height;
}
eti->grabbed_row = grabbed_row;