+ if (new_sash_position != -1)
+ {
+ // Only modify if permitted
+ m_oldX = x;
+ m_oldY = y;
+ }
+
+#ifdef __WXMSW__
+ // As we captured the mouse, we may get the mouse events from outside
+ // our window - for example, negative values in x, y. This has a weird
+ // consequence under MSW where we use unsigned values sometimes and
+ // signed ones other times: the coordinates turn as big positive
+ // numbers and so the sash is drawn on the *right* side of the window
+ // instead of the left (or bottom instead of top). Correct this.
+ if ( (short)m_oldX < 0 )
+ m_oldX = 0;
+ if ( (short)m_oldY < 0 )
+ m_oldY = 0;
+#endif // __WXMSW__
+
+ // Draw new one
+ if ((GetWindowStyleFlag() & wxSP_LIVE_UPDATE) == 0)
+ {
+ DrawSashTracker(m_oldX, m_oldY);
+ }
+ else
+ {
+ m_sashPosition = new_sash_position;
+ m_needUpdating = TRUE;
+ }