summaryrefslogtreecommitdiff
path: root/gtk/gtktreeviewcolumn.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2005-10-26 04:23:46 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2005-10-26 04:23:46 +0000
commit15f5226ed6a9d61fbb1de592fc0d4ef2a600c171 (patch)
tree8163fdab84ab15b170aec354ee0ddeb3c2f5f245 /gtk/gtktreeviewcolumn.c
parentb8bc9a3ed391dcc999ae7e0adb96d52c8ddea57a (diff)
downloadgtk+-15f5226ed6a9d61fbb1de592fc0d4ef2a600c171.tar.gz
Fix some issues with background drawing in RTL. (#318781, Eric Cazeaux)
2005-10-25 Matthias Clasen <mclasen@redhat.com> * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action): Fix some issues with background drawing in RTL. (#318781, Eric Cazeaux)
Diffstat (limited to 'gtk/gtktreeviewcolumn.c')
-rw-r--r--gtk/gtktreeviewcolumn.c22
1 files changed, 19 insertions, 3 deletions
diff --git a/gtk/gtktreeviewcolumn.c b/gtk/gtktreeviewcolumn.c
index c1867a7abb..31d57b278e 100644
--- a/gtk/gtktreeviewcolumn.c
+++ b/gtk/gtktreeviewcolumn.c
@@ -2706,7 +2706,11 @@ gtk_tree_view_column_cell_process_action (GtkTreeViewColumn *tree_column,
real_cell_area = *cell_area;
real_background_area = *background_area;
- depth = real_cell_area.x - real_background_area.x - horizontal_separator/2;
+
+ if (rtl)
+ depth = real_background_area.width - real_cell_area.width - horizontal_separator/2;
+ else
+ depth = real_cell_area.x - real_background_area.x - horizontal_separator/2;
real_cell_area.x += focus_line_width;
real_cell_area.y += focus_line_width;
@@ -2761,7 +2765,16 @@ gtk_tree_view_column_cell_process_action (GtkTreeViewColumn *tree_column,
real_cell_area.width = info->real_width;
real_cell_area.width -= 2 * focus_line_width;
- real_background_area.width = info->real_width + horizontal_separator + depth;
+
+ if (list->next)
+ {
+ real_background_area.width = info->real_width + horizontal_separator + depth ;
+ }
+ else
+ {
+ /* fill the rest of background for the last cell */
+ real_background_area.width = background_area->x + background_area->width - real_background_area.x;
+ }
rtl_cell_area = real_cell_area;
rtl_background_area = real_background_area;
@@ -2893,7 +2906,10 @@ gtk_tree_view_column_cell_process_action (GtkTreeViewColumn *tree_column,
flags &= ~GTK_CELL_RENDERER_FOCUSED;
real_cell_area.x += (real_cell_area.width + tree_column->spacing);
- real_background_area.x += (real_background_area.width + tree_column->spacing);
+ real_background_area.x += (real_background_area.width + tree_column->spacing - (2 * focus_line_width ));
+
+ /* Only needed for first cell */
+ depth=0;
}
/* iterate list for PACK_END cells */