summaryrefslogtreecommitdiff
path: root/gtk/gtktreeviewcolumn.c
diff options
context:
space:
mode:
authorKristian Rietveld <kris@gtk.org>2003-01-30 22:42:21 +0000
committerKristian Rietveld <kristian@src.gnome.org>2003-01-30 22:42:21 +0000
commit2fb74b135baeeb7b2363e099d61ac953c1467404 (patch)
tree08dafad02157fdcff0703a996dc258dc3effed1f /gtk/gtktreeviewcolumn.c
parente9cefbccec8ba913e118f519d7e20c8b3307d389 (diff)
downloadgtk+-2fb74b135baeeb7b2363e099d61ac953c1467404.tar.gz
only count the special cell if it is also visible,
Thu Jan 30 23:48:30 2003 Kristian Rietveld <kris@gtk.org> * gtk/gtktreeviewcolumn.c (_gtk_tree_view_column_count_special_cell): only count the special cell if it is also visible, (_gtk_tree_view_column_get_neighbor_sizes): only take the width into account from visible cells, (gtk_tree_view_column_cell_get_position): likewise, (Reported and testcase provided by Vasco Alexandre da Silva Costa, via IRC, tracking bug was #104563). Thu Jan 30 23:46:15 2003 Kristian Rietveld <kris@gtk.org> * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action): subtract expander space and focus line space from the extra space we are about the allocate. (Fixes #104635). Thu Jan 30 23:42:03 2003 Kristian Rietveld <kris@gtk.org> * gtk/gtkstyle.c (apply_affine_on_point): fix rouding error (Fixes #96252, patch from Soeren Sandmann).
Diffstat (limited to 'gtk/gtktreeviewcolumn.c')
-rw-r--r--gtk/gtktreeviewcolumn.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/gtk/gtktreeviewcolumn.c b/gtk/gtktreeviewcolumn.c
index 423b77e68e..278b6b8a93 100644
--- a/gtk/gtktreeviewcolumn.c
+++ b/gtk/gtktreeviewcolumn.c
@@ -1103,8 +1103,9 @@ _gtk_tree_view_column_count_special_cells (GtkTreeViewColumn *column)
{
GtkTreeViewColumnCellInfo *cellinfo = list->data;
- if (cellinfo->cell->mode == GTK_CELL_RENDERER_MODE_EDITABLE ||
- cellinfo->cell->mode == GTK_CELL_RENDERER_MODE_ACTIVATABLE)
+ if ((cellinfo->cell->mode == GTK_CELL_RENDERER_MODE_EDITABLE ||
+ cellinfo->cell->mode == GTK_CELL_RENDERER_MODE_ACTIVATABLE) &&
+ cellinfo->cell->visible)
i++;
}
@@ -2468,7 +2469,7 @@ gtk_tree_view_column_cell_process_action (GtkTreeViewColumn *tree_column,
full_requested_width += info->requested_width;
}
- extra_space = background_area->width - full_requested_width;
+ extra_space = background_area->width - full_requested_width - dx;
if (extra_space < 0)
extra_space = 0;
else if (extra_space > 0 && expand_cell_count > 0)
@@ -3256,7 +3257,8 @@ _gtk_tree_view_column_get_neighbor_sizes (GtkTreeViewColumn *column,
if (info->cell == cell)
break;
- *left += info->real_width;
+ if (info->cell->visible)
+ *left += info->real_width;
}
}
@@ -3286,7 +3288,8 @@ _gtk_tree_view_column_get_neighbor_sizes (GtkTreeViewColumn *column,
GtkTreeViewColumnCellInfo *info =
(GtkTreeViewColumnCellInfo *)list->data;
- *right += info->real_width;
+ if (info->cell->visible)
+ *right += info->real_width;
}
}
}
@@ -3312,7 +3315,9 @@ gtk_tree_view_column_cell_get_position (GtkTreeViewColumn *tree_column,
found_cell = TRUE;
break;
}
- current_x += cellinfo->real_width;
+
+ if (cellinfo->cell->visible)
+ current_x += cellinfo->real_width;
}
if (found_cell)