]> git.saurik.com Git - wxWidgets.git/blobdiff - src/univ/scrolbar.cpp
Fix scrolling bug where client size was reported wrong
[wxWidgets.git] / src / univ / scrolbar.cpp
index 7cdc4e967645bcf17de09486cfc804997d33350a..c9f56e5c74c0d972dc8aa78a11d0b4b91f6db52d 100644 (file)
 
 #if wxUSE_SCROLLBAR
 
+#include "wx/scrolbar.h"
+
 #ifndef WX_PRECOMP
     #include "wx/timer.h"
-
     #include "wx/dcclient.h"
-    #include "wx/scrolbar.h"
     #include "wx/validate.h"
+    #include "wx/log.h"
 #endif
 
 #include "wx/univ/scrtimer.h"
@@ -38,7 +39,6 @@
 #include "wx/univ/renderer.h"
 #include "wx/univ/inphand.h"
 #include "wx/univ/theme.h"
-#include "wx/log.h"
 
 #define WXDEBUG_SCROLLBAR
 
@@ -553,7 +553,7 @@ bool wxScrollBar::PerformAction(const wxControlAction& action,
             wxScrollEvent event(scrollType, this->GetId(), m_thumbPos,
                                 IsVertical() ? wxVERTICAL : wxHORIZONTAL);
             event.SetEventObject(this);
-            GetParent()->GetEventHandler()->ProcessEvent(event);
+            GetEventHandler()->ProcessEvent(event);
         }
         else // part of the window
         {
@@ -589,6 +589,15 @@ bool wxScrollBar::ScrollPages(int nPages)
     return true;
 }
 
+/* static */
+wxInputHandler *wxScrollBar::GetStdInputHandler(wxInputHandler *handlerDef)
+{
+    static wxStdScrollBarInputHandler
+        s_handler(wxTheme::Get()->GetRenderer(), handlerDef);
+
+    return &s_handler;
+}
+
 // ============================================================================
 // scroll bar input handler
 // ============================================================================
@@ -737,7 +746,7 @@ bool wxStdScrollBarInputHandler::HandleMouse(wxInputConsumer *consumer,
 {
     // is this a click event from an acceptable button?
     int btn = event.GetButton();
-    if ( (btn != -1) && IsAllowedButton(btn) )
+    if ( btn == wxMOUSE_BTN_LEFT )
     {
         // determine which part of the window mouse is in
         wxScrollBar *scrollbar = wxStaticCast(consumer->GetInputWindow(), wxScrollBar);
@@ -907,6 +916,8 @@ bool wxStdScrollBarInputHandler::HandleMouseMove(wxInputConsumer *consumer,
 
 #endif // wxUSE_SCROLLBAR
 
+#if wxUSE_TIMER
+
 // ----------------------------------------------------------------------------
 // wxScrollTimer
 // ----------------------------------------------------------------------------
@@ -949,3 +960,5 @@ void wxScrollTimer::Notify()
         (void)DoNotify();
     }
 }
+
+#endif // wxUSE_TIMER