summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--src/core/constraints.c34
2 files changed, 36 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 77b59a1..b002059 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-02-21 Mikkel Kamstrup Erlandsen <mikkel.kamstrup@gmail.com>
+
+ * src/core/constraints.c: Respect requested position on
+ _NET_MOVERESIZE_WINDOW. Closes #448183.
+
2008-02-18 Matthias Clasen <mclasen@redhat.com>
* src/core/window.h: Make skip-taskbar windows appear in the
diff --git a/src/core/constraints.c b/src/core/constraints.c
index 8cba3bf..e081347 100644
--- a/src/core/constraints.c
+++ b/src/core/constraints.c
@@ -852,8 +852,17 @@ constrain_size_increments (MetaWindow *window,
if (new_height < window->size_hints.min_height)
new_height += ((window->size_hints.min_height - new_height)/hi + 1)*hi;
+ /* Figure out what original rect to pass to meta_rectangle_resize_with_gravity
+ * See bug 448183
+ */
+ MetaRectangle *start_rect;
+ if (info->action_type == ACTION_MOVE_AND_RESIZE)
+ start_rect = &info->current;
+ else
+ start_rect = &info->orig;
+
/* Resize to the new size */
- meta_rectangle_resize_with_gravity (&info->orig,
+ meta_rectangle_resize_with_gravity (start_rect,
&info->current,
info->resize_gravity,
new_width,
@@ -898,7 +907,17 @@ constrain_size_limits (MetaWindow *window,
/*** Enforce constraint ***/
new_width = CLAMP (info->current.width, min_size.width, max_size.width);
new_height = CLAMP (info->current.height, min_size.height, max_size.height);
- meta_rectangle_resize_with_gravity (&info->orig,
+
+ /* Figure out what original rect to pass to meta_rectangle_resize_with_gravity
+ * See bug 448183
+ */
+ MetaRectangle *start_rect;
+ if (info->action_type == ACTION_MOVE_AND_RESIZE)
+ start_rect = &info->current;
+ else
+ start_rect = &info->orig;
+
+ meta_rectangle_resize_with_gravity (start_rect,
&info->current,
info->resize_gravity,
new_width,
@@ -1022,7 +1041,16 @@ constrain_aspect_ratio (MetaWindow *window,
break;
}
- meta_rectangle_resize_with_gravity (&info->orig,
+ /* Figure out what original rect to pass to meta_rectangle_resize_with_gravity
+ * See bug 448183
+ */
+ MetaRectangle *start_rect;
+ if (info->action_type == ACTION_MOVE_AND_RESIZE)
+ start_rect = &info->current;
+ else
+ start_rect = &info->orig;
+
+ meta_rectangle_resize_with_gravity (start_rect,
&info->current,
info->resize_gravity,
new_width,