X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/223d09f6b523aac674ef9b72a883dfa8d37c5d4e..399b60a0ad232265cd74ce8bf6a53a1f2cc57ff2:/src/msw/scrolbar.cpp diff --git a/src/msw/scrolbar.cpp b/src/msw/scrolbar.cpp index 955d42de97..007c98067f 100644 --- a/src/msw/scrolbar.cpp +++ b/src/msw/scrolbar.cpp @@ -28,7 +28,6 @@ #include "wx/scrolbar.h" #include "wx/msw/private.h" -#if !USE_SHARED_LIBRARY IMPLEMENT_DYNAMIC_CLASS(wxScrollBar, wxControl) BEGIN_EVENT_TABLE(wxScrollBar, wxControl) @@ -37,7 +36,6 @@ BEGIN_EVENT_TABLE(wxScrollBar, wxControl) #endif END_EVENT_TABLE() -#endif // Scrollbar bool wxScrollBar::Create(wxWindow *parent, wxWindowID id, @@ -50,7 +48,9 @@ bool wxScrollBar::Create(wxWindow *parent, wxWindowID id, return FALSE; parent->AddChild(this); SetName(name); +#if wxUSE_VALIDATORS SetValidator(validator); +#endif // wxUSE_VALIDATORS SetBackgroundColour(parent->GetBackgroundColour()) ; SetForegroundColour(parent->GetForegroundColour()) ; @@ -163,8 +163,12 @@ bool wxScrollBar::MSWOnScroll(int WXUNUSED(orientation), WXWORD wParam, scrollEvent = wxEVT_SCROLL_PAGEDOWN; break; - case SB_THUMBTRACK: case SB_THUMBPOSITION: + nScrollInc = pos - position; + scrollEvent = wxEVT_SCROLL_THUMBRELEASE; + break; + + case SB_THUMBTRACK: nScrollInc = pos - position; scrollEvent = wxEVT_SCROLL_THUMBTRACK; break; @@ -173,9 +177,10 @@ bool wxScrollBar::MSWOnScroll(int WXUNUSED(orientation), WXWORD wParam, nScrollInc = 0; } - if ( nScrollInc == 0 ) + // don't process the event if there is no displacement, + // unless this is a thumb release event. + if (( nScrollInc == 0 ) && ( scrollEvent != wxEVT_SCROLL_THUMBRELEASE )) { - // no event to process, so don't process it return FALSE; }