Fix background area calculation in RTL mode

This commit is contained in:
Kristian Rietveld 2010-12-16 12:26:18 +01:00
parent a28c11a27f
commit c01ad6f615

View File

@ -1148,13 +1148,29 @@ gtk_cell_area_box_foreach_alloc (GtkCellArea *area,
{
if (l == allocated_cells)
{
cell_background.width += cell_background.x - background_area->x;
cell_background.x = background_area->x;
/* Add the depth to the first cell */
if (rtl)
{
cell_background.width += background_area->width - cell_area->width;
cell_background.x = background_area->x + background_area->width - cell_background.width;
}
else
{
cell_background.width += cell_area->x - background_area->x;
cell_background.x = background_area->x;
}
}
if (l->next == NULL)
cell_background.width =
background_area->width - (cell_background.x - background_area->x);
{
/* Grant this cell the remaining space */
int remain = cell_background.x - background_area->x;
if (rtl)
cell_background.x -= remain;
else
cell_background.width = background_area->width - remain;
}
cell_background.y = background_area->y;
cell_background.height = background_area->height;