56 lines
2.0 KiB
Diff
56 lines
2.0 KiB
Diff
From f4ef4b79f95db7b4e3071489a30cbc8f710ab4ce Mon Sep 17 00:00:00 2001
|
|
From: "Jasper St. Pierre" <jstpierre@mecheye.net>
|
|
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
|
|
|