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
This commit is contained in:
@ -218,8 +218,24 @@ void scratchpad_fix_resolution(void) {
|
|||||||
new_height = _lcm(new_height, output->rect.height);
|
new_height = _lcm(new_height, output->rect.height);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Rect old_rect = __i3_output->rect;
|
||||||
|
|
||||||
DLOG("new width = %d, new height = %d\n",
|
DLOG("new width = %d, new height = %d\n",
|
||||||
new_width, new_height);
|
new_width, new_height);
|
||||||
__i3_output->rect.width = new_width;
|
__i3_output->rect.width = new_width;
|
||||||
__i3_output->rect.height = new_height;
|
__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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user