]> git.saurik.com Git - wxWidgets.git/blobdiff - src/html/htmlwin.cpp
[ 1563875 ] wxTreeCtrl::FindItem asserts when item not found
[wxWidgets.git] / src / html / htmlwin.cpp
index aee43219c08bcc6c23671a131c9890954e8aa6cd..431b30b32cce1b7a5877c13caba355806218c031 100644 (file)
@@ -277,7 +277,6 @@ void wxHtmlWindow::Init()
     m_HistoryOn = true;
     m_History = new wxHtmlHistoryArray;
     m_Processors = NULL;
-    m_Style = 0;
     SetBorders(10);
     m_selection = NULL;
     m_makingSelection = false;
@@ -299,7 +298,6 @@ bool wxHtmlWindow::Create(wxWindow *parent, wxWindowID id,
                                   name))
         return false;
 
-    m_Style = style;
     SetPage(wxT("<html><body></body></html>"));
     return true;
 }
@@ -638,14 +636,14 @@ void wxHtmlWindow::CreateLayout()
 
     if (!m_Cell) return;
 
-    if (m_Style & wxHW_SCROLLBAR_NEVER)
+    if ( HasFlag(wxHW_SCROLLBAR_NEVER) )
     {
         SetScrollbars(1, 1, 0, 0); // always off
         GetClientSize(&ClientWidth, &ClientHeight);
         m_Cell->Layout(ClientWidth);
     }
-
-    else {
+    else // !wxHW_SCROLLBAR_NEVER
+    {
         GetClientSize(&ClientWidth, &ClientHeight);
         m_Cell->Layout(ClientWidth);
         if (ClientHeight < m_Cell->GetHeight() + GetCharHeight())
@@ -842,7 +840,7 @@ void wxHtmlWindow::AddFilter(wxHtmlFilter *filter)
 bool wxHtmlWindow::IsSelectionEnabled() const
 {
 #if wxUSE_CLIPBOARD
-    return !(m_Style & wxHW_NO_SELECTION);
+    return !HasFlag(wxHW_NO_SELECTION);
 #else
     return false;
 #endif
@@ -1135,6 +1133,19 @@ void wxHtmlWindow::OnMouseUp(wxMouseEvent& event)
     wxHtmlWindowMouseHelper::HandleMouseClick(m_Cell, pos, event);
 }
 
+#if wxUSE_CLIPBOARD
+void wxHtmlWindow::OnMouseCaptureLost(wxMouseCaptureLostEvent& WXUNUSED(event))
+{
+    if ( !m_makingSelection )
+        return;
+
+    // discard the selecting operation
+    m_makingSelection = false;
+    wxDELETE(m_selection);
+    m_tmpSelFromCell = NULL;
+    Refresh();
+}
+#endif // wxUSE_CLIPBOARD
 
 
 void wxHtmlWindow::OnInternalIdle()
@@ -1499,6 +1510,7 @@ BEGIN_EVENT_TABLE(wxHtmlWindow, wxScrolledWindow)
     EVT_LEFT_DCLICK(wxHtmlWindow::OnDoubleClick)
     EVT_ENTER_WINDOW(wxHtmlWindow::OnMouseEnter)
     EVT_LEAVE_WINDOW(wxHtmlWindow::OnMouseLeave)
+    EVT_MOUSE_CAPTURE_LOST(wxHtmlWindow::OnMouseCaptureLost)
     EVT_KEY_UP(wxHtmlWindow::OnKeyUp)
     EVT_MENU(wxID_COPY, wxHtmlWindow::OnCopy)
 #endif // wxUSE_CLIPBOARD