mirror of
				https://bitbucket.org/chromiumembedded/cef
				synced 2025-06-05 21:39:12 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			77 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| diff --git Source/web/ChromeClientImpl.cpp Source/web/ChromeClientImpl.cpp
 | |
| index ab5b0e7..c977d57 100644
 | |
| --- Source/web/ChromeClientImpl.cpp
 | |
| +++ Source/web/ChromeClientImpl.cpp
 | |
| @@ -880,7 +880,7 @@ bool ChromeClientImpl::hasOpenedPopup() const
 | |
|  PopupMenu* ChromeClientImpl::openPopupMenu(LocalFrame& frame, HTMLSelectElement& select)
 | |
|  {
 | |
|      notifyPopupOpeningObservers();
 | |
| -    if (WebViewImpl::useExternalPopupMenus())
 | |
| +    if (m_webView->useExternalPopupMenus())
 | |
|          return new ExternalPopupMenu(frame, select, *m_webView);
 | |
|  
 | |
|      DCHECK(RuntimeEnabledFeatures::pagePopupEnabled());
 | |
| diff --git Source/web/WebViewImpl.cpp Source/web/WebViewImpl.cpp
 | |
| index 218f70f..24824fd 100644
 | |
| --- Source/web/WebViewImpl.cpp
 | |
| +++ Source/web/WebViewImpl.cpp
 | |
| @@ -415,6 +415,7 @@ WebViewImpl::WebViewImpl(WebViewClient* client)
 | |
|      , m_enableFakePageScaleAnimationForTesting(false)
 | |
|      , m_fakePageScaleAnimationPageScaleFactor(0)
 | |
|      , m_fakePageScaleAnimationUseAnchor(false)
 | |
| +    , m_shouldUseExternalPopupMenus(shouldUseExternalPopupMenus)
 | |
|      , m_doingDragAndDrop(false)
 | |
|      , m_ignoreInputEvents(false)
 | |
|      , m_compositorDeviceScaleFactorOverride(0)
 | |
| @@ -4072,9 +4073,14 @@ void WebViewImpl::pageScaleFactorChanged()
 | |
|      m_client->pageScaleFactorChanged();
 | |
|  }
 | |
|  
 | |
| +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 3015ed1..0eb5455 100644
 | |
| --- Source/web/WebViewImpl.h
 | |
| +++ Source/web/WebViewImpl.h
 | |
| @@ -383,7 +383,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 shouldAutoResize() const
 | |
|      {
 | |
| @@ -672,6 +673,8 @@ private:
 | |
|      float m_fakePageScaleAnimationPageScaleFactor;
 | |
|      bool m_fakePageScaleAnimationUseAnchor;
 | |
|  
 | |
| +    bool m_shouldUseExternalPopupMenus;
 | |
| +
 | |
|      bool m_doingDragAndDrop;
 | |
|  
 | |
|      bool m_ignoreInputEvents;
 | |
| diff --git public/web/WebView.h public/web/WebView.h
 | |
| index d25040c..67a9a1a 100644
 | |
| --- public/web/WebView.h
 | |
| +++ public/web/WebView.h
 | |
| @@ -443,6 +443,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;
 |