Remove the weird dx logic, get all cell_area and background_area

Mon Jun  9 21:01:16 2003  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action):
	Remove the weird dx logic, get all cell_area and background_area
	calculations right. Not sure what was up with it before. (Fixes
	#110989, testcase from Vasco Alexandre da Silva Costa).

	* NEWS: Updated for this bug.
This commit is contained in:
Kristian Rietveld
2003-06-09 19:04:47 +00:00
committed by Kristian Rietveld
parent 378a7488fb
commit 7ac4f264a7
7 changed files with 62 additions and 15 deletions

View File

@@ -1,3 +1,12 @@
Mon Jun 9 21:01:16 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action):
Remove the weird dx logic, get all cell_area and background_area
calculations right. Not sure what was up with it before. (Fixes
#110989, testcase from Vasco Alexandre da Silva Costa).
* NEWS: Updated for this bug.
Sun Jun 8 23:43:47 2003 Owen Taylor <otaylor@redhat.com>
* NEWS: Updated.

View File

@@ -1,3 +1,12 @@
Mon Jun 9 21:01:16 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action):
Remove the weird dx logic, get all cell_area and background_area
calculations right. Not sure what was up with it before. (Fixes
#110989, testcase from Vasco Alexandre da Silva Costa).
* NEWS: Updated for this bug.
Sun Jun 8 23:43:47 2003 Owen Taylor <otaylor@redhat.com>
* NEWS: Updated.

View File

@@ -1,3 +1,12 @@
Mon Jun 9 21:01:16 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action):
Remove the weird dx logic, get all cell_area and background_area
calculations right. Not sure what was up with it before. (Fixes
#110989, testcase from Vasco Alexandre da Silva Costa).
* NEWS: Updated for this bug.
Sun Jun 8 23:43:47 2003 Owen Taylor <otaylor@redhat.com>
* NEWS: Updated.

View File

@@ -1,3 +1,12 @@
Mon Jun 9 21:01:16 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action):
Remove the weird dx logic, get all cell_area and background_area
calculations right. Not sure what was up with it before. (Fixes
#110989, testcase from Vasco Alexandre da Silva Costa).
* NEWS: Updated for this bug.
Sun Jun 8 23:43:47 2003 Owen Taylor <otaylor@redhat.com>
* NEWS: Updated.

View File

@@ -1,3 +1,12 @@
Mon Jun 9 21:01:16 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action):
Remove the weird dx logic, get all cell_area and background_area
calculations right. Not sure what was up with it before. (Fixes
#110989, testcase from Vasco Alexandre da Silva Costa).
* NEWS: Updated for this bug.
Sun Jun 8 23:43:47 2003 Owen Taylor <otaylor@redhat.com>
* NEWS: Updated.

2
NEWS
View File

@@ -43,6 +43,8 @@ Overview of Changes in GTK+ 2.2.2
- Fix prelighting [Sven Neumann]
- Set drag cursor earlier to allow apps to override [Daniel Elstner]
- Speed up insertions into GtkTreeModelSort [Owen, Jonathan Blandford]
- Get background/cell area handling right in GtkTreeViewColumn [Vasco
Alexandre da Silva Costa]
- Bug fixes [Benjamin Bayart, Jonathan Blandford, Peter Bloomfield,
Dave Cook, Felipe Heidrich, Richard Hult, Markus Lausser, Michael Natterer,
Mariano Suarez-Alvarez, Owen]

View File

@@ -2412,8 +2412,8 @@ gtk_tree_view_column_cell_process_action (GtkTreeViewColumn *tree_column,
gint extra_space;
gint min_x, min_y, max_x, max_y;
gint focus_line_width;
gint dx;
gint special_cells;
gint horizontal_separator;
gboolean cursor_row = FALSE;
min_x = G_MAXINT;
@@ -2451,11 +2451,11 @@ gtk_tree_view_column_cell_process_action (GtkTreeViewColumn *tree_column,
gtk_widget_style_get (GTK_WIDGET (tree_column->tree_view),
"focus-line-width", &focus_line_width,
"horizontal-separator", &horizontal_separator,
NULL);
real_cell_area = *cell_area;
real_background_area = *background_area;
dx = real_cell_area.x - real_background_area.x - focus_line_width;
real_cell_area.x += focus_line_width;
@@ -2472,7 +2472,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 - dx;
extra_space = cell_area->width + horizontal_separator - full_requested_width;
if (extra_space < 0)
extra_space = 0;
else if (extra_space > 0 && expand_cell_count > 0)
@@ -2494,11 +2494,11 @@ gtk_tree_view_column_cell_process_action (GtkTreeViewColumn *tree_column,
else
flags &= ~GTK_CELL_RENDERER_FOCUSED;
real_background_area.width = info->requested_width +
(info->expand?extra_space:0);
info->real_width = real_background_area.width;
info->real_width = info->requested_width + (info->expand?extra_space:0);
real_cell_area.width = real_background_area.width;
real_cell_area.width = info->real_width;
real_background_area.width=
real_cell_area.x + real_cell_area.width - real_background_area.x;
real_cell_area.width -= 2 * focus_line_width;
if (action == CELL_ACTION_RENDER)
@@ -2617,8 +2617,8 @@ gtk_tree_view_column_cell_process_action (GtkTreeViewColumn *tree_column,
flags &= ~GTK_CELL_RENDERER_FOCUSED;
real_cell_area.x += (info->real_width + tree_column->spacing);
real_background_area.x += (info->real_width + tree_column->spacing);
real_cell_area.x += (real_cell_area.width + tree_column->spacing);
real_background_area.x += (real_background_area.width + tree_column->spacing);
}
/* iterate list for PACK_END cells */
@@ -2637,11 +2637,11 @@ gtk_tree_view_column_cell_process_action (GtkTreeViewColumn *tree_column,
else
flags &= ~GTK_CELL_RENDERER_FOCUSED;
real_background_area.width = info->requested_width +
(info->expand?extra_space:0);
info->real_width = real_background_area.width;
info->real_width = info->requested_width + (info->expand?extra_space:0);
real_cell_area.width = real_background_area.width;
real_cell_area.width = info->real_width;
real_background_area.width =
real_cell_area.x + real_cell_area.width - real_background_area.x;
real_cell_area.width -= 2 * focus_line_width;
if (action == CELL_ACTION_RENDER)
@@ -2759,8 +2759,8 @@ gtk_tree_view_column_cell_process_action (GtkTreeViewColumn *tree_column,
flags &= ~GTK_CELL_RENDERER_FOCUSED;
real_cell_area.x += (info->real_width + tree_column->spacing);
real_background_area.x += (info->real_width + tree_column->spacing);
real_cell_area.x += (real_cell_area.width + tree_column->spacing);
real_background_area.x += (real_background_area.width + tree_column->spacing);
}
/* fill focus_rectangle when required */