Changeset 95436 in webkit
- Timestamp:
- Sep 19, 2011 10:14:19 AM (13 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 2 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r95403 r95436 1 2011-09-14 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> 2 3 [Qt] [WK2] Implement popup menus in QDesktopWebView using QComboBox 4 https://bugs.webkit.org/show_bug.cgi?id=67938 5 6 Reviewed by Andreas Kling. 7 8 Implement a WebPopupMenuProxy that uses QtWebComboBox (a QComboBox subclass we 9 have for WK1). Then use this WebPopupMenuProxy in QDesktopWebView. The implementation 10 explicitly avoids running a nested mainloop. 11 12 * UIProcess/WebPageProxy.cpp: 13 (WebKit::WebPageProxy::showPopupMenu): 14 Since we don't run a nested mainloop, we need to keep the client pointer to call 15 valueChangedForPopupMenu(). 16 17 * UIProcess/qt/WebPopupMenuProxyQtDesktop.cpp: Added. 18 (WebKit::WebPopupMenuProxyQtDesktop::WebPopupMenuProxyQtDesktop): 19 (WebKit::WebPopupMenuProxyQtDesktop::~WebPopupMenuProxyQtDesktop): 20 (WebKit::WebPopupMenuProxyQtDesktop::showPopupMenu): 21 (WebKit::WebPopupMenuProxyQtDesktop::hidePopupMenu): 22 (WebKit::WebPopupMenuProxyQtDesktop::setSelectedIndex): 23 (WebKit::WebPopupMenuProxyQtDesktop::onPopupMenuHidden): 24 (WebKit::WebPopupMenuProxyQtDesktop::populate): 25 * UIProcess/qt/WebPopupMenuProxyQtDesktop.h: Added. 26 (WebKit::WebPopupMenuProxyQtDesktop::create): 27 * UIProcess/qt/qdesktopwebpageproxy.cpp: 28 (QDesktopWebPageProxy::createPopupMenuProxy): 29 * UIProcess/qt/qdesktopwebpageproxy.h: 30 * WebKit2.pro: 31 1 32 2011-09-19 Carlos Garcia Campos <cgarcia@igalia.com> 2 33 -
trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp
r95303 r95436 2310 2310 2311 2311 protectedActivePopupMenu->showPopupMenu(rect, static_cast<TextDirection>(textDirection), m_pageScaleFactor, items, data, selectedIndex); 2312 2313 // Since Qt doesn't use a nested mainloop the show the popup and get the answer, we need to keep the client pointer valid. 2314 #if !PLATFORM(QT) 2312 2315 protectedActivePopupMenu->invalidate(); 2316 #endif 2313 2317 protectedActivePopupMenu = 0; 2314 2318 } -
trunk/Source/WebKit2/UIProcess/qt/qdesktopwebpageproxy.cpp
r94087 r95436 19 19 */ 20 20 21 #include "qdesktopwebpageproxy.h" 22 23 #include "qdesktopwebview.h" 21 24 #include "qdesktopwebview_p.h" 22 #include "qdesktopwebpageproxy.h"23 25 #include "DrawingAreaProxyImpl.h" 24 26 #include "NativeWebMouseEvent.h" 25 27 #include "NativeWebWheelEvent.h" 28 #include "WebPopupMenuProxyQtDesktop.h" 26 29 #include <QApplication> 27 30 #include <QEvent> … … 78 81 } 79 82 #endif 83 84 PassRefPtr<WebPopupMenuProxy> QDesktopWebPageProxy::createPopupMenuProxy(WebPageProxy*) 85 { 86 QSGItem* webViewItem = static_cast<QDesktopWebViewPrivate*>(m_viewInterface)->q; 87 return WebPopupMenuProxyQtDesktop::create(m_webPageProxy.get(), webViewItem); 88 } 80 89 81 90 bool QDesktopWebPageProxy::handleEvent(QEvent* ev) -
trunk/Source/WebKit2/UIProcess/qt/qdesktopwebpageproxy.h
r94087 r95436 48 48 #endif 49 49 50 virtual PassRefPtr<WebKit::WebPopupMenuProxy> createPopupMenuProxy(WebKit::WebPageProxy*); 51 50 52 virtual void timerEvent(QTimerEvent*); 51 53 -
trunk/Source/WebKit2/WebKit2.pro
r95303 r95436 20 20 # Build both debug and release configurations 21 21 mac: CONFIG += build_all 22 23 WEBKIT1_HEADERS_SHARED_WITH_WEBKIT2= \ 24 $$PWD/../WebKit/qt/WebCoreSupport/QtWebComboBox.h 25 26 WEBKIT1_SOURCES_SHARED_WITH_WEBKIT2 = \ 27 $$PWD/../WebKit/qt/WebCoreSupport/QtWebComboBox.cpp 22 28 23 29 WEBKIT2_GENERATED_HEADERS = \ … … 260 266 UIProcess/qt/WebContextMenuProxyQt.h \ 261 267 UIProcess/qt/WebPopupMenuProxyQt.h \ 268 UIProcess/qt/WebPopupMenuProxyQtDesktop.h \ 262 269 WebProcess/ApplicationCache/WebApplicationCacheManager.h \ 263 270 WebProcess/Authentication/AuthenticationManager.h \ … … 324 331 WebProcess/WebPage/WebPageGroupProxy.h \ 325 332 WebProcess/WebProcess.h \ 326 $$WEBKIT2_GENERATED_HEADERS 333 $$WEBKIT2_GENERATED_HEADERS \ 334 $$WEBKIT1_HEADERS_SHARED_WITH_WEBKIT2 327 335 328 336 SOURCES += \ … … 494 502 UIProcess/qt/WebPageProxyQt.cpp \ 495 503 UIProcess/qt/WebPopupMenuProxyQt.cpp \ 504 UIProcess/qt/WebPopupMenuProxyQtDesktop.cpp \ 496 505 UIProcess/qt/WebPreferencesQt.cpp \ 497 506 WebProcess/ApplicationCache/WebApplicationCacheManager.cpp \ … … 582 591 WebProcess/qt/WebProcessMainQt.cpp \ 583 592 WebProcess/qt/WebProcessQt.cpp \ 584 $$WEBKIT2_GENERATED_SOURCES 593 $$WEBKIT2_GENERATED_SOURCES \ 594 $$WEBKIT1_SOURCES_SHARED_WITH_WEBKIT2 585 595 586 596 contains(DEFINES, ENABLE_NETSCAPE_PLUGIN_API=0) {
Note: See TracChangeset
for help on using the changeset viewer.