From: Michael Stapelberg Date: Fri, 25 Jan 2013 14:47:43 +0000 (+0100) Subject: Bugfix: fix coordinates of scratchpad windows on output changes (Thanks badboy) X-Git-Tag: 4.5~42^2^2 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=7be5ece6636f7a4c800ab0c5dd6289b38db7b435;p=i3%2Fi3 Bugfix: fix coordinates of scratchpad windows on output changes (Thanks badboy) Previously, after reconfiguring monitors, scratchpad windows could still be focused but might be out of bounds for you to see. fixes #929 --- diff --git a/src/scratchpad.c b/src/scratchpad.c index 7b309095..c60b29eb 100644 --- a/src/scratchpad.c +++ b/src/scratchpad.c @@ -218,8 +218,24 @@ void scratchpad_fix_resolution(void) { new_height = _lcm(new_height, output->rect.height); } } + + Rect old_rect = __i3_output->rect; + DLOG("new width = %d, new height = %d\n", new_width, new_height); __i3_output->rect.width = new_width; __i3_output->rect.height = new_height; + + Rect new_rect = __i3_output->rect; + + if (memcmp(&old_rect, &new_rect, sizeof(Rect)) == 0) { + DLOG("Scratchpad size unchanged.\n"); + return; + } + + DLOG("Fixing coordinates of scratchpad windows\n"); + Con *con; + TAILQ_FOREACH(con, &(__i3_scratch->floating_head), floating_windows) { + floating_fix_coordinates(con, &old_rect, &new_rect); + } }