[clutter] grid: Use the proper orientation for the request mode
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [clutter] grid: Use the proper orientation for the request mode
- Date: Thu, 3 Sep 2015 13:19:45 +0000 (UTC)
commit 7ed96aabd8c3703f5b0572ee7f000821a25d019d
Author: Emmanuele Bassi <ebassi gnome org>
Date: Thu Sep 3 14:15:11 2015 +0100
grid: Use the proper orientation for the request mode
We automatically switch the request mode of the container depending on
the GridLayout's orientation, but we need to keep track of the request
mode during allocation, so that we don't get out of sync if the user
changed the request mode after adding the layout manager.
This change also brings us closer to the code in GtkGrid.
clutter/clutter-grid-layout.c | 16 +++++++++++-----
1 files changed, 11 insertions(+), 5 deletions(-)
---
diff --git a/clutter/clutter-grid-layout.c b/clutter/clutter-grid-layout.c
index ad03203..f39e58d 100644
--- a/clutter/clutter-grid-layout.c
+++ b/clutter/clutter-grid-layout.c
@@ -1397,7 +1397,7 @@ clutter_grid_layout_allocate (ClutterLayoutManager *layout,
ClutterAllocationFlags flags)
{
ClutterGridLayout *self = CLUTTER_GRID_LAYOUT (layout);
- ClutterGridLayoutPrivate *priv = self->priv;
+ ClutterOrientation orientation;
ClutterGridRequest request;
ClutterGridLines *lines;
ClutterActorIter iter;
@@ -1414,10 +1414,16 @@ clutter_grid_layout_allocate (ClutterLayoutManager *layout,
lines->lines = g_newa (ClutterGridLine, lines->max - lines->min);
memset (lines->lines, 0, (lines->max - lines->min) * sizeof (ClutterGridLine));
- clutter_grid_request_run (&request, 1 - priv->orientation, FALSE);
- clutter_grid_request_allocate (&request, 1 - priv->orientation, GET_SIZE (allocation, 1 -
priv->orientation));
- clutter_grid_request_run (&request, priv->orientation, TRUE);
- clutter_grid_request_allocate (&request, priv->orientation, GET_SIZE (allocation, priv->orientation));
+ if (clutter_actor_get_request_mode (CLUTTER_ACTOR (container)) == CLUTTER_REQUEST_WIDTH_FOR_HEIGHT)
+ orientation = CLUTTER_ORIENTATION_HORIZONTAL;
+ else
+ orientation = CLUTTER_ORIENTATION_VERTICAL;
+
+ clutter_grid_request_run (&request, 1 - orientation, FALSE);
+ clutter_grid_request_allocate (&request, 1 - orientation, GET_SIZE (allocation, 1 - orientation));
+ clutter_grid_request_run (&request, orientation, TRUE);
+
+ clutter_grid_request_allocate (&request, orientation, GET_SIZE (allocation, orientation));
clutter_grid_request_position (&request, 0);
clutter_grid_request_position (&request, 1);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]