33
33
34
34
#include " WebPopupMenu.h"
35
35
#include " platform/scroll/FramelessScrollViewClient.h"
36
+ #include " public/platform/WebContentLayerClient.h"
36
37
#include " public/platform/WebPoint.h"
37
38
#include " public/platform/WebSize.h"
38
39
#include " wtf/OwnPtr.h"
@@ -49,44 +50,50 @@ class Widget;
49
50
}
50
51
51
52
namespace blink {
53
+ class WebContentLayer ;
52
54
class WebGestureEvent ;
53
55
class WebKeyboardEvent ;
56
+ class WebLayerTreeView ;
54
57
class WebMouseEvent ;
55
58
class WebMouseWheelEvent ;
56
59
class WebRange ;
57
60
struct WebRect ;
58
61
class WebTouchEvent ;
59
62
60
- class WebPopupMenuImpl : public WebPopupMenu ,
61
- public WebCore::FramelessScrollViewClient,
62
- public RefCounted<WebPopupMenuImpl> {
63
+ class WebPopupMenuImpl : public WebPopupMenu , public WebCore ::FramelessScrollViewClient, public WebContentLayerClient, public RefCounted<WebPopupMenuImpl> {
63
64
WTF_MAKE_FAST_ALLOCATED;
64
65
public:
65
66
// WebWidget functions:
66
- virtual void close () OVERRIDE;
67
- virtual WebSize size () OVERRIDE { return m_size; }
68
- virtual void willStartLiveResize () OVERRIDE;
69
- virtual void resize (const WebSize&) OVERRIDE;
70
- virtual void willEndLiveResize () OVERRIDE;
71
- virtual void animate (double frameBeginTime) OVERRIDE;
72
- virtual void layout () OVERRIDE;
73
- virtual void paint (WebCanvas*, const WebRect&, PaintOptions = ReadbackFromCompositorIfAvailable) OVERRIDE;
74
- virtual void themeChanged () OVERRIDE;
75
- virtual bool handleInputEvent (const WebInputEvent&) OVERRIDE;
76
- virtual void mouseCaptureLost () OVERRIDE;
77
- virtual void setFocus (bool enable) OVERRIDE;
67
+ virtual void close () OVERRIDE FINAL;
68
+ virtual WebSize size () OVERRIDE FINAL { return m_size; }
69
+ virtual void willStartLiveResize () OVERRIDE FINAL;
70
+ virtual void resize (const WebSize&) OVERRIDE FINAL;
71
+ virtual void willEndLiveResize () OVERRIDE FINAL;
72
+ virtual void animate (double frameBeginTime) OVERRIDE FINAL;
73
+ virtual void layout () OVERRIDE FINAL;
74
+ virtual void enterForceCompositingMode (bool enable) OVERRIDE FINAL;
75
+ virtual void didExitCompositingMode () OVERRIDE FINAL;
76
+ virtual void paint (WebCanvas*, const WebRect&, PaintOptions = ReadbackFromCompositorIfAvailable) OVERRIDE FINAL;
77
+ virtual void themeChanged () OVERRIDE FINAL;
78
+ virtual bool handleInputEvent (const WebInputEvent&) OVERRIDE FINAL;
79
+ virtual void mouseCaptureLost () OVERRIDE FINAL;
80
+ virtual void setFocus (bool enable) OVERRIDE FINAL;
78
81
virtual bool setComposition (
79
82
const WebString& text,
80
83
const WebVector<WebCompositionUnderline>& underlines,
81
- int selectionStart, int selectionEnd) OVERRIDE;
82
- virtual bool confirmComposition () OVERRIDE;
83
- virtual bool confirmComposition (ConfirmCompositionBehavior selectionBehavior) OVERRIDE;
84
- virtual bool confirmComposition (const WebString& text) OVERRIDE;
85
- virtual bool compositionRange (size_t * location, size_t * length) OVERRIDE;
86
- virtual bool caretOrSelectionRange (size_t * location, size_t * length) OVERRIDE;
87
- virtual void setTextDirection (WebTextDirection) OVERRIDE;
88
- virtual bool isAcceleratedCompositingActive () const OVERRIDE { return false ; }
89
- virtual bool isPopupMenu () const OVERRIDE { return true ; }
84
+ int selectionStart, int selectionEnd) OVERRIDE FINAL;
85
+ virtual bool confirmComposition () OVERRIDE FINAL;
86
+ virtual bool confirmComposition (ConfirmCompositionBehavior selectionBehavior) OVERRIDE FINAL;
87
+ virtual bool confirmComposition (const WebString& text) OVERRIDE FINAL;
88
+ virtual bool compositionRange (size_t * location, size_t * length) OVERRIDE FINAL;
89
+ virtual bool caretOrSelectionRange (size_t * location, size_t * length) OVERRIDE FINAL;
90
+ virtual void setTextDirection (WebTextDirection) OVERRIDE FINAL;
91
+ virtual bool isAcceleratedCompositingActive () const OVERRIDE FINAL { return false ; }
92
+ virtual bool isPopupMenu () const OVERRIDE FINAL { return true ; }
93
+ virtual void willCloseLayerTreeView () OVERRIDE FINAL;
94
+
95
+ // WebContentLayerClient
96
+ virtual void paintContents (WebCanvas*, const WebRect& clip, bool canPaintLCDTest, WebFloatRect& opaque) OVERRIDE FINAL;
90
97
91
98
// WebPopupMenuImpl
92
99
void initialize (WebCore::FramelessScrollView* widget, const WebRect& bounds);
@@ -127,6 +134,10 @@ class WebPopupMenuImpl : public WebPopupMenu,
127
134
WebWidgetClient* m_client;
128
135
WebSize m_size;
129
136
137
+ WebLayerTreeView* m_layerTreeView;
138
+ OwnPtr<WebContentLayer> m_rootLayer;
139
+ bool m_isAcceleratedCompositingActive;
140
+
130
141
WebPoint m_lastMousePosition;
131
142
132
143
// This is a non-owning ref. The popup will notify us via popupClosed()
0 commit comments