diff options
author | Scott Brady <sbradymobile@gmail.com> | 2011-04-30 08:10:54 -0700 |
---|---|---|
committer | Scott Brady <sbradymobile@gmail.com> | 2011-04-30 08:10:54 -0700 |
commit | d05ae40816de7c35264f261a1d013b58ecf89c86 (patch) | |
tree | 00ba87633f3f68ec165dd4af744b658d7cd22471 | |
parent | 4c7381adc38f4f87ddf6cb5fffaece834b3fd9cd (diff) | |
download | frameworks_base-d05ae40816de7c35264f261a1d013b58ecf89c86.zip frameworks_base-d05ae40816de7c35264f261a1d013b58ecf89c86.tar.gz frameworks_base-d05ae40816de7c35264f261a1d013b58ecf89c86.tar.bz2 |
Resubmit after fix for reverted merged mouse scrolling - fix build error in PWM.java
Change-Id: I373b5b164abc87d7ebe0fcf52ced1db66b4e4481
-rw-r--r-- | core/java/com/android/internal/widget/MousePointerView.java | 80 | ||||
-rw-r--r-- | libs/ui/InputReader.cpp | 111 | ||||
-rw-r--r-- | policy/src/com/android/internal/policy/impl/PhoneWindowManager.java | 10 |
3 files changed, 85 insertions, 116 deletions
diff --git a/core/java/com/android/internal/widget/MousePointerView.java b/core/java/com/android/internal/widget/MousePointerView.java index 6cf28c0..6466f04 100644 --- a/core/java/com/android/internal/widget/MousePointerView.java +++ b/core/java/com/android/internal/widget/MousePointerView.java @@ -16,13 +16,10 @@ package com.android.internal.widget; -import android.app.Instrumentation; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Path; -import android.os.SystemClock; -import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; @@ -50,7 +47,7 @@ public class MousePointerView extends View { if (mouseX == 0 && mouseY == 0) { } else if ((lastX == 0 && lastY == 0) || lastX - mouseX < 10.0f || lastY - mouseY < 10.0f) { - // Draw mouse cursor + // Draw mouse pointer mPath.rewind(); mPath.moveTo(mouseX, mouseY); mPath.lineTo(mouseX + 12.0f, mouseY + 12.0f); @@ -72,54 +69,6 @@ public class MousePointerView extends View { } } - private void mouseScrollUp() - { - long downTime = SystemClock.uptimeMillis(); - long eventTime = SystemClock.uptimeMillis(); - Instrumentation inst = new Instrumentation(); - MotionEvent event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_DOWN, mouseX, mouseY, 0); - inst.sendPointerSync(event); - eventTime = SystemClock.uptimeMillis(); - event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_MOVE, mouseX, mouseY + 5.0f, 0); - inst.sendPointerSync(event); - event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_MOVE, mouseX, mouseY + 10.0f, 0); - inst.sendPointerSync(event); - event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_MOVE, mouseX, mouseY + 15.0f, 0); - inst.sendPointerSync(event); - event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_MOVE, mouseX, mouseY + 25.0f, 0); - inst.sendPointerSync(event); - event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_MOVE, mouseX, mouseY + 35.0f, 0); - inst.sendPointerSync(event); - event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_MOVE, mouseX, mouseY + 45.0f, 0); - inst.sendPointerSync(event); - event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_UP, mouseX, mouseY + 60.0f, 0); - inst.sendPointerSync(event); - } - - private void mouseScrollDown() - { - long downTime = SystemClock.uptimeMillis(); - long eventTime = SystemClock.uptimeMillis(); - Instrumentation inst = new Instrumentation(); - MotionEvent event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_DOWN, mouseX, mouseY, 0); - inst.sendPointerSync(event); - eventTime = SystemClock.uptimeMillis(); - event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_MOVE, mouseX, mouseY - 5.0f, 0); - inst.sendPointerSync(event); - event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_MOVE, mouseX, mouseY - 10.0f, 0); - inst.sendPointerSync(event); - event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_MOVE, mouseX, mouseY - 15.0f, 0); - inst.sendPointerSync(event); - event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_MOVE, mouseX, mouseY - 25.0f, 0); - inst.sendPointerSync(event); - event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_MOVE, mouseX, mouseY - 35.0f, 0); - inst.sendPointerSync(event); - event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_MOVE, mouseX, mouseY - 45.0f, 0); - inst.sendPointerSync(event); - event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_UP, mouseX, mouseY - 60.0f, 0); - inst.sendPointerSync(event); - } - public void addTouchEvent(MotionEvent event) { lastX = mouseX; lastY = mouseY; @@ -128,36 +77,9 @@ public class MousePointerView extends View { postInvalidate(); } - public void addKeyEvent(KeyEvent event) { - if (event.getKeyCode() == 0x5c) { - mouseScrollUp(); - } - else if (event.getKeyCode() == 0x5d) { - mouseScrollDown(); - } - postInvalidate(); - } - @Override public boolean onTouchEvent(MotionEvent event) { addTouchEvent(event); return true; } - - @Override - public boolean onTrackballEvent(MotionEvent event) { - return super.onTrackballEvent(event); - } - - @Override - public boolean onKeyUp(int keyCode, KeyEvent event) { - addKeyEvent(event); - return true; - } - - @Override - public boolean onKeyDown(int keyCode, KeyEvent event) { - return true; - } - } diff --git a/libs/ui/InputReader.cpp b/libs/ui/InputReader.cpp index 0729b68..92249ba 100644 --- a/libs/ui/InputReader.cpp +++ b/libs/ui/InputReader.cpp @@ -3338,7 +3338,29 @@ void MouseInputMapper::sync(nsecs_t when) { { // acquire lock AutoMutex _l(mLock); - if (fields & Accumulator::FIELD_BTN_RIGHT) { + bool downChanged = fields & Accumulator::FIELD_BTN_MOUSE; + if (downChanged) { + if (mAccumulator.btnMouse) { + mLocked.down = true; + mLocked.downTime = when; + } else { + mLocked.down = false; + } + motionEventAction = mLocked.down ? AMOTION_EVENT_ACTION_DOWN : AMOTION_EVENT_ACTION_UP; + } else { + motionEventAction = AMOTION_EVENT_ACTION_MOVE; + } + + + if (fields & Accumulator::FIELD_BTN_RIGHT && mLocked.down) { + getDispatcher()->notifyKey(when, getDeviceId(), + AINPUT_SOURCE_DPAD, 0, mAccumulator.btnRight ? + AKEY_EVENT_ACTION_DOWN : AKEY_EVENT_ACTION_UP, + AKEY_EVENT_FLAG_FROM_SYSTEM, + 0x03/*Keycode for home*/, 0x20 /*Scancode*/, + mContext->getGlobalMetaState(), when); + } + else if (fields & Accumulator::FIELD_BTN_RIGHT) { getDispatcher()->notifyKey(when, getDeviceId(), AINPUT_SOURCE_DPAD, 0, mAccumulator.btnRight ? AKEY_EVENT_ACTION_DOWN : AKEY_EVENT_ACTION_UP, @@ -3347,7 +3369,15 @@ void MouseInputMapper::sync(nsecs_t when) { mContext->getGlobalMetaState(), when); } - if (fields & Accumulator::FIELD_BTN_MIDDLE) { + if (fields & Accumulator::FIELD_BTN_MIDDLE && mLocked.down) { + getDispatcher()->notifyKey(when, getDeviceId(), + AINPUT_SOURCE_DPAD, 0, mAccumulator.btnMiddle ? + AKEY_EVENT_ACTION_DOWN : AKEY_EVENT_ACTION_UP, + AKEY_EVENT_FLAG_FROM_SYSTEM, + 0x42/*Keycode for enter key*/, 0x27 /*Scancode*/, + mContext->getGlobalMetaState(), when); + } + else if (fields & Accumulator::FIELD_BTN_MIDDLE) { getDispatcher()->notifyKey(when, getDeviceId(), AINPUT_SOURCE_DPAD, 0, mAccumulator.btnMiddle ? AKEY_EVENT_ACTION_DOWN : AKEY_EVENT_ACTION_UP, @@ -3356,7 +3386,15 @@ void MouseInputMapper::sync(nsecs_t when) { mContext->getGlobalMetaState(), when); } - if (fields & Accumulator::FIELD_BTN_SIDE) { + if (fields & Accumulator::FIELD_BTN_SIDE && mLocked.down) { + getDispatcher()->notifyKey(when, getDeviceId(), + AINPUT_SOURCE_DPAD, 0, mAccumulator.btnSide ? + AKEY_EVENT_ACTION_DOWN : AKEY_EVENT_ACTION_UP, + AKEY_EVENT_FLAG_FROM_SYSTEM, + 0x16 /*Keycode for right key*/, 0x30 /*Scancode*/, + mContext->getGlobalMetaState(), when); + } + else if (fields & Accumulator::FIELD_BTN_SIDE) { getDispatcher()->notifyKey(when, getDeviceId(), AINPUT_SOURCE_DPAD, 0, mAccumulator.btnSide ? AKEY_EVENT_ACTION_DOWN : AKEY_EVENT_ACTION_UP, @@ -3365,12 +3403,20 @@ void MouseInputMapper::sync(nsecs_t when) { mContext->getGlobalMetaState(), when); } - if (fields & Accumulator::FIELD_BTN_EXTRA) { + if (fields & Accumulator::FIELD_BTN_EXTRA && mLocked.down) { + getDispatcher()->notifyKey(when, getDeviceId(), + AINPUT_SOURCE_DPAD, 0, mAccumulator.btnExtra ? + AKEY_EVENT_ACTION_DOWN : AKEY_EVENT_ACTION_UP, + AKEY_EVENT_FLAG_FROM_SYSTEM, + 0x15 /*Keycode for left key*/, 0x31 /*Scancode*/, + mContext->getGlobalMetaState(), when); + } + else if (fields & Accumulator::FIELD_BTN_EXTRA) { getDispatcher()->notifyKey(when, getDeviceId(), AINPUT_SOURCE_DPAD, 0, mAccumulator.btnExtra ? AKEY_EVENT_ACTION_DOWN : AKEY_EVENT_ACTION_UP, AKEY_EVENT_FLAG_FROM_SYSTEM, - 0x54/*Keycode for search key*/, 0x21 /*Scancode*/, + 0x42/*Keycode for enter key*/, 0x27 /*Scancode*/, mContext->getGlobalMetaState(), when); } @@ -3392,43 +3438,54 @@ void MouseInputMapper::sync(nsecs_t when) { mContext->getGlobalMetaState(), when); } - bool downChanged = fields & Accumulator::FIELD_BTN_MOUSE; - if (downChanged) { - if (mAccumulator.btnMouse) { - mLocked.down = true; - mLocked.downTime = when; - } else { - mLocked.down = false; - } - motionEventAction = mLocked.down ? AMOTION_EVENT_ACTION_DOWN : AMOTION_EVENT_ACTION_UP; - } else { - motionEventAction = AMOTION_EVENT_ACTION_MOVE; - } - bool scrollChanged = fields & Accumulator::FIELD_REL_WHEEL; - if (mAccumulator.btnScrollUp && scrollChanged) { + if (mAccumulator.btnScrollUp && scrollChanged && mLocked.down) { + getDispatcher()->notifyKey(when, getDeviceId(), + AINPUT_SOURCE_DPAD, 0, AKEY_EVENT_ACTION_DOWN, + AKEY_EVENT_FLAG_FROM_SYSTEM, + 0x57/*Keycode for next key*/, 0x28 /*Scancode*/, + mContext->getGlobalMetaState(), when); + getDispatcher()->notifyKey(when, getDeviceId(), + AINPUT_SOURCE_DPAD, 0, AKEY_EVENT_ACTION_UP, + AKEY_EVENT_FLAG_FROM_SYSTEM, + 0x57/*Keycode for next key*/, 0x28 /*Scancode*/, + mContext->getGlobalMetaState(), when); + } + else if (mAccumulator.btnScrollUp && scrollChanged) { + getDispatcher()->notifyKey(when, getDeviceId(), + AINPUT_SOURCE_DPAD, 0, AKEY_EVENT_ACTION_DOWN, + AKEY_EVENT_FLAG_FROM_SYSTEM, + 0x13/*Keycode for up key*/, 0x24 /*Scancode*/, + mContext->getGlobalMetaState(), when); + getDispatcher()->notifyKey(when, getDeviceId(), + AINPUT_SOURCE_DPAD, 0, AKEY_EVENT_ACTION_UP, + AKEY_EVENT_FLAG_FROM_SYSTEM, + 0x13/*Keycode for up key*/, 0x24 /*Scancode*/, + mContext->getGlobalMetaState(), when); + } + else if (mAccumulator.btnScrollDown && scrollChanged && mLocked.down) { getDispatcher()->notifyKey(when, getDeviceId(), AINPUT_SOURCE_DPAD, 0, AKEY_EVENT_ACTION_DOWN, AKEY_EVENT_FLAG_FROM_SYSTEM, - 0x5c/*Keycode for page up key*/, 0x24 /*Scancode*/, + 0x58/*Keycode for previous key*/, 0x29 /*Scancode*/, mContext->getGlobalMetaState(), when); - getDispatcher()->notifyKey(when + (10 * 1000000LL), getDeviceId(), + getDispatcher()->notifyKey(when, getDeviceId(), AINPUT_SOURCE_DPAD, 0, AKEY_EVENT_ACTION_UP, AKEY_EVENT_FLAG_FROM_SYSTEM, - 0x5c/*Keycode for page up key*/, 0x24 /*Scancode*/, - mContext->getGlobalMetaState(), when + (10 * 1000000LL)); + 0x58/*Keycode for previous key*/, 0x29 /*Scancode*/, + mContext->getGlobalMetaState(), when); } else if (mAccumulator.btnScrollDown && scrollChanged) { getDispatcher()->notifyKey(when, getDeviceId(), AINPUT_SOURCE_DPAD, 0, AKEY_EVENT_ACTION_DOWN, AKEY_EVENT_FLAG_FROM_SYSTEM, - 0x5d/*Keycode for page down key*/, 0x25 /*Scancode*/, + 0x14/*Keycode for down key*/, 0x25 /*Scancode*/, mContext->getGlobalMetaState(), when); - getDispatcher()->notifyKey(when + (10 * 1000000LL), getDeviceId(), + getDispatcher()->notifyKey(when, getDeviceId(), AINPUT_SOURCE_DPAD, 0, AKEY_EVENT_ACTION_UP, AKEY_EVENT_FLAG_FROM_SYSTEM, - 0x5d/*Keycode for page down key*/, 0x25 /*Scancode*/, - mContext->getGlobalMetaState(), when + (10 * 1000000LL)); + 0x14/*Keycode for down key*/, 0x25 /*Scancode*/, + mContext->getGlobalMetaState(), when); } downTime = mLocked.downTime; diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java index d6ba03d..1a23586 100644 --- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java @@ -259,16 +259,6 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } } - @Override - public void handleKey(KeyEvent event, Runnable finishedCallback) { - finishedCallback.run(); - - synchronized (mLock) { - if (mousePointerView != null && (event.getKeyCode() == 0x5c || event.getKeyCode() == 0x5d)) { - mousePointerView.addKeyEvent(event); - } - } - } }; int mPointerLocationMode = 0; |