- m_value = m_max;
- }
-
- wxScrollEvent event(scrollEvent, m_windowId);
-
- event.SetPosition(m_value);
- event.SetEventObject( this );
- GetEventHandler()->ProcessEvent(event);
-}
+ scrollEvent = wxEVT_SCROLL_THUMBTRACK;
+
+ // Do not send an event if the value has not actually changed
+ // (Also works for wxSpinCtrl)
+ if ( m_value == oldValue )
+ return;
+
+ wxSpinEvent event( scrollEvent, m_windowId );
+
+ event.SetPosition( m_value );
+ event.SetEventObject( this );
+ if ((HandleWindowEvent( event )) && !event.IsAllowed())
+ m_value = oldValue;