From f4ef4b79f95db7b4e3071489a30cbc8f710ab4ce Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Mon, 5 May 2014 13:09:41 -0400 Subject: [PATCH] constraints: Size increments need to be applied to the client rect Not the frame rect. --- src/core/constraints.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/core/constraints.c b/src/core/constraints.c index e4e019b..df9c219 100644 --- a/src/core/constraints.c +++ b/src/core/constraints.c @@ -905,6 +905,7 @@ constrain_size_increments (MetaWindow *window, int new_width, new_height; gboolean constraint_already_satisfied; MetaRectangle *start_rect; + MetaRectangle client_rect; if (priority > PRIORITY_SIZE_HINTS_INCREMENTS) return TRUE; @@ -915,13 +916,15 @@ constrain_size_increments (MetaWindow *window, info->action_type == ACTION_MOVE) return TRUE; + meta_window_frame_rect_to_client_rect (window, &info->current, &client_rect); + /* Determine whether constraint is already satisfied; exit if it is */ bh = window->size_hints.base_height; hi = window->size_hints.height_inc; bw = window->size_hints.base_width; wi = window->size_hints.width_inc; - extra_height = (info->current.height - bh) % hi; - extra_width = (info->current.width - bw) % wi; + extra_height = (client_rect.height - bh) % hi; + extra_width = (client_rect.width - bw) % wi; /* ignore size increments for maximized windows */ if (window->maximized_horizontally) extra_width *= 0; @@ -935,8 +938,8 @@ constrain_size_increments (MetaWindow *window, return constraint_already_satisfied; /*** Enforce constraint ***/ - new_width = info->current.width - extra_width; - new_height = info->current.height - extra_height; + new_width = client_rect.width - extra_width; + new_height = client_rect.height - extra_height; /* Adjusting down instead of up (as done in the above two lines) may * violate minimum size constraints; fix the adjustment if this -- 1.9.0