diff options
author | Steve Kondik <shade@chemlab.org> | 2013-01-20 20:51:33 -0800 |
---|---|---|
committer | Gerrit Code Review <gerrit@review.cyanogenmod.com> | 2013-01-20 20:51:33 -0800 |
commit | 30310487e19d5db0682dbec921f771e515acc3af (patch) | |
tree | b9edb4ab58bb373679ec8f85c8822c6d51024975 /src/com | |
parent | 408854a8c4e99c6c9c801fc107119deb25677d48 (diff) | |
parent | c6f25145acdae727309705e47960d93ac2b10eb1 (diff) | |
download | packages_apps_settings-30310487e19d5db0682dbec921f771e515acc3af.zip packages_apps_settings-30310487e19d5db0682dbec921f771e515acc3af.tar.gz packages_apps_settings-30310487e19d5db0682dbec921f771e515acc3af.tar.bz2 |
Merge "Settings: Fix TouchInterceptor widget on tablets" into cm-10.1
Diffstat (limited to 'src/com')
-rw-r--r-- | src/com/android/settings/cyanogenmod/TouchInterceptor.java | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/com/android/settings/cyanogenmod/TouchInterceptor.java b/src/com/android/settings/cyanogenmod/TouchInterceptor.java index 517df42..a0aa402 100644 --- a/src/com/android/settings/cyanogenmod/TouchInterceptor.java +++ b/src/com/android/settings/cyanogenmod/TouchInterceptor.java @@ -86,13 +86,17 @@ public class TouchInterceptor extends ListView { // The dragger icon itself is quite small, so pretend the // touch area is bigger if (x < r.right * 2) { + // Fix x position while dragging + int[] itemPos = new int[2]; + item.getLocationOnScreen(itemPos); + item.setDrawingCacheEnabled(true); // Create a copy of the drawing cache so that it does // not get recycled // by the framework when the list tries to clean up // memory Bitmap bitmap = Bitmap.createBitmap(item.getDrawingCache()); - startDragging(bitmap, y); + startDragging(bitmap, itemPos[0], y); mDragPos = itemnum; mFirstDragPos = mDragPos; mHeight = getHeight(); @@ -292,12 +296,12 @@ public class TouchInterceptor extends ListView { return super.onTouchEvent(ev); } - private void startDragging(Bitmap bm, int y) { + private void startDragging(Bitmap bm, int x, int y) { stopDragging(); mWindowParams = new WindowManager.LayoutParams(); - mWindowParams.gravity = Gravity.TOP; - mWindowParams.x = 0; + mWindowParams.gravity = Gravity.TOP | Gravity.LEFT; + mWindowParams.x = x; mWindowParams.y = y - mDragPoint + mCoordOffset; mWindowParams.height = WindowManager.LayoutParams.WRAP_CONTENT; |