The bug was caused by usable_area's x and y not being set in arrangelayers. For example if on a 2nd HD monitor, x should be 1920 while the first one ends at 1919. So I don't see why m->m should be recalculated after creating the monitor.
KYFLQX25B73YAVXKUJXIPZLH6WYWVR6BPK3ZBXQEDAWPLL5W6ELAC