diff --git a/src/univ/slider.cpp b/src/univ/slider.cpp index 3d588d1ae3..9e63cfd48a 100644 --- a/src/univ/slider.cpp +++ b/src/univ/slider.cpp @@ -213,17 +213,6 @@ bool wxSlider::ChangeValueTo(int value) Refresh(); - // generate the events: both a specific scroll event and a command event - wxScrollEvent eventScroll(wxEVT_SCROLL_CHANGED, GetId()); - eventScroll.SetPosition(m_value); - eventScroll.SetEventObject( this ); - (void)GetEventHandler()->ProcessEvent(eventScroll); - - wxCommandEvent event(wxEVT_SLIDER, GetId()); - event.SetInt(m_value); - event.SetEventObject(this); - (void)GetEventHandler()->ProcessEvent(event); - return true; } @@ -782,27 +771,28 @@ bool wxSlider::PerformAction(const wxControlAction& action, } else if ( action == wxACTION_SLIDER_PAGE_CHANGE ) { + scrollEvent = wxEVT_SCROLL_CHANGED; value = NormalizeValue(m_value + numArg * GetPageSize()); } else if ( action == wxACTION_SLIDER_LINE_UP ) { scrollEvent = wxEVT_SCROLL_LINEUP; - value = NormalizeValue(m_value + +GetLineSize()); + value = NormalizeValue(m_value + -GetLineSize()); } else if ( action == wxACTION_SLIDER_LINE_DOWN ) { scrollEvent = wxEVT_SCROLL_LINEDOWN; - value = NormalizeValue(m_value + -GetLineSize()); + value = NormalizeValue(m_value + +GetLineSize()); } else if ( action == wxACTION_SLIDER_PAGE_UP ) { scrollEvent = wxEVT_SCROLL_PAGEUP; - value = NormalizeValue(m_value + +GetPageSize()); + value = NormalizeValue(m_value + -GetPageSize()); } else if ( action == wxACTION_SLIDER_PAGE_DOWN ) { scrollEvent = wxEVT_SCROLL_PAGEDOWN; - value = NormalizeValue(m_value + -GetPageSize()); + value = NormalizeValue(m_value + +GetPageSize()); } else if ( action == wxACTION_SLIDER_THUMB_DRAG || action == wxACTION_SLIDER_THUMB_MOVE ) @@ -826,12 +816,11 @@ bool wxSlider::PerformAction(const wxControlAction& action, return wxControl::PerformAction(action, numArg, strArg); } - // update wxSlider current value and generate wxCommandEvent, except while - // dragging the thumb + // update wxSlider current value if ( valueChanged ) ChangeValueTo(value); - // also generate more precise wxScrollEvent if applicable + // generate wxScrollEvent if ( scrollEvent != wxEVT_NULL ) { wxScrollEvent event(scrollEvent, GetId());