mirror of
				https://bitbucket.org/chromiumembedded/cef
				synced 2025-06-05 21:39:12 +02:00 
			
		
		
		
	git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1963 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
		
			
				
	
	
		
			77 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| diff --git Source/web/ChromeClientImpl.cpp Source/web/ChromeClientImpl.cpp
 | |
| index 781c45a..0fda8bf 100644
 | |
| --- Source/web/ChromeClientImpl.cpp
 | |
| +++ Source/web/ChromeClientImpl.cpp
 | |
| @@ -741,7 +741,7 @@ bool ChromeClientImpl::hasOpenedPopup() const
 | |
|  
 | |
|  PassRefPtrWillBeRawPtr<PopupMenu> ChromeClientImpl::createPopupMenu(LocalFrame& frame, PopupMenuClient* client)
 | |
|  {
 | |
| -    if (WebViewImpl::useExternalPopupMenus())
 | |
| +    if (m_webView->useExternalPopupMenus())
 | |
|          return adoptRefWillBeNoop(new ExternalPopupMenu(frame, client, *m_webView));
 | |
|  
 | |
|      return adoptRefWillBeNoop(new PopupMenuChromium(frame, client));
 | |
| diff --git Source/web/WebViewImpl.cpp Source/web/WebViewImpl.cpp
 | |
| index 8ee7335..4e2384d 100644
 | |
| --- Source/web/WebViewImpl.cpp
 | |
| +++ Source/web/WebViewImpl.cpp
 | |
| @@ -379,6 +379,7 @@ WebViewImpl::WebViewImpl(WebViewClient* client)
 | |
|      , m_fakePageScaleAnimationPageScaleFactor(0)
 | |
|      , m_fakePageScaleAnimationUseAnchor(false)
 | |
|      , m_contextMenuAllowed(false)
 | |
| +    , m_shouldUseExternalPopupMenus(shouldUseExternalPopupMenus)
 | |
|      , m_doingDragAndDrop(false)
 | |
|      , m_ignoreInputEvents(false)
 | |
|      , m_compositorDeviceScaleFactorOverride(0)
 | |
| @@ -3974,9 +3975,14 @@ void WebViewImpl::deviceOrPageScaleFactorChanged()
 | |
|      m_page->inspectorController().deviceOrPageScaleFactorChanged();
 | |
|  }
 | |
|  
 | |
| +void WebViewImpl::setUseExternalPopupMenusThisInstance(bool useExternalPopupMenus)
 | |
| +{
 | |
| +    m_shouldUseExternalPopupMenus = useExternalPopupMenus;
 | |
| +}
 | |
| +
 | |
|  bool WebViewImpl::useExternalPopupMenus()
 | |
|  {
 | |
| -    return shouldUseExternalPopupMenus;
 | |
| +    return m_shouldUseExternalPopupMenus;
 | |
|  }
 | |
|  
 | |
|  void WebViewImpl::startDragging(LocalFrame* frame,
 | |
| diff --git Source/web/WebViewImpl.h Source/web/WebViewImpl.h
 | |
| index 5264cf5..f49be43 100644
 | |
| --- Source/web/WebViewImpl.h
 | |
| +++ Source/web/WebViewImpl.h
 | |
| @@ -370,7 +370,8 @@ public:
 | |
|  
 | |
|      // Returns true if popup menus should be rendered by the browser, false if
 | |
|      // they should be rendered by WebKit (which is the default).
 | |
| -    static bool useExternalPopupMenus();
 | |
| +    void setUseExternalPopupMenusThisInstance(bool);
 | |
| +    bool useExternalPopupMenus();
 | |
|  
 | |
|      bool contextMenuAllowed() const
 | |
|      {
 | |
| @@ -662,6 +663,8 @@ private:
 | |
|  
 | |
|      bool m_contextMenuAllowed;
 | |
|  
 | |
| +    bool m_shouldUseExternalPopupMenus;
 | |
| +
 | |
|      bool m_doingDragAndDrop;
 | |
|  
 | |
|      bool m_ignoreInputEvents;
 | |
| diff --git public/web/WebView.h public/web/WebView.h
 | |
| index dd5fa13..84a1e5e 100644
 | |
| --- public/web/WebView.h
 | |
| +++ public/web/WebView.h
 | |
| @@ -405,6 +405,7 @@ public:
 | |
|  
 | |
|      // Sets whether select popup menus should be rendered by the browser.
 | |
|      BLINK_EXPORT static void setUseExternalPopupMenus(bool);
 | |
| +    virtual void setUseExternalPopupMenusThisInstance(bool) = 0;
 | |
|  
 | |
|      // Hides any popup (suggestions, selects...) that might be showing.
 | |
|      virtual void hidePopups() = 0;
 |