]> git.saurik.com Git - wxWidgets.git/blobdiff - src/stc/stc.cpp.in
Rebake all project files to reflect MSVC deprecation warnings defines.
[wxWidgets.git] / src / stc / stc.cpp.in
index dbdbafde109fd8cc40b409fcfd2818430e90e1f6..ec2e890e47b5e9574017487a19412dced14ba7f9 100644 (file)
@@ -12,7 +12,7 @@
 // Created:     13-Jan-2000
 // RCS-ID:      $Id$
 // Copyright:   (c) 2000 by Total Control Software
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 /*
@@ -199,7 +199,7 @@ bool wxStyledTextCtrl::Create(wxWindow *parent,
     m_swx = new ScintillaWX(this);
     m_stopWatch.Start();
     m_lastKeyDownConsumed = false;
-    m_lastWheelTimestamp = 0;
+    m_timeToBlockWheelEventsUntil = 0;
     m_vScrollBar = NULL;
     m_hScrollBar = NULL;
 #if wxUSE_UNICODE
@@ -764,18 +764,24 @@ void wxStyledTextCtrl::OnContextMenu(wxContextMenuEvent& evt) {
 
 void wxStyledTextCtrl::OnMouseWheel(wxMouseEvent& evt)
 {
-    // prevent having an event queue with wheel events that cannot be processed
-    // reasonably fast (see ticket #9057)
-    if ( m_lastWheelTimestamp <= evt.GetTimestamp() )
+    // Prevent having an event queue with wheel events that cannot be processed
+    // reasonably fast (see ticket #9057) by ignoring all of them that happen
+    // during the time interval corresponding to the time it took us to handle
+    // the last one.
+    //
+    // Notice the use of TimeInMicro() instead of Time() to avoid overflow in
+    // long running programs.
+    if ( m_timeToBlockWheelEventsUntil <= m_stopWatch.TimeInMicro() )
     {
-        m_lastWheelTimestamp = m_stopWatch.Time();
+        const wxLongLong beforeMouseWheel = m_stopWatch.TimeInMicro();
         m_swx->DoMouseWheel(evt.GetWheelRotation(),
                             evt.GetWheelDelta(),
                             evt.GetLinesPerAction(),
                             evt.ControlDown(),
                             evt.IsPageScroll());
-        m_lastWheelTimestamp = m_stopWatch.Time() - m_lastWheelTimestamp;
-        m_lastWheelTimestamp += evt.GetTimestamp();
+        const wxLongLong afterMouseWheel = m_stopWatch.TimeInMicro();
+        m_timeToBlockWheelEventsUntil = afterMouseWheel;
+        m_timeToBlockWheelEventsUntil += afterMouseWheel - beforeMouseWheel;
     }
 }
 
@@ -1073,8 +1079,8 @@ wxStyledTextEvent::wxStyledTextEvent(wxEventType commandType, int id)
     m_listType = 0;
     m_x = 0;
     m_y = 0;
-    m_dragAllowMove = false;
 #if wxUSE_DRAG_AND_DROP
+    m_dragFlags = wxDrag_CopyOnly;
     m_dragResult = wxDragNone;
 #endif
 }
@@ -1108,9 +1114,9 @@ wxStyledTextEvent::wxStyledTextEvent(const wxStyledTextEvent& event):
     m_x =            event.m_x;
     m_y =            event.m_y;
 
-    m_dragText =     event.m_dragText;
-    m_dragAllowMove =event.m_dragAllowMove;
 #if wxUSE_DRAG_AND_DROP
+    m_dragText =     event.m_dragText;
+    m_dragFlags =    event.m_dragFlags;
     m_dragResult =   event.m_dragResult;
 #endif
 }
@@ -1118,4 +1124,9 @@ wxStyledTextEvent::wxStyledTextEvent(const wxStyledTextEvent& event):
 //----------------------------------------------------------------------
 //----------------------------------------------------------------------
 
+/*static*/ wxVersionInfo wxStyledTextCtrl::GetLibraryVersionInfo()
+{
+    return wxVersionInfo("Scintilla", 2, 3, 0, "Scintilla 2.03");
+}
+
 #endif // wxUSE_STC