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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java

Issue 2113183003: Support dragging texts into Chrome on Android. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Intercept dragEvent and set TouchEventOffsets there Created 4 years, 6 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
« no previous file with comments | « no previous file | content/browser/web_contents/web_contents_view_android.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
index bc3d550b1ad89e0a56672acb2e093745a22c8989..99dd573855149dd38926a2e0f16724757743887a 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
@@ -19,6 +19,7 @@ import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
import android.support.v4.widget.ExploreByTouchHelper;
import android.util.AttributeSet;
import android.util.Pair;
+import android.view.DragEvent;
import android.view.MotionEvent;
import android.view.SurfaceView;
import android.view.View;
@@ -385,6 +386,23 @@ public class CompositorViewHolder extends CoordinatorLayout
return super.dispatchHoverEvent(e);
}
+ @Override
+ public boolean dispatchDragEvent(DragEvent e) {
+ ContentViewCore contentViewCore = mTabVisible.getContentViewCore();
+ if (contentViewCore == null) return false;
+
+ if (mLayoutManager != null) mLayoutManager.getViewportPixel(mCacheViewport);
+ contentViewCore.setCurrentTouchEventOffsets(-mCacheViewport.left, -mCacheViewport.top);
+ boolean ret = super.dispatchDragEvent(e);
+
+ int action = e.getAction();
+ if (action == DragEvent.ACTION_DRAG_EXITED || action == DragEvent.ACTION_DRAG_ENDED
+ || action == DragEvent.ACTION_DROP) {
+ contentViewCore.setCurrentTouchEventOffsets(0.f, 0.f);
+ }
+ return ret;
+ }
+
/**
* @return The {@link LayoutManager} associated with this view.
*/
@@ -484,11 +502,11 @@ public class CompositorViewHolder extends CoordinatorLayout
if (actionMasked == MotionEvent.ACTION_DOWN
|| actionMasked == MotionEvent.ACTION_HOVER_ENTER) {
if (mLayoutManager != null) mLayoutManager.getViewportPixel(mCacheViewport);
- contentViewCore.setCurrentMotionEventOffsets(-mCacheViewport.left, -mCacheViewport.top);
+ contentViewCore.setCurrentTouchEventOffsets(-mCacheViewport.left, -mCacheViewport.top);
} else if (canClear && (actionMasked == MotionEvent.ACTION_UP
|| actionMasked == MotionEvent.ACTION_CANCEL
|| actionMasked == MotionEvent.ACTION_HOVER_EXIT)) {
- contentViewCore.setCurrentMotionEventOffsets(0.f, 0.f);
+ contentViewCore.setCurrentTouchEventOffsets(0.f, 0.f);
}
}
@@ -911,7 +929,7 @@ public class CompositorViewHolder extends CoordinatorLayout
* @param contentViewCore The {@link ContentViewCore} to initialize.
*/
private void initializeContentViewCore(ContentViewCore contentViewCore) {
- contentViewCore.setCurrentMotionEventOffsets(0.f, 0.f);
+ contentViewCore.setCurrentTouchEventOffsets(0.f, 0.f);
contentViewCore.setTopControlsHeight(
getTopControlsHeightPixels(), contentViewCore.doTopControlsShrinkBlinkSize());
« no previous file with comments | « no previous file | content/browser/web_contents/web_contents_view_android.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698