]> git.saurik.com Git - wxWidgets.git/commitdiff
react on mouse up, not mouse down
authorVáclav Slavík <vslavik@fastmail.fm>
Sun, 1 Jun 2003 00:10:06 +0000 (00:10 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Sun, 1 Jun 2003 00:10:06 +0000 (00:10 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@20789 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/html/htmlwin.h
src/html/htmlwin.cpp

index ea9062a0512516147cc383e0265b699ae901c41b..719fbc4fc574862151e6eddfdb645a0c3185bacd 100644 (file)
@@ -209,7 +209,8 @@ protected:
 
     void OnDraw(wxDC& dc);
     void OnSize(wxSizeEvent& event);
-    void OnMouseEvent(wxMouseEvent& event);
+    void OnMouseMove(wxMouseEvent& event);
+    void OnMouseButton(wxMouseEvent& event);
     void OnIdle(wxIdleEvent& event);
 
     // Returns new filter (will be stored into m_DefaultFilter variable)
index e7f539af479f46d62efea18a65df6f5067207342..08e39660447d00a43b86e5c7fe90ce1776965857 100644 (file)
@@ -634,7 +634,9 @@ bool wxHtmlWindow::IsSelectionEnabled() const
 
 void wxHtmlWindow::OnLinkClicked(const wxHtmlLinkInfo& link)
 {
-    LoadPage(link.GetHref());
+    const wxMouseEvent *e = link.GetEvent();
+    if (e == NULL || e->LeftUp())
+        LoadPage(link.GetHref());
 }
 
 void wxHtmlWindow::OnCellClicked(wxHtmlCell *cell,
@@ -681,32 +683,32 @@ void wxHtmlWindow::OnSize(wxSizeEvent& event)
 }
 
 
-void wxHtmlWindow::OnMouseEvent(wxMouseEvent& event)
+void wxHtmlWindow::OnMouseMove(wxMouseEvent& event)
 {
-    m_tmpMouseMoved = TRUE;
+    m_tmpMouseMoved = true;
+}
 
-    if (event.ButtonDown())
+void wxHtmlWindow::OnMouseButton(wxMouseEvent& event)
+{
+    SetFocus();
+    if ( m_Cell )
     {
-        SetFocus();
-        if ( m_Cell )
-        {
-            int sx, sy;
-            GetViewStart(&sx, &sy);
-            sx *= wxHTML_SCROLL_STEP;
-            sy *= wxHTML_SCROLL_STEP;
+        int sx, sy;
+        GetViewStart(&sx, &sy);
+        sx *= wxHTML_SCROLL_STEP;
+        sy *= wxHTML_SCROLL_STEP;
 
-            wxPoint pos = event.GetPosition();
-            pos.x += sx;
-            pos.y += sy;
+        wxPoint pos = event.GetPosition();
+        pos.x += sx;
+        pos.y += sy;
 
-            wxHtmlCell *cell = m_Cell->FindCellByPos(pos.x, pos.y);
+        wxHtmlCell *cell = m_Cell->FindCellByPos(pos.x, pos.y);
 
-            // VZ: is it possible that we don't find anything at all?
-            // VS: yes. FindCellByPos returns terminal cell and
-            //     containers may have empty borders
-            if ( cell )
-                OnCellClicked(cell, pos.x, pos.y, event);
-        }
+        // VZ: is it possible that we don't find anything at all?
+        // VS: yes. FindCellByPos returns terminal cell and
+        //     containers may have empty borders
+        if ( cell )
+            OnCellClicked(cell, pos.x, pos.y, event);
     }
 }
 
@@ -774,9 +776,9 @@ IMPLEMENT_DYNAMIC_CLASS(wxHtmlWindow,wxScrolledWindow)
 
 BEGIN_EVENT_TABLE(wxHtmlWindow, wxScrolledWindow)
     EVT_SIZE(wxHtmlWindow::OnSize)
-    EVT_LEFT_DOWN(wxHtmlWindow::OnMouseEvent)
-    EVT_RIGHT_DOWN(wxHtmlWindow::OnMouseEvent)
-    EVT_MOTION(wxHtmlWindow::OnMouseEvent)
+    EVT_LEFT_UP(wxHtmlWindow::OnMouseButton)
+    EVT_RIGHT_UP(wxHtmlWindow::OnMouseButton)
+    EVT_MOTION(wxHtmlWindow::OnMouseMove)
     EVT_IDLE(wxHtmlWindow::OnIdle)
 END_EVENT_TABLE()