Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(103)

Unified Diff: content/browser/renderer_host/render_widget_host_view_aura.h

Issue 1263703004: Revert of Implement Aura side of unified touch text selection for contents (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 b3d913fd2d178a1d1c39574246433bdc83e59574..e0f76f1d4a5f7476a553a10b91f40861e6561ba4 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura.h
+++ b/content/browser/renderer_host/render_widget_host_view_aura.h
@@ -31,6 +31,7 @@
#include "ui/aura/window_tree_host_observer.h"
#include "ui/base/ime/text_input_client.h"
#include "ui/base/touch/selection_bound.h"
+#include "ui/base/touch/touch_editing_controller.h"
#include "ui/events/gestures/motion_event_aura.h"
#include "ui/gfx/display_observer.h"
#include "ui/gfx/geometry/insets.h"
@@ -64,7 +65,6 @@
class InputMethod;
class LocatedEvent;
class Texture;
-class TouchSelectionController;
}
namespace content {
@@ -76,7 +76,6 @@
class RenderFrameHostImpl;
class RenderWidgetHostImpl;
class RenderWidgetHostView;
-class TouchSelectionControllerClientAura;
// RenderWidgetHostView class hierarchy described in render_widget_host_view.h.
class CONTENT_EXPORT RenderWidgetHostViewAura
@@ -91,6 +90,49 @@
public aura::client::FocusChangeObserver,
public aura::client::CursorClientObserver {
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 ui::SelectionBound& anchor,
+ const ui::SelectionBound& 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.
//
@@ -302,25 +344,12 @@
void SnapToPhysicalPixelBoundary();
- ui::TouchSelectionController* selection_controller() const {
- return selection_controller_.get();
- }
-
- TouchSelectionControllerClientAura* selection_controller_client() const {
- return selection_controller_client_.get();
- }
-
OverscrollController* overscroll_controller() const {
return overscroll_controller_.get();
}
// Called when the context menu is about to be displayed.
void OnShowContextMenu();
-
- // Used in tests to set a mock client for touch selection controller. It will
- // create a new touch selection controller for the new client.
- void SetSelectionControllerClientForTest(
- scoped_ptr<TouchSelectionControllerClientAura> client);
protected:
~RenderWidgetHostViewAura() override;
@@ -481,20 +510,6 @@
// Called when the parent window hierarchy for our window changes.
void ParentHierarchyChanged();
- // Helper function to be called whenever new selection information is
- // received. It will update selection controller.
- void SelectionUpdated(bool is_editable,
- bool is_empty_text_form_control,
- const ui::SelectionBound& start,
- const ui::SelectionBound& end);
-
- // Helper function to create a selection controller.
- void CreateSelectionController();
-
- // Performs gesture handling needed for touch text selection. Sets event as
- // handled if it should not be further processed.
- void HandleGestureForTouchSelection(ui::GestureEvent* event);
-
// The model object.
RenderWidgetHostImpl* host_;
@@ -632,8 +647,7 @@
bool has_snapped_to_boundary_;
- scoped_ptr<TouchSelectionControllerClientAura> selection_controller_client_;
- scoped_ptr<ui::TouchSelectionController> selection_controller_;
+ TouchEditingClient* touch_editing_client_;
scoped_ptr<OverscrollController> overscroll_controller_;

Powered by Google App Engine
This is Rietveld 408576698