Merge "Fail more gracefully when window state changes during drags" into honeycomb

This commit is contained in:
Christopher Tate
2011-01-19 16:41:14 -08:00
committed by Android (Google) Code Review
2 changed files with 7 additions and 3 deletions

View File

@@ -274,7 +274,7 @@ public static final int ACTION_DRAG_EXITED = 6;
public String toString() {
return "DragEvent{" + Integer.toHexString(System.identityHashCode(this))
+ " action=" + mAction + " @ (" + mX + ", " + mY + ") desc=" + mClipDescription
+ " data=" + mClipData + " result=" + mDragResult
+ " data=" + mClipData + " local=" + mLocalState + " result=" + mDragResult
+ "}";
}

View File

@@ -708,16 +708,20 @@ public class WindowManagerService extends IWindowManager.Stub
// Move the surface to the given touch
if (SHOW_TRANSACTIONS) Slog.i(TAG, ">>> OPEN TRANSACTION notifyMoveLw");
mSurface.openTransaction();
Surface.openTransaction();
try {
mSurface.setPosition((int)(x - mThumbOffsetX), (int)(y - mThumbOffsetY));
} finally {
mSurface.closeTransaction();
Surface.closeTransaction();
if (SHOW_TRANSACTIONS) Slog.i(TAG, "<<< CLOSE TRANSACTION notifyMoveLw");
}
// Tell the affected window
WindowState touchedWin = getTouchedWinAtPointLw(x, y);
if (touchedWin == null) {
if (DEBUG_DRAG) Slog.d(TAG, "No touched win at x=" + x + " y=" + y);
return;
}
if ((mFlags & View.DRAG_FLAG_GLOBAL) == 0) {
final IBinder touchedBinder = touchedWin.mClient.asBinder();
if (touchedBinder != mLocalWin) {