summaryrefslogtreecommitdiffstats
path: root/WebKit/wx/WebView.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebKit/wx/WebView.cpp')
-rw-r--r--WebKit/wx/WebView.cpp17
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;