summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authorSteve Kondik <shade@chemlab.org>2013-01-20 20:51:33 -0800
committerGerrit Code Review <gerrit@review.cyanogenmod.com>2013-01-20 20:51:33 -0800
commit30310487e19d5db0682dbec921f771e515acc3af (patch)
treeb9edb4ab58bb373679ec8f85c8822c6d51024975 /src/com
parent408854a8c4e99c6c9c801fc107119deb25677d48 (diff)
parentc6f25145acdae727309705e47960d93ac2b10eb1 (diff)
downloadpackages_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.java12
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;