[mutter] constraints: Size increments need to be applied to the client rect



commit f4ef4b79f95db7b4e3071489a30cbc8f710ab4ce
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Mon May 5 13:09:41 2014 -0400

    constraints: Size increments need to be applied to the client rect
    
    Not the frame rect.

 src/core/constraints.c |   11 +++++++----
 1 files 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


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]