Index: Source/web/ExternalPopupMenu.cpp |
diff --git a/Source/web/ExternalPopupMenu.cpp b/Source/web/ExternalPopupMenu.cpp |
index a1075db6f0f969ffca5151f58335509cdd62bc17..70221f782ef3fb0df075b6613f9738e12db37673 100644 |
--- a/Source/web/ExternalPopupMenu.cpp |
+++ b/Source/web/ExternalPopupMenu.cpp |
@@ -64,9 +64,12 @@ ExternalPopupMenu::~ExternalPopupMenu() |
void ExternalPopupMenu::show(const FloatQuad& controlPosition, const IntSize&, int index) |
{ |
IntRect rect(controlPosition.enclosingBoundingBox()); |
- // WebCore reuses the PopupMenu of a page. |
+ // WebCore reuses the PopupMenu of an element. |
// For simplicity, we do recreate the actual external popup everytime. |
- hide(); |
+ if (m_webExternalPopupMenu) { |
+ m_webExternalPopupMenu->close(); |
+ m_webExternalPopupMenu = 0; |
+ } |
WebPopupMenuInfo info; |
getPopupMenuInfo(&info); |