add window snapping
Merge remote-tracking branch 'origin-source/master'