diff options
Diffstat (limited to 'WebKit/wx/WebView.cpp')
-rw-r--r-- | WebKit/wx/WebView.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/WebKit/wx/WebView.cpp b/WebKit/wx/WebView.cpp index 1b27cde..2c752de 100644 --- a/WebKit/wx/WebView.cpp +++ b/WebKit/wx/WebView.cpp @@ -257,7 +257,6 @@ BEGIN_EVENT_TABLE(wxWebView, wxWindow) EVT_SIZE(wxWebView::OnSize) EVT_MOUSE_EVENTS(wxWebView::OnMouseEvents) EVT_CONTEXT_MENU(wxWebView::OnContextMenuEvents) - EVT_MENU(wxID_ANY, wxWebView::OnMenuSelectEvents) EVT_KEY_DOWN(wxWebView::OnKeyEvents) EVT_KEY_UP(wxWebView::OnKeyEvents) EVT_CHAR(wxWebView::OnKeyEvents) @@ -339,6 +338,10 @@ bool wxWebView::Create(wxWindow* parent, int id, const wxPoint& position, settings->setDatabasesEnabled(true); #endif +#if __WXMSW__ || __WXMAC__ + settings->setPluginsEnabled(true); +#endif + m_isInitialized = true; return true; @@ -348,6 +351,9 @@ wxWebView::~wxWebView() { m_beingDestroyed = true; + while (HasCapture()) + ReleaseMouse(); + if (m_mainFrame && m_mainFrame->GetFrame()) m_mainFrame->GetFrame()->loader()->detachFromParent(); @@ -646,6 +652,7 @@ void wxWebView::OnMouseEvents(wxMouseEvent& event) void wxWebView::OnContextMenuEvents(wxContextMenuEvent& event) { + Connect(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxWebView::OnMenuSelectEvents), NULL, this); m_impl->page->contextMenuController()->clearContextMenu(); wxPoint localEventPoint = ScreenToClient(event.GetPosition()); @@ -675,10 +682,18 @@ void wxWebView::OnContextMenuEvents(wxContextMenuEvent& event) return; PopupMenu(menuWx, localEventPoint); + + Disconnect(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxWebView::OnMenuSelectEvents), NULL, this); } void wxWebView::OnMenuSelectEvents(wxCommandEvent& event) { + // we shouldn't hit this unless there's a context menu showing + WebCore::ContextMenu* coreMenu = m_impl->page->contextMenuController()->contextMenu(); + ASSERT(coreMenu); + if (!coreMenu) + return; + WebCore::ContextMenuItem* item = WebCore::ContextMenu::itemWithId (event.GetId()); if (!item) return; |