X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b5b208a1796ecf1b9ab267d200705b4f3b4d10e3..057f610bae72e67ddb1d56b2897c5b29b2747b82:/src/osx/slider_osx.cpp?ds=sidebyside diff --git a/src/osx/slider_osx.cpp b/src/osx/slider_osx.cpp index 68540720b0..ef3a7f1b7d 100644 --- a/src/osx/slider_osx.cpp +++ b/src/osx/slider_osx.cpp @@ -16,8 +16,6 @@ #include "wx/slider.h" #include "wx/osx/private.h" -IMPLEMENT_DYNAMIC_CLASS(wxSlider, wxControl) - BEGIN_EVENT_TABLE(wxSlider, wxControl) END_EVENT_TABLE() @@ -166,6 +164,12 @@ void wxSlider::SetValue(int value) void wxSlider::SetRange(int minValue, int maxValue) { + // Changing the range preserves the value of the native control but may + // change our logical value if we're inverting the native value to get it + // as ValueInvertOrNot() depends on the range so preserve it before + // changing the range. + const int valueOld = GetValue(); + wxString value; m_rangeMin = minValue; @@ -196,10 +200,13 @@ void wxSlider::SetRange(int minValue, int maxValue) SetValue(m_rangeMin); else if(currentValue > m_rangeMax) SetValue(m_rangeMax); + + // Ensure that our value didn't change. + SetValue(valueOld); } // For trackbars only -void wxSlider::SetTickFreq(int n, int WXUNUSED(pos)) +void wxSlider::DoSetTickFreq(int n) { // TODO m_tickFreq = n;