| Index: content/browser/renderer_host/render_widget_host_view_aura.h
|
| diff --git a/content/browser/renderer_host/render_widget_host_view_aura.h b/content/browser/renderer_host/render_widget_host_view_aura.h
|
| index 81e794383f494de5966a3f87e7b6b4a05983c1bb..50a418dd2ba341cd7470ed63525ac541050dd2db 100644
|
| --- a/content/browser/renderer_host/render_widget_host_view_aura.h
|
| +++ b/content/browser/renderer_host/render_widget_host_view_aura.h
|
| @@ -21,6 +21,7 @@
|
| #include "content/browser/compositor/image_transport_factory.h"
|
| #include "content/browser/compositor/owned_mailbox.h"
|
| #include "content/browser/renderer_host/render_widget_host_view_base.h"
|
| +#include "content/browser/renderer_host/touch_selection_controller_aura.h"
|
| #include "content/common/content_export.h"
|
| #include "content/common/cursors/webcursor.h"
|
| #include "third_party/skia/include/core/SkRegion.h"
|
| @@ -86,50 +87,9 @@ class CONTENT_EXPORT RenderWidgetHostViewAura
|
| public aura::client::ActivationChangeObserver,
|
| public aura::client::FocusChangeObserver,
|
| public aura::client::CursorClientObserver,
|
| - public base::SupportsWeakPtr<RenderWidgetHostViewAura> {
|
| + public base::SupportsWeakPtr<RenderWidgetHostViewAura>,
|
| + public TouchSelectionControllerAuraClient {
|
| public:
|
| - // Displays and controls touch editing elements such as selection handles.
|
| - class TouchEditingClient {
|
| - public:
|
| - TouchEditingClient() {}
|
| -
|
| - // Tells the client to start showing touch editing handles.
|
| - virtual void StartTouchEditing() = 0;
|
| -
|
| - // Notifies the client that touch editing is no longer needed. |quick|
|
| - // determines whether the handles should fade out quickly or slowly.
|
| - virtual void EndTouchEditing(bool quick) = 0;
|
| -
|
| - // Notifies the client that the selection bounds need to be updated.
|
| - virtual void OnSelectionOrCursorChanged(const gfx::Rect& anchor,
|
| - const gfx::Rect& focus) = 0;
|
| -
|
| - // Notifies the client that the current text input type as changed.
|
| - virtual void OnTextInputTypeChanged(ui::TextInputType type) = 0;
|
| -
|
| - // Notifies the client that an input event is about to be sent to the
|
| - // renderer. Returns true if the client wants to stop event propagation.
|
| - virtual bool HandleInputEvent(const ui::Event* event) = 0;
|
| -
|
| - // Notifies the client that a gesture event ack was received.
|
| - virtual void GestureEventAck(int gesture_event_type) = 0;
|
| -
|
| - // Notifies the client that the fling has ended, so it can activate touch
|
| - // editing if needed.
|
| - virtual void DidStopFlinging() = 0;
|
| -
|
| - // This is called when the view is destroyed, so that the client can
|
| - // perform any necessary clean-up.
|
| - virtual void OnViewDestroyed() = 0;
|
| -
|
| - protected:
|
| - virtual ~TouchEditingClient() {}
|
| - };
|
| -
|
| - void set_touch_editing_client(TouchEditingClient* client) {
|
| - touch_editing_client_ = client;
|
| - }
|
| -
|
| // When |is_guest_view_hack| is true, this view isn't really the view for
|
| // the |widget|, a RenderWidgetHostViewGuest is.
|
| //
|
| @@ -298,6 +258,17 @@ class CONTENT_EXPORT RenderWidgetHostViewAura
|
| void OnTouchEvent(ui::TouchEvent* event) override;
|
| void OnGestureEvent(ui::GestureEvent* event) override;
|
|
|
| + // Overriden from TouchSelectionControllerAuraClient:
|
| + virtual float GetDeviceScaleFactor() override;
|
| + virtual void MoveCaret(const gfx::PointF& position) override;
|
| + virtual void SelectBetweenCoordinates(const gfx::PointF& start,
|
| + const gfx::PointF& end) override;
|
| + virtual aura::Window* GetParentWindow() override;
|
| + virtual bool IsCommandIdEnabled(int command_id) override;
|
| + virtual void ExecuteCommand(int command_id, int event_flags) override;
|
| + virtual void OpenContextMenu(const gfx::PointF& point) override;
|
| + virtual gfx::Rect ConvertRectToScreen(const gfx::RectF& rect) const override;
|
| +
|
| // Overridden from aura::client::ActivationDelegate:
|
| bool ShouldActivate() const override;
|
|
|
| @@ -346,6 +317,10 @@ class CONTENT_EXPORT RenderWidgetHostViewAura
|
|
|
| void SnapToPhysicalPixelBoundary();
|
|
|
| + TouchSelectionControllerAura* selection_controller() {
|
| + return selection_controller_.get();
|
| + }
|
| +
|
| OverscrollController* overscroll_controller() const {
|
| return overscroll_controller_.get();
|
| }
|
| @@ -476,6 +451,10 @@ class CONTENT_EXPORT RenderWidgetHostViewAura
|
|
|
| RenderFrameHostImpl* GetFocusedFrame();
|
|
|
| + // ...
|
| + void SelectionBoundsUpdated(const cc::ViewportSelectionBound& start,
|
| + const cc::ViewportSelectionBound& end);
|
| +
|
| // The model object.
|
| RenderWidgetHostImpl* host_;
|
|
|
| @@ -525,10 +504,6 @@ class CONTENT_EXPORT RenderWidgetHostViewAura
|
| int text_input_flags_;
|
| bool can_compose_inline_;
|
|
|
| - // Rectangles for the selection anchor and focus.
|
| - gfx::Rect selection_anchor_rect_;
|
| - gfx::Rect selection_focus_rect_;
|
| -
|
| // The current composition character bounds.
|
| std::vector<gfx::Rect> composition_character_bounds_;
|
|
|
| @@ -597,7 +572,7 @@ class CONTENT_EXPORT RenderWidgetHostViewAura
|
|
|
| bool has_snapped_to_boundary_;
|
|
|
| - TouchEditingClient* touch_editing_client_;
|
| + scoped_ptr<TouchSelectionControllerAura> selection_controller_;
|
|
|
| scoped_ptr<OverscrollController> overscroll_controller_;
|
|
|
|
|