From 177554391216590c9f62d8ce3d489db987f28199 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Fri, 15 Jan 2010 17:49:54 -0500 Subject: [PATCH] don't use client_move() to end a move client_move() uses the client's current width/height, whereas all along we were using the width/height the client had at the start, so this causes client_configure() to behave differently at the end than during the move --- openbox/moveresize.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/openbox/moveresize.c b/openbox/moveresize.c index 95d64734..fd52d890 100644 --- a/openbox/moveresize.c +++ b/openbox/moveresize.c @@ -300,11 +300,7 @@ void moveresize_end(gboolean cancel) popup_hide(popup); - if (moving) { - client_move(moveresize_client, - (cancel ? start_cx : cur_x), - (cancel ? start_cy : cur_y)); - } else { + if (!moving) { #ifdef SYNC /* turn off the alarm */ if (moveresize_alarm != None) { @@ -314,15 +310,19 @@ void moveresize_end(gboolean cancel) ob_main_loop_timeout_remove(ob_main_loop, sync_timeout_func); #endif - - client_configure(moveresize_client, - (cancel ? start_cx : cur_x), - (cancel ? start_cy : cur_y), - (cancel ? start_cw : cur_w), - (cancel ? start_ch : cur_h), - TRUE, TRUE, FALSE); } + /* don't use client_move() here, use the same width/height as + we've been using during the move, otherwise we get different results + when moving maximized windows between monitors of different sizes ! + */ + client_configure(moveresize_client, + (cancel ? start_cx : cur_x), + (cancel ? start_cy : cur_y), + (cancel ? start_cw : cur_w), + (cancel ? start_ch : cur_h), + TRUE, TRUE, FALSE); + /* dont edge warp after its ended */ cancel_edge_warp(); -- 2.34.1