From d11888b470d03a36d60e8332e8c108ce18ea4948 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 17 Oct 2009 14:54:13 +0000 Subject: - wrapping failed with the cursor at the screen edge, - changed numbuts behavior with continuous grab so dragging back after passing the button limit immediately adjusts the value --- intern/ghost/GHOST_Rect.h | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'intern/ghost/GHOST_Rect.h') diff --git a/intern/ghost/GHOST_Rect.h b/intern/ghost/GHOST_Rect.h index 98169ad2aa4..6a29b1ffc26 100644 --- a/intern/ghost/GHOST_Rect.h +++ b/intern/ghost/GHOST_Rect.h @@ -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 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 -- cgit v1.2.3