shell: Respect output transformation for input panel surface
authorRob Bradford <rob@linux.intel.com>
Thu, 11 Jul 2013 12:20:53 +0000 (13:20 +0100)
committerKristian Høgsberg <krh@bitplanet.net>
Sat, 13 Jul 2013 03:56:18 +0000 (23:56 -0400)
Rather than using the dimensions in the mode we can use the recently
added output width and height members which are updated to reflect any
output rotation.

https://bugs.freedesktop.org/show_bug.cgi?id=66798

src/shell.c

index 69345b0..7e98831 100644 (file)
@@ -3732,7 +3732,6 @@ input_panel_configure(struct weston_surface *surface, int32_t sx, int32_t sy, in
 {
        struct input_panel_surface *ip_surface = surface->configure_private;
        struct desktop_shell *shell = ip_surface->shell;
-       struct weston_mode *mode;
        float x, y;
        uint32_t show_surface = 0;
 
@@ -3752,10 +3751,8 @@ input_panel_configure(struct weston_surface *surface, int32_t sx, int32_t sy, in
                x = shell->text_input.surface->geometry.x + shell->text_input.cursor_rectangle.x2;
                y = shell->text_input.surface->geometry.y + shell->text_input.cursor_rectangle.y2;
        } else {
-               mode = ip_surface->output->current;
-
-               x = ip_surface->output->x + (mode->width - width) / 2;
-               y = ip_surface->output->y + mode->height - height;
+               x = ip_surface->output->x + (ip_surface->output->width - width) / 2;
+               y = ip_surface->output->y + ip_surface->output->height - height;
        }
 
        weston_surface_configure(surface,