- wrapping failed with the cursor at the screen edge,
[blender-staging.git] / intern / ghost / GHOST_Rect.h
index 98169ad2aa496c4e20ef25b721f3ecf1042e1d4b..6a29b1ffc262e494be83d9529b6173517ee7ea61 100644 (file)
@@ -228,20 +228,19 @@ inline void GHOST_Rect::unionPoint(GHOST_TInt32 x, GHOST_TInt32 y)
        if (y < m_t) m_t = y;
        if (y > m_b) m_b = y;
 }
-
+#include <stdio.h>
 inline void GHOST_Rect::wrapPoint(GHOST_TInt32 &x, GHOST_TInt32 &y, GHOST_TInt32 ofs)
 {
        GHOST_TInt32 w= getWidth();
        GHOST_TInt32 h= getHeight();
 
        /* highly unlikely but avoid eternal loop */
-       if(w-ofs <= 0 || h-ofs <= 0)
+       if(w-ofs*2 <= 0 || h-ofs*2 <= 0)
                return;
-
-       while(x-ofs < m_l)              x+= w;
-       while(y-ofs < m_t)              y+= h;
-       while(x+ofs > m_r)              x-= w;
-       while(y+ofs > m_b)              y-= h;
+       while(x-ofs < m_l)              x+= w-(ofs*2);
+       while(y-ofs < m_t)              y+= h-(ofs*2);
+       while(x+ofs > m_r)              x-= w-(ofs*2);
+       while(y+ofs > m_b)              y-= h-(ofs*2);
 }
 
 inline bool GHOST_Rect::isInside(GHOST_TInt32 x, GHOST_TInt32 y) const