+2009-02-25 Li Yuan <li.yuan@sun.com>
+
+ * gailtreeview.c: (is_cell_showing):
+ Bug #571001. Set the cell's showing state based on bin_window
+ coordinates.
+
2009-02-17 Matthias Clasen <mclasen@redhat.com>
* === Released 2.15.4 ===
{
GdkRectangle rect, *visible_rect;
GdkRectangle rect1, *tree_cell_rect;
+ gint bx, by;
gboolean is_showing;
/*
* A cell is considered "SHOWING" if any part of the cell is in the visible
visible_rect = ▭
tree_cell_rect = &rect1;
tree_cell_rect->x = cell_rect->x;
+ tree_cell_rect->y = cell_rect->y;
tree_cell_rect->width = cell_rect->width;
tree_cell_rect->height = cell_rect->height;
gtk_tree_view_get_visible_rect (tree_view, visible_rect);
- gtk_tree_view_convert_widget_to_bin_window_coords (tree_view,
- cell_rect->x, cell_rect->y,
- NULL, &(rect1.y));
-
- if (((tree_cell_rect->x + tree_cell_rect->width) < visible_rect->x) ||
- ((tree_cell_rect->y + tree_cell_rect->height) < (visible_rect->y)) ||
- (tree_cell_rect->x > (visible_rect->x + visible_rect->width)) ||
- (tree_cell_rect->y > (visible_rect->y + visible_rect->height)))
+ gtk_tree_view_convert_tree_to_bin_window_coords (tree_view, visible_rect->x,
+ visible_rect->y, &bx, &by);
+
+ if (((tree_cell_rect->x + tree_cell_rect->width) < bx) ||
+ ((tree_cell_rect->y + tree_cell_rect->height) < by) ||
+ (tree_cell_rect->x > (bx + visible_rect->width)) ||
+ (tree_cell_rect->y > (by + visible_rect->height)))
is_showing = FALSE;
else
is_showing = TRUE;