dont snap things around crazy with small windows in resistance mode
Dana Jansens danakj@orodu.net
1 files changed,
7 insertions(+),
4 deletions(-)
jump to
M
src/Window.cc
→
src/Window.cc
@@ -3193,12 +3193,14 @@ dleft = wright - offsetrect.left();
dright = offsetrect.right() - wleft; // snap left of other window? - if (dleft >= 0 && dleft < resistance_size) { + if (dleft >= 0 && dleft < resistance_size && + dleft < (wright - wleft)) { dx = offsetrect.left() - frame.rect.width(); snapped = True; } // snap right of other window? - else if (dright >= 0 && dright < resistance_size) { + else if (dright >= 0 && dright < resistance_size && + dright < (wright - wleft)) { dx = offsetrect.right() + 1; snapped = True; }@@ -3258,12 +3260,13 @@ dtop = wbottom - offsetrect.top();
dbottom = offsetrect.bottom() - wtop; // snap top of other window? - if (dtop >= 0 && dtop < resistance_size) { + if (dtop >= 0 && dtop < resistance_size && dtop < (wbottom - wtop)) { dy = offsetrect.top() - frame.rect.height(); snapped = True; } // snap bottom of other window? - else if (dbottom >= 0 && dbottom < resistance_size) { + else if (dbottom >= 0 && dbottom < resistance_size && + dbottom < (wbottom - wtop)) { dy = offsetrect.bottom() + 1; snapped = True; }