Bug 695407 - Support modifier keys with touch events. r=blassey

This commit is contained in:
Wes Johnston 2012-10-16 17:01:50 -07:00
parent 5758e4554d
commit 4f59d4b93f
2 changed files with 14 additions and 0 deletions

View File

@ -552,6 +552,14 @@ public:
META_SHIFT_LEFT_ON = 0x00000040,
META_SHIFT_RIGHT_ON = 0x00000080,
META_SHIFT_MASK = META_SHIFT_RIGHT_ON | META_SHIFT_LEFT_ON | META_SHIFT_ON,
META_CTRL_ON = 0x00001000,
META_CTRL_LEFT_ON = 0x00002000,
META_CTRL_RIGHT_ON = 0x00004000,
META_CTRL_MASK = META_CTRL_RIGHT_ON | META_CTRL_LEFT_ON | META_CTRL_ON,
META_META_ON = 0x00010000,
META_META_LEFT_ON = 0x00020000,
META_META_RIGHT_ON = 0x00040000,
META_META_MASK = META_META_RIGHT_ON | META_META_LEFT_ON | META_META_ON,
META_SYM_ON = 0x00000004,
FLAG_WOKE_HERE = 0x00000001,
FLAG_SOFT_KEYBOARD = 0x00000002,
@ -663,6 +671,8 @@ public:
int DomKeyLocation() { return mDomKeyLocation; }
bool IsAltPressed() const { return (mMetaState & AndroidKeyEvent::META_ALT_MASK) != 0; }
bool IsShiftPressed() const { return (mMetaState & AndroidKeyEvent::META_SHIFT_MASK) != 0; }
bool IsCtrlPressed() const { return (mMetaState & AndroidKeyEvent::META_CTRL_MASK) != 0; }
bool IsMetaPressed() const { return (mMetaState & AndroidKeyEvent::META_META_MASK) != 0; }
int Flags() { return mFlags; }
int UnicodeChar() { return mUnicodeChar; }
int RepeatCount() const { return mRepeatCount; }

View File

@ -1421,6 +1421,10 @@ nsWindow::DispatchMultitouchEvent(nsTouchEvent &event, AndroidGeckoEvent *ae)
event.modifiers = 0;
event.time = ae->Time();
event.InitBasicModifiers(ae->IsCtrlPressed(),
ae->IsAltPressed(),
ae->IsShiftPressed(),
ae->IsMetaPressed());
int action = ae->Action() & AndroidMotionEvent::ACTION_MASK;
if (action == AndroidMotionEvent::ACTION_UP ||