forked from AuroraMiddleware/gtk
listbase: Allocate gridview items properly on RTL
We need to flip the items.
This commit is contained in:
parent
147388e69a
commit
724c9361f3
@ -1334,7 +1334,7 @@ update_autoscroll (GtkListBase *self,
|
|||||||
/**
|
/**
|
||||||
* gtk_list_base_size_allocate_child:
|
* gtk_list_base_size_allocate_child:
|
||||||
* @self: The listbase
|
* @self: The listbase
|
||||||
* @child:
|
* @child: The child
|
||||||
* @x: top left coordinate in the across direction
|
* @x: top left coordinate in the across direction
|
||||||
* @y: top right coordinate in the along direction
|
* @y: top right coordinate in the along direction
|
||||||
* @width: size in the across direction
|
* @width: size in the across direction
|
||||||
@ -1356,26 +1356,41 @@ gtk_list_base_size_allocate_child (GtkListBase *self,
|
|||||||
|
|
||||||
if (gtk_list_base_get_orientation (GTK_LIST_BASE (self)) == GTK_ORIENTATION_VERTICAL)
|
if (gtk_list_base_get_orientation (GTK_LIST_BASE (self)) == GTK_ORIENTATION_VERTICAL)
|
||||||
{
|
{
|
||||||
child_allocation.x = x;
|
if (_gtk_widget_get_direction (GTK_WIDGET (self)) == GTK_TEXT_DIR_LTR)
|
||||||
child_allocation.y = y;
|
{
|
||||||
child_allocation.width = width;
|
child_allocation.x = x;
|
||||||
child_allocation.height = height;
|
child_allocation.y = y;
|
||||||
}
|
child_allocation.width = width;
|
||||||
else if (_gtk_widget_get_direction (GTK_WIDGET (self)) == GTK_TEXT_DIR_LTR)
|
child_allocation.height = height;
|
||||||
{
|
}
|
||||||
child_allocation.x = y;
|
else
|
||||||
child_allocation.y = x;
|
{
|
||||||
child_allocation.width = height;
|
int mirror_point = gtk_widget_get_width (GTK_WIDGET (self));
|
||||||
child_allocation.height = width;
|
|
||||||
|
child_allocation.x = mirror_point - x - width;
|
||||||
|
child_allocation.y = y;
|
||||||
|
child_allocation.width = width;
|
||||||
|
child_allocation.height = height;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int mirror_point = gtk_widget_get_width (GTK_WIDGET (self));
|
if (_gtk_widget_get_direction (GTK_WIDGET (self)) == GTK_TEXT_DIR_LTR)
|
||||||
|
{
|
||||||
|
child_allocation.x = y;
|
||||||
|
child_allocation.y = x;
|
||||||
|
child_allocation.width = height;
|
||||||
|
child_allocation.height = width;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int mirror_point = gtk_widget_get_width (GTK_WIDGET (self));
|
||||||
|
|
||||||
child_allocation.x = mirror_point - y - height;
|
child_allocation.x = mirror_point - y - height;
|
||||||
child_allocation.y = x;
|
child_allocation.y = x;
|
||||||
child_allocation.width = height;
|
child_allocation.width = height;
|
||||||
child_allocation.height = width;
|
child_allocation.height = width;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gtk_widget_size_allocate (child, &child_allocation, -1);
|
gtk_widget_size_allocate (child, &child_allocation, -1);
|
||||||
|
Loading…
Reference in New Issue
Block a user