summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/window.c24
1 files changed, 15 insertions, 9 deletions
diff --git a/src/core/window.c b/src/core/window.c
index 485afbc1..d108a0e8 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -3484,6 +3484,7 @@ meta_window_move_resize_internal (MetaWindow *window,
gboolean is_user_action;
gboolean configure_frame_first;
gboolean use_static_gravity;
+ gboolean have_window_frame;
/* used for the configure request, but may not be final
* destination due to StaticGravity etc.
*/
@@ -3492,6 +3493,11 @@ meta_window_move_resize_internal (MetaWindow *window,
MetaRectangle new_rect;
MetaRectangle old_rect;
+ if (window->frame)
+ have_window_frame = TRUE;
+ else
+ have_window_frame = FALSE;
+
is_configure_request = (flags & META_IS_CONFIGURE_REQUEST) != 0;
do_gravity_adjust = (flags & META_DO_GRAVITY_ADJUST) != 0;
is_user_action = (flags & META_IS_USER_ACTION) != 0;
@@ -3511,7 +3517,7 @@ meta_window_move_resize_internal (MetaWindow *window,
is_user_action ? " (user move/resize)" : "",
old_rect.x, old_rect.y, old_rect.width, old_rect.height);
- if (window->frame)
+ if (have_window_frame)
meta_frame_calc_geometry (window->frame,
&fgeom);
@@ -3540,7 +3546,7 @@ meta_window_move_resize_internal (MetaWindow *window,
else if (is_configure_request || do_gravity_adjust)
{
adjust_for_gravity (window,
- window->frame ? &fgeom : NULL,
+ have_window_frame ? &fgeom : NULL,
/* configure request coords assume
* the border width existed
*/
@@ -3555,7 +3561,7 @@ meta_window_move_resize_internal (MetaWindow *window,
}
meta_window_constrain (window,
- window->frame ? &fgeom : NULL,
+ have_window_frame ? &fgeom : NULL,
flags,
gravity,
&old_rect,
@@ -3573,7 +3579,7 @@ meta_window_move_resize_internal (MetaWindow *window,
window->rect.width = w;
window->rect.height = h;
- if (window->frame)
+ if (have_window_frame)
{
int new_w, new_h;
@@ -3618,7 +3624,7 @@ meta_window_move_resize_internal (MetaWindow *window,
* enough to set CWX | CWWidth but pass in the current size/pos.
*/
- if (window->frame)
+ if (have_window_frame)
{
int new_x, new_y;
int frame_pos_dx, frame_pos_dy;
@@ -3719,7 +3725,7 @@ meta_window_move_resize_internal (MetaWindow *window,
/* If frame extents have changed, fill in other frame fields and
change frame's extents property. */
- if (window->frame &&
+ if (have_window_frame &&
(window->frame->child_x != fgeom.left_width ||
window->frame->child_y != fgeom.top_height ||
window->frame->right_width != fgeom.right_width ||
@@ -3760,7 +3766,7 @@ meta_window_move_resize_internal (MetaWindow *window,
* PPosition/UPosition hints aren't set, marco seems to send a
* ConfigureNotify anyway due to the above code.)
*/
- if (window->constructing && window->frame &&
+ if (window->constructing && have_window_frame &&
((window->size_hints.flags & PPosition) ||
(window->size_hints.flags & USPosition)))
need_configure_notify = TRUE;
@@ -3779,7 +3785,7 @@ meta_window_move_resize_internal (MetaWindow *window,
if (use_static_gravity)
meta_window_set_gravity (window, StaticGravity);
- if (configure_frame_first && window->frame)
+ if (configure_frame_first && have_window_frame)
meta_frame_sync_to_window (window->frame,
gravity,
need_move_frame, need_resize_frame);
@@ -3836,7 +3842,7 @@ meta_window_move_resize_internal (MetaWindow *window,
meta_error_trap_pop (window->display, FALSE);
}
- if (!configure_frame_first && window->frame)
+ if (!configure_frame_first && have_window_frame)
meta_frame_sync_to_window (window->frame,
gravity,
need_move_frame, need_resize_frame);