From 826751429b40deddfce3479fa3861d0d5a042b6e Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Mon, 14 Jul 2014 16:45:48 -0400 Subject: [PATCH] wayland: Treat the size in the configure event as frame rect coordinates --- src/wayland/meta-wayland-surface.c | 1 + src/wayland/window-wayland.c | 10 +++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/wayland/meta-wayland-surface.c b/src/wayland/meta-wayland-surface.c index 9fdb64796..f01a42886 100644 --- a/src/wayland/meta-wayland-surface.c +++ b/src/wayland/meta-wayland-surface.c @@ -218,6 +218,7 @@ toplevel_surface_commit (MetaWaylandSurface *surface, MetaRectangle geom; calculate_surface_window_geometry (surface, &geom, 0, 0); + meta_window_client_rect_to_frame_rect (window, &geom, &geom); meta_window_wayland_move_resize (window, geom, pending->dx, pending->dy); } } diff --git a/src/wayland/window-wayland.c b/src/wayland/window-wayland.c index 7c80c24b1..5abbc54d8 100644 --- a/src/wayland/window-wayland.c +++ b/src/wayland/window-wayland.c @@ -174,6 +174,8 @@ meta_window_wayland_move_resize_internal (MetaWindow *window, if (flags & META_IS_WAYLAND_RESIZE) { + CoglTexture *texture; + /* This is a call to wl_surface_commit(), ignore the constrained_rect and * update the real client size to match the buffer size. */ @@ -182,8 +184,9 @@ meta_window_wayland_move_resize_internal (MetaWindow *window, window->rect.width = unconstrained_rect.width; window->rect.height = unconstrained_rect.height; - window->buffer_rect.width = unconstrained_rect.width; - window->buffer_rect.height = unconstrained_rect.height; + texture = window->surface->buffer->texture; + window->buffer_rect.width = cogl_texture_get_width (texture); + window->buffer_rect.height = cogl_texture_get_height (texture); /* This is a commit of an attach. We should move the window to match the * new position the client wants. */ @@ -365,7 +368,8 @@ meta_window_wayland_move_resize (MetaWindow *window, } else { - meta_window_get_frame_rect (window, &rect); + rect.x = window->rect.x; + rect.y = window->rect.y; } if (dx != 0 || dy != 0)