Popup menu can get stuck in closed state when GtkMenu can't grab mouse.
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 1 Dec 2011 17:39:30 +0000 (17:39 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 1 Dec 2011 17:39:30 +0000 (17:39 +0000)
commit2d8fdcf7b72020ae8e613b54ae9f816b84c801c1
tree3972cc4cd839d7edfc5817e44c9625885925a26d
parent06f673796f06a27f9fbe1e8accd9bd8a813a144b
Popup menu can get stuck in closed state when GtkMenu can't grab mouse.
https://bugs.webkit.org/show_bug.cgi?id=56466

Add a check if popup menu is not visible due to no mouse grab,
Ensure WebCore is in sync with proper state.

Patch by Wajahat Siddiqui <mdwajahatali.siddiqui@motorola.com> on 2011-12-01
Reviewed by Martin Robinson.

Source/WebCore:

* platform/gtk/PopupMenuGtk.cpp:
(WebCore::PopupMenuGtk::show):

Source/WebKit2:

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::failedToShowPopupMenu): Added Method to send message
to WebProcess.
* UIProcess/WebPageProxy.h:
* UIProcess/WebPopupMenuProxy.h:
* UIProcess/gtk/WebPopupMenuProxyGtk.cpp:
(WebKit::WebPopupMenuProxyGtk::showPopupMenu):
* WebProcess/WebCoreSupport/WebPopupMenu.h:
(WebKit::WebPopupMenu::client): Added Method to get WebCore::PopupMenuClient.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::failedToShowPopupMenu):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in: Added Message to inform WebProcess ShowPopupMenu failed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@101678 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/platform/gtk/PopupMenuGtk.cpp
Source/WebKit2/ChangeLog
Source/WebKit2/UIProcess/WebPageProxy.cpp
Source/WebKit2/UIProcess/WebPageProxy.h
Source/WebKit2/UIProcess/WebPopupMenuProxy.h
Source/WebKit2/UIProcess/gtk/WebPopupMenuProxyGtk.cpp
Source/WebKit2/WebProcess/WebCoreSupport/WebPopupMenu.h
Source/WebKit2/WebProcess/WebPage/WebPage.cpp
Source/WebKit2/WebProcess/WebPage/WebPage.h
Source/WebKit2/WebProcess/WebPage/WebPage.messages.in