diff options
| -rw-r--r-- | src/core/window.c | 24 | 
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); | 
