[mutter/wayland] Use the correct frame size during unmaximize
- From: Owen Taylor <otaylor src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wayland] Use the correct frame size during unmaximize
- Date: Thu, 5 Dec 2013 16:17:44 +0000 (UTC)
commit 8d5ab6b5b34a3dbeaba6033c31d06090579ed574
Author: Owen W. Taylor <otaylor fishsoup net>
Date: Thu Dec 5 08:27:28 2013 -0500
Use the correct frame size during unmaximize
When unmaximizing, we changed bits of window state, then called out
to code that used the frame extents *before* we cleared old cached
extents. Clear the cache up-front as soon as we change the window
state.
https://bugzilla.gnome.org/show_bug.cgi?id=714707
src/core/window.c | 12 +++++++++---
1 files changed, 9 insertions(+), 3 deletions(-)
---
diff --git a/src/core/window.c b/src/core/window.c
index 10141b0..bb334f3 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -4060,8 +4060,10 @@ meta_window_unmaximize_internal (MetaWindow *window,
{
MetaRectangle target_rect;
MetaRectangle work_area;
+ MetaRectangle old_rect;
meta_window_get_work_area_for_monitor (window, window->monitor->number, &work_area);
+ meta_window_get_frame_rect (window, &old_rect);
meta_topic (META_DEBUG_WINDOW_OPS,
"Unmaximizing %s%s\n",
@@ -4075,6 +4077,12 @@ meta_window_unmaximize_internal (MetaWindow *window,
window->maximized_vertically =
window->maximized_vertically && !unmaximize_vertically;
+ /* recalc_window_features() will eventually clear the cached frame
+ * extents, but we need the correct frame extents in the code below,
+ * so invalidate the old frame extents manually up front.
+ */
+ meta_window_frame_size_changed (window);
+
/* Unmaximize to the saved_rect position in the direction(s)
* being unmaximized.
*/
@@ -4119,9 +4127,7 @@ meta_window_unmaximize_internal (MetaWindow *window,
if (window->display->compositor)
{
- MetaRectangle old_rect, new_rect;
-
- meta_window_get_frame_rect (window, &old_rect);
+ MetaRectangle new_rect;
meta_window_move_resize_internal (window,
META_IS_MOVE_ACTION | META_IS_RESIZE_ACTION,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]