Index: content/public/android/java/src/org/chromium/content/browser/input/CursorController.java |
diff --git a/content/public/android/java/src/org/chromium/content/browser/input/CursorController.java b/content/public/android/java/src/org/chromium/content/browser/input/CursorController.java |
index 68f88bc950386cbd86cc722649930ef4e7127ea8..5bf4bada8af023347ff231547ad4ce5ce526df80 100644 |
--- a/content/public/android/java/src/org/chromium/content/browser/input/CursorController.java |
+++ b/content/public/android/java/src/org/chromium/content/browser/input/CursorController.java |
@@ -4,38 +4,57 @@ |
package org.chromium.content.browser.input; |
+import android.graphics.Rect; |
import android.view.ViewTreeObserver; |
/** |
* A CursorController instance can be used to control a cursor in the text. |
*/ |
-interface CursorController extends ViewTreeObserver.OnTouchModeChangeListener { |
+abstract class CursorController implements ViewTreeObserver.OnTouchModeChangeListener { |
+ |
+ private Rect mVisibleClippingRectangle; |
/** |
* Hide the cursor controller from screen. |
*/ |
- void hide(); |
+ abstract void hide(); |
/** |
* @return true if the CursorController is currently visible |
*/ |
- boolean isShowing(); |
+ abstract boolean isShowing(); |
/** |
* Called when the handle is about to start updating its position. |
* @param handle |
*/ |
- void beforeStartUpdatingPosition(HandleView handle); |
+ abstract void beforeStartUpdatingPosition(HandleView handle); |
/** |
* Update the controller's position. |
*/ |
- void updatePosition(HandleView handle, int x, int y); |
+ abstract void updatePosition(HandleView handle, int x, int y); |
/** |
* Called when the view is detached from window. Perform house keeping task, such as |
* stopping Runnable thread that would otherwise keep a reference on the context, thus |
* preventing the activity to be recycled. |
*/ |
- void onDetached(); |
+ abstract void onDetached(); |
+ |
+ /** |
+ * Sets the visible rectangle for text input elements as supplied by Blink. |
+ */ |
+ public void setVisibleClippingRectangle(int left, int top, int right, int bottom) { |
+ if (mVisibleClippingRectangle == null) { |
+ mVisibleClippingRectangle = new Rect(left, top, right, bottom); |
+ } else { |
+ mVisibleClippingRectangle.set(left,top,right,bottom); |
+ } |
+ } |
+ |
+ Rect getVisibleClippingRectangle() { |
+ return mVisibleClippingRectangle; |
+ } |
+ |
} |