get_output_work_area() now returns the absolute work area including the
output's offset.

This will make math a little simpler later when we use it to constrain
window moves.

Signed-off-by: Derek Foreman <der...@osg.samsung.com>
---
 desktop-shell/shell.c | 22 +++++++++-------------
 1 file changed, 9 insertions(+), 13 deletions(-)

diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
index 96aa8f3..204068c 100644
--- a/desktop-shell/shell.c
+++ b/desktop-shell/shell.c
@@ -442,21 +442,20 @@ get_output_work_area(struct desktop_shell *shell,
 {
        int32_t panel_width = 0, panel_height = 0;
 
-       area->x = 0;
-       area->y = 0;
+       area->x = output->x;
+       area->y = output->y;
 
        get_output_panel_size(shell, output, &panel_width, &panel_height);
-
        switch (shell->panel_position) {
        case DESKTOP_SHELL_PANEL_POSITION_TOP:
        default:
-               area->y = panel_height;
+               area->y += panel_height;
        case DESKTOP_SHELL_PANEL_POSITION_BOTTOM:
                area->width = output->width;
                area->height = output->height - panel_height;
                break;
        case DESKTOP_SHELL_PANEL_POSITION_LEFT:
-               area->x = panel_width;
+               area->x += panel_width;
        case DESKTOP_SHELL_PANEL_POSITION_RIGHT:
                area->width = output->width - panel_width;
                area->height = output->height;
@@ -5417,7 +5416,7 @@ weston_view_set_initial_position(struct weston_view *view,
        struct weston_compositor *compositor = shell->compositor;
        int ix = 0, iy = 0;
        int32_t range_x, range_y;
-       int32_t dx, dy, x, y;
+       int32_t x, y;
        struct weston_output *output, *target_output = NULL;
        struct weston_seat *seat;
        pixman_rectangle32_t area;
@@ -5454,19 +5453,16 @@ weston_view_set_initial_position(struct weston_view 
*view,
         */
        get_output_work_area(shell, target_output, &area);
 
-       dx = area.x;
-       dy = area.y;
+       x = area.x;
+       y = area.y;
        range_x = area.width - view->surface->width;
        range_y = area.height - view->surface->height;
 
        if (range_x > 0)
-               dx += random() % range_x;
+               x += random() % range_x;
 
        if (range_y > 0)
-               dy += random() % range_y;
-
-       x = target_output->x + dx;
-       y = target_output->y + dy;
+               y += random() % range_y;
 
        weston_view_set_position(view, x, y);
 }
-- 
2.1.4

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to