]> git.saurik.com Git - wxWidgets.git/commitdiff
fix for scrollbar's thumb update bug in wxUniv
authorVáclav Slavík <vslavik@fastmail.fm>
Sat, 9 Feb 2002 23:27:52 +0000 (23:27 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Sat, 9 Feb 2002 23:27:52 +0000 (23:27 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14090 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/univ/scrolbar.h
src/univ/scrolbar.cpp

index 1a1eb9de0069f752cb3a86dd75a3d18d3a9ef0bb..2aa478414bbbabb067a5e915924f24383622099e 100644 (file)
@@ -122,6 +122,9 @@ protected:
 
     // event handlers
     void OnIdle(wxIdleEvent& event);
+    
+    // forces update of thumb's visual appearence (does nothing if m_dirty=FALSE)
+    void UpdateThumb();
 
     // SetThumbPosition() helper
     void DoSetThumb(int thumbPos);
index 4445239eb97b64e196393ae12358a91cde27a2e8..e2f146b7d42f1d7e270f74545f21c7c65c47fde1 100644 (file)
@@ -300,6 +300,12 @@ wxScrollArrows::Arrow wxScrollBar::HitTest(const wxPoint& pt) const
 // ----------------------------------------------------------------------------
 
 void wxScrollBar::OnIdle(wxIdleEvent& event)
+{
+    UpdateThumb();
+    event.Skip();
+}
+
+void wxScrollBar::UpdateThumb()
 {
     if ( m_dirty )
     {
@@ -373,8 +379,6 @@ void wxScrollBar::OnIdle(wxIdleEvent& event)
 
         m_dirty = FALSE;
     }
-
-    event.Skip();
 }
 
 void wxScrollBar::DoDraw(wxControlRenderer *renderer)
@@ -464,6 +468,10 @@ bool wxScrollBar::PerformAction(const wxControlAction& action,
     {
         DoSetThumb(numArg);
 
+        // VS: we have to force redraw here, otherwise the thumb will lack
+        //     behind mouse cursor
+        UpdateThumb();
+
         scrollType = wxEVT_SCROLLWIN_THUMBTRACK;
     }
     else if ( action == wxACTION_SCROLL_LINE_UP )