]> git.saurik.com Git - wxWidgets.git/commitdiff
Skip double size events.
authorRobert Roebling <robert@roebling.de>
Tue, 22 Aug 2006 22:47:50 +0000 (22:47 +0000)
committerRobert Roebling <robert@roebling.de>
Tue, 22 Aug 2006 22:47:50 +0000 (22:47 +0000)
  Skip movements of floating pane when moving fast.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40760 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/aui/floatpane.cpp
src/aui/framemanager.cpp

index 22940e6a80b3d7d8f8700d3f53af59ae2eb56b9e..bc8e52be6e5f9990420ff1cbdeb26066cb3e981f 100644 (file)
@@ -134,6 +134,14 @@ void wxFloatingPane::OnMoveEvent(wxMoveEvent& event)
         return;
     }
 
+    // skip if moving fast
+    if ((abs(win_rect.x - m_last_rect.x) > 1) ||
+        (abs(win_rect.y - m_last_rect.y) > 1))
+    {
+        m_last_rect = win_rect;
+        return;
+    }
+
     // prevent frame redocking during resize
     if (m_last_rect.GetSize() != win_rect.GetSize())
     {
index 9e2fe0853004a896b41fbf1c79426c0d66c3251c..45f36c99678732c2a6d6fa6c53401c05fae58812 100644 (file)
@@ -80,6 +80,8 @@ public:
         m_Amount=0;
         m_MaxWidth=0;
         m_MaxHeight=0;
+        m_lastWidth=0;
+        m_lastHeight=0;
 #ifdef __WXGTK__
         m_CanSetShape = false; // have to wait for window create event on GTK
 #else
@@ -149,6 +151,16 @@ public:
 
     void OnSize(wxSizeEvent& event)
     {
+        // We sometimes get surplus size events
+        if ((event.GetSize().GetWidth() == m_lastWidth) &&
+            (event.GetSize().GetHeight() == m_lastHeight))
+        {
+            event.Skip();
+            return;
+        }
+        m_lastWidth = event.GetSize().GetWidth();
+        m_lastHeight = event.GetSize().GetHeight();
+    
         SetTransparent(m_Amount);
         m_Region.Intersect(0, 0, event.GetSize().GetWidth(),
                            event.GetSize().GetHeight());
@@ -162,6 +174,7 @@ private:
     int m_MaxWidth;
     int m_MaxHeight;
     bool m_CanSetShape;
+    int m_lastWidth,m_lastHeight;
 
     wxRegion m_Region;