This is a fix to the following bug https://bugs.freedesktop.org/show_bug.cgi?id=80228
Signed-off-by: vivek <[email protected]> --- desktop-shell/shell.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c index 48b9faf..01fbb22 100644 --- a/desktop-shell/shell.c +++ b/desktop-shell/shell.c @@ -1696,6 +1696,7 @@ resize_grab_motion(struct weston_pointer_grab *grab, uint32_t time, struct weston_pointer *pointer = grab->pointer; struct shell_surface *shsurf = resize->base.shsurf; int32_t width, height; + int32_t new_y, panel_height, draw_flag = 1; wl_fixed_t from_x, from_y; wl_fixed_t to_x, to_y; @@ -1719,12 +1720,22 @@ resize_grab_motion(struct weston_pointer_grab *grab, uint32_t time, height = resize->height; if (resize->edges & WL_SHELL_SURFACE_RESIZE_TOP) { - height += wl_fixed_to_int(from_y - to_y); + new_y = wl_fixed_to_int(pointer->y); + panel_height = get_output_panel_height(shsurf->shell, + shsurf->surface->output); + if (new_y < panel_height) { + height += 0; + draw_flag = 0; + } + else { + height += wl_fixed_to_int(from_y - to_y); + } } else if (resize->edges & WL_SHELL_SURFACE_RESIZE_BOTTOM) { height += wl_fixed_to_int(to_y - from_y); } - shsurf->client->send_configure(shsurf->surface, width, height); + if (draw_flag == 1) + shsurf->client->send_configure(shsurf->surface, width, height); } static void -- 1.9.1 _______________________________________________ wayland-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-devel
