OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.content.browser; | 5 package org.chromium.content.browser; |
6 | 6 |
7 import android.annotation.TargetApi; | 7 import android.annotation.TargetApi; |
8 import android.app.Activity; | 8 import android.app.Activity; |
9 import android.app.SearchManager; | 9 import android.app.SearchManager; |
10 import android.content.ClipData; | 10 import android.content.ClipData; |
(...skipping 909 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
920 int eventType, int xAnchor, int yAnchor, int left, int top, int righ
t, int bottom) { | 920 int eventType, int xAnchor, int yAnchor, int left, int top, int righ
t, int bottom) { |
921 // Ensure the provided selection coordinates form a non-empty rect, as r
equired by | 921 // Ensure the provided selection coordinates form a non-empty rect, as r
equired by |
922 // the selection action mode. | 922 // the selection action mode. |
923 if (left == right) ++right; | 923 if (left == right) ++right; |
924 if (top == bottom) ++bottom; | 924 if (top == bottom) ++bottom; |
925 switch (eventType) { | 925 switch (eventType) { |
926 case SelectionEventType.SELECTION_HANDLES_SHOWN: | 926 case SelectionEventType.SELECTION_HANDLES_SHOWN: |
927 mSelectionRect.set(left, top, right, bottom); | 927 mSelectionRect.set(left, top, right, bottom); |
928 mHasSelection = true; | 928 mHasSelection = true; |
929 mUnselectAllOnDismiss = true; | 929 mUnselectAllOnDismiss = true; |
930 if (mSelectionClient == null || !mSelectionClient.sendsSelection
PopupUpdates()) { | 930 if (mSelectionClient != null |
931 showActionModeOrClearOnFailure(); | 931 && mSelectionClient.requestSelectionPopupUpdates(true /*
suggest */)) { |
932 } else { | |
933 // Rely on |mSelectionClient| sending a classification reque
st and the request | 932 // Rely on |mSelectionClient| sending a classification reque
st and the request |
934 // always calling onClassified() callback. | 933 // always calling onClassified() callback. |
935 mPendingShowActionMode = true; | 934 mPendingShowActionMode = true; |
| 935 } else { |
| 936 showActionModeOrClearOnFailure(); |
936 } | 937 } |
937 break; | 938 break; |
938 | 939 |
939 case SelectionEventType.SELECTION_HANDLES_MOVED: | 940 case SelectionEventType.SELECTION_HANDLES_MOVED: |
940 mSelectionRect.set(left, top, right, bottom); | 941 mSelectionRect.set(left, top, right, bottom); |
941 if (mPendingShowActionMode) { | 942 if (mPendingShowActionMode) { |
942 showActionModeOrClearOnFailure(); | 943 showActionModeOrClearOnFailure(); |
943 } else { | 944 } else { |
944 invalidateContentRect(); | 945 invalidateContentRect(); |
945 } | 946 } |
946 break; | 947 break; |
947 | 948 |
948 case SelectionEventType.SELECTION_HANDLES_CLEARED: | 949 case SelectionEventType.SELECTION_HANDLES_CLEARED: |
949 mHasSelection = false; | 950 mHasSelection = false; |
950 mUnselectAllOnDismiss = false; | 951 mUnselectAllOnDismiss = false; |
951 mSelectionRect.setEmpty(); | 952 mSelectionRect.setEmpty(); |
| 953 if (mSelectionClient != null) mSelectionClient.cancelAllRequests
(); |
952 finishActionMode(); | 954 finishActionMode(); |
953 break; | 955 break; |
954 | 956 |
955 case SelectionEventType.SELECTION_HANDLE_DRAG_STARTED: | 957 case SelectionEventType.SELECTION_HANDLE_DRAG_STARTED: |
956 hideActionMode(true); | 958 hideActionMode(true); |
957 break; | 959 break; |
958 | 960 |
959 case SelectionEventType.SELECTION_HANDLE_DRAG_STOPPED: | 961 case SelectionEventType.SELECTION_HANDLE_DRAG_STOPPED: |
960 if (mSelectionClient == null || !mSelectionClient.sendsSelection
PopupUpdates()) { | 962 if (mSelectionClient != null |
| 963 && mSelectionClient.requestSelectionPopupUpdates(false /
* suggest */)) { |
| 964 // Rely on |mSelectionClient| sending a classification reque
st and the request |
| 965 // always calling onClassified() callback. |
| 966 } else { |
961 hideActionMode(false); | 967 hideActionMode(false); |
962 } | 968 } |
963 // Otherwise rely on |mSelectionClient| sending a classification
request and the | |
964 // request always calling onClassified() callback. | |
965 break; | 969 break; |
966 | 970 |
967 case SelectionEventType.INSERTION_HANDLE_SHOWN: | 971 case SelectionEventType.INSERTION_HANDLE_SHOWN: |
968 mSelectionRect.set(left, top, right, bottom); | 972 mSelectionRect.set(left, top, right, bottom); |
969 mIsInsertion = true; | 973 mIsInsertion = true; |
970 break; | 974 break; |
971 | 975 |
972 case SelectionEventType.INSERTION_HANDLE_MOVED: | 976 case SelectionEventType.INSERTION_HANDLE_MOVED: |
973 mSelectionRect.set(left, top, right, bottom); | 977 mSelectionRect.set(left, top, right, bottom); |
974 if (!mScrollInProgress && isPastePopupShowing()) { | 978 if (!mScrollInProgress && isPastePopupShowing()) { |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1134 if (mPendingShowActionMode) return; | 1138 if (mPendingShowActionMode) return; |
1135 } | 1139 } |
1136 | 1140 |
1137 // Rely on this method to clear |mHidden| and unhide the action mode
. | 1141 // Rely on this method to clear |mHidden| and unhide the action mode
. |
1138 showActionModeOrClearOnFailure(); | 1142 showActionModeOrClearOnFailure(); |
1139 } | 1143 } |
1140 }; | 1144 }; |
1141 | 1145 |
1142 private native void nativeInit(WebContents webContents); | 1146 private native void nativeInit(WebContents webContents); |
1143 } | 1147 } |
OLD | NEW |