From 4e07236e8702ff22e2398214a15f7d1e7561caf6 Mon Sep 17 00:00:00 2001 From: Scott Moreau Date: Sat, 29 Sep 2012 02:03:11 -0600 Subject: [PATCH] toytoolkit: Take into account transform when sending output allocation. --- clients/window.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/clients/window.c b/clients/window.c index 1529dac1..b19c579d 100644 --- a/clients/window.c +++ b/clients/window.c @@ -238,6 +238,7 @@ struct output { struct wl_output *output; struct rectangle allocation; struct wl_list link; + int transform; display_output_handler_t destroy_handler; void *user_data; @@ -3454,6 +3455,7 @@ display_handle_geometry(void *data, output->allocation.x = x; output->allocation.y = y; + output->transform = transform; } static void @@ -3546,9 +3548,22 @@ output_set_destroy_handler(struct output *output, } void -output_get_allocation(struct output *output, struct rectangle *allocation) +output_get_allocation(struct output *output, struct rectangle *base) { - *allocation = output->allocation; + struct rectangle allocation = output->allocation; + + switch (output->transform) { + case WL_OUTPUT_TRANSFORM_90: + case WL_OUTPUT_TRANSFORM_270: + case WL_OUTPUT_TRANSFORM_FLIPPED_90: + case WL_OUTPUT_TRANSFORM_FLIPPED_270: + /* Swap width and height */ + allocation.width = output->allocation.height; + allocation.height = output->allocation.width; + break; + } + + *base = allocation; } struct wl_output *