diff options
author | jbauman@chromium.org <jbauman@chromium.org> | 2014-01-29 00:14:45 +0000 |
---|---|---|
committer | Pierre Rossi <pierre.rossi@gmail.com> | 2014-03-31 10:50:42 +0200 |
commit | b3c9bb0a1f3eae80103ddcd84b57caf6843ae174 (patch) | |
tree | 80c88031ba78b12d5cca073ea27ef34c6bdce64b /chromium/third_party/WebKit/Source/web/WebPopupMenuImpl.h | |
parent | a6014652040e76de08e643b49b69fc97cb5bfd62 (diff) | |
download | qtwebengine-chromium-b3c9bb0a1f3eae80103ddcd84b57caf6843ae174.tar.gz |
[Backport] Use compositor with select popups.
BUG=271575
Review URL: https://codereview.chromium.org/132173005
git-svn-id: svn://svn.chromium.org/blink/trunk@165977 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Change-Id: I78b3354b1040b193c984b82db51c90b8183ebd24
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Diffstat (limited to 'chromium/third_party/WebKit/Source/web/WebPopupMenuImpl.h')
-rw-r--r-- | chromium/third_party/WebKit/Source/web/WebPopupMenuImpl.h | 59 |
1 files changed, 35 insertions, 24 deletions
diff --git a/chromium/third_party/WebKit/Source/web/WebPopupMenuImpl.h b/chromium/third_party/WebKit/Source/web/WebPopupMenuImpl.h index e5777bea8ce..0384675c75e 100644 --- a/chromium/third_party/WebKit/Source/web/WebPopupMenuImpl.h +++ b/chromium/third_party/WebKit/Source/web/WebPopupMenuImpl.h @@ -33,6 +33,7 @@ #include "WebPopupMenu.h" #include "platform/scroll/FramelessScrollViewClient.h" +#include "public/platform/WebContentLayerClient.h" #include "public/platform/WebPoint.h" #include "public/platform/WebSize.h" #include "wtf/OwnPtr.h" @@ -49,44 +50,50 @@ class Widget; } namespace blink { +class WebContentLayer; class WebGestureEvent; class WebKeyboardEvent; +class WebLayerTreeView; class WebMouseEvent; class WebMouseWheelEvent; class WebRange; struct WebRect; class WebTouchEvent; -class WebPopupMenuImpl : public WebPopupMenu, - public WebCore::FramelessScrollViewClient, - public RefCounted<WebPopupMenuImpl> { +class WebPopupMenuImpl : public WebPopupMenu, public WebCore::FramelessScrollViewClient, public WebContentLayerClient, public RefCounted<WebPopupMenuImpl> { WTF_MAKE_FAST_ALLOCATED; public: // WebWidget functions: - virtual void close() OVERRIDE; - virtual WebSize size() OVERRIDE { return m_size; } - virtual void willStartLiveResize() OVERRIDE; - virtual void resize(const WebSize&) OVERRIDE; - virtual void willEndLiveResize() OVERRIDE; - virtual void animate(double frameBeginTime) OVERRIDE; - virtual void layout() OVERRIDE; - virtual void paint(WebCanvas*, const WebRect&, PaintOptions = ReadbackFromCompositorIfAvailable) OVERRIDE; - virtual void themeChanged() OVERRIDE; - virtual bool handleInputEvent(const WebInputEvent&) OVERRIDE; - virtual void mouseCaptureLost() OVERRIDE; - virtual void setFocus(bool enable) OVERRIDE; + virtual void close() OVERRIDE FINAL; + virtual WebSize size() OVERRIDE FINAL { return m_size; } + virtual void willStartLiveResize() OVERRIDE FINAL; + virtual void resize(const WebSize&) OVERRIDE FINAL; + virtual void willEndLiveResize() OVERRIDE FINAL; + virtual void animate(double frameBeginTime) OVERRIDE FINAL; + virtual void layout() OVERRIDE FINAL; + virtual void enterForceCompositingMode(bool enable) OVERRIDE FINAL; + virtual void didExitCompositingMode() OVERRIDE FINAL; + virtual void paint(WebCanvas*, const WebRect&, PaintOptions = ReadbackFromCompositorIfAvailable) OVERRIDE FINAL; + virtual void themeChanged() OVERRIDE FINAL; + virtual bool handleInputEvent(const WebInputEvent&) OVERRIDE FINAL; + virtual void mouseCaptureLost() OVERRIDE FINAL; + virtual void setFocus(bool enable) OVERRIDE FINAL; virtual bool setComposition( const WebString& text, const WebVector<WebCompositionUnderline>& underlines, - int selectionStart, int selectionEnd) OVERRIDE; - virtual bool confirmComposition() OVERRIDE; - virtual bool confirmComposition(ConfirmCompositionBehavior selectionBehavior) OVERRIDE; - virtual bool confirmComposition(const WebString& text) OVERRIDE; - virtual bool compositionRange(size_t* location, size_t* length) OVERRIDE; - virtual bool caretOrSelectionRange(size_t* location, size_t* length) OVERRIDE; - virtual void setTextDirection(WebTextDirection) OVERRIDE; - virtual bool isAcceleratedCompositingActive() const OVERRIDE { return false; } - virtual bool isPopupMenu() const OVERRIDE { return true; } + int selectionStart, int selectionEnd) OVERRIDE FINAL; + virtual bool confirmComposition() OVERRIDE FINAL; + virtual bool confirmComposition(ConfirmCompositionBehavior selectionBehavior) OVERRIDE FINAL; + virtual bool confirmComposition(const WebString& text) OVERRIDE FINAL; + virtual bool compositionRange(size_t* location, size_t* length) OVERRIDE FINAL; + virtual bool caretOrSelectionRange(size_t* location, size_t* length) OVERRIDE FINAL; + virtual void setTextDirection(WebTextDirection) OVERRIDE FINAL; + virtual bool isAcceleratedCompositingActive() const OVERRIDE FINAL { return false; } + virtual bool isPopupMenu() const OVERRIDE FINAL { return true; } + virtual void willCloseLayerTreeView() OVERRIDE FINAL; + + // WebContentLayerClient + virtual void paintContents(WebCanvas*, const WebRect& clip, bool canPaintLCDTest, WebFloatRect& opaque) OVERRIDE FINAL; // WebPopupMenuImpl void initialize(WebCore::FramelessScrollView* widget, const WebRect& bounds); @@ -127,6 +134,10 @@ public: WebWidgetClient* m_client; WebSize m_size; + WebLayerTreeView* m_layerTreeView; + OwnPtr<WebContentLayer> m_rootLayer; + bool m_isAcceleratedCompositingActive; + WebPoint m_lastMousePosition; // This is a non-owning ref. The popup will notify us via popupClosed() |