Closed Bug 599811 Opened 15 years ago Closed 15 years ago

fn/alt/shift keys on android needs to stay pressed for the next key entry

Categories

(Firefox for Android Graveyard :: General, defect)

All
Android
defect
Not set
normal

Tracking

(fennec2.0b3+)

VERIFIED FIXED
Tracking Status
fennec 2.0b3+ ---

People

(Reporter: mevans, Assigned: mwu)

References

Details

(Keywords: relnote)

Attachments

(2 files)

currently you have to press and hold the fn key plus the next key for it to access the function value. Other browsers will keep it pressed until the next key press.
tracking-fennec: --- → ?
Flags: in-testsuite?
OS: Mac OS X → Android
Hardware: x86 → ARM
Issue also occurs on Maemo 5 GTK/N900 Mozilla/5.0 (Maemo;Linux armv71; rv:2.0b7pre)Gecko/20100930 Firefox/4.0b7pre Fennec/4.0b2pre Mozilla/5.0 (Android; Linux armv71; rv2.0b7pre) Gecko/20100930 Firefox/4.0b7pre Fennec/4.0b2pre
OS: Android → All
Reopening bug 583327 since I was told that the Android doesn't work for a different reason than Maemo.
OS: All → Android
tracking-fennec: ? → 2.0b2+
This affects all modifier keys on Android hardware keyboards, including Fn, Alt, and Shift.
Summary: physical fn key on Samsung epic keyboard needs to stay pressed for the next key entry → fn/alt/shift keys on android needs to stay pressed for the next key entry
tracking-fennec: 2.0b2+ → 2.0b3+
Assignee: nobody → mkristoffersen
OS: Android → All
Keywords: relnote
crowder - can you take a look? MikeK has no android device yet.
Assignee: mkristoffersen → crowderbt
I don't have any Android device that also has a hardware keyboard...
(In reply to comment #0) > currently you have to press and hold the fn key plus the next key for it to > access the function value. Other browsers will keep it pressed until the next > key press. This "workaround" is not working on G2
On a droid 2 Pressing just the 'a' key: 11-19 10:09:54.581 4727 4727 I GeckoApp: onKeyDown 29 11-19 10:09:54.589 4727 4727 W GeckoAppJava: IME: getEditable called from dalvik.system.VMStack.getThreadStackTrace(Native Method) 11-19 10:09:54.604 4727 4735 I GeckoAppJava: IMEStateUpdate notifyIMEChange start: 0 end: 14 newEnd: 0 11-19 10:09:54.612 4727 4735 I GeckoAppJava: IMEStateUpdate notifyIMEChange a start: 0 end: 0 newEnd: 1 11-19 10:09:54.612 4727 4735 I GeckoAppJava: IMEStateUpdate notifyIMEChange start: 1 end: 1 newEnd: -1 11-19 10:09:54.862 4727 4727 I GeckoApp: onKeyUp 29 Pressing the shift key, then the 'a' key: 11-19 10:10:00.221 4727 4727 I GeckoApp: onKeyDown 59 11-19 10:10:00.456 4727 4727 W GeckoAppJava: IME: getEditable called from dalvik.system.VMStack.getThreadStackTrace(Native Method) 11-19 10:10:00.456 4727 4727 I GeckoApp: onKeyUp 59 11-19 10:10:01.050 3891 3891 D MetaKeyHandler: create a new event with new meta state 11-19 10:10:01.057 4727 4727 I GeckoApp: onKeyDown 29 11-19 10:10:01.065 4727 4727 W GeckoAppJava: IME: getEditable called from dalvik.system.VMStack.getThreadStackTrace(Native Method) 11-19 10:10:01.089 4727 4735 I GeckoAppJava: IMEStateUpdate notifyIMEChange aa start: 1 end: 1 newEnd: 2 11-19 10:10:01.089 4727 4735 I GeckoAppJava: IMEStateUpdate notifyIMEChange start: 2 end: 2 newEnd: -1 11-19 10:10:01.292 4727 4727 I GeckoApp: onKeyUp 29 Pressing the shift, holding it, then pressing the 'a' key: 11-19 10:11:47.128 4727 4727 I GeckoApp: onKeyDown 59 11-19 10:11:47.237 4727 4727 I GeckoApp: onKeyDown 47 11-19 10:11:47.245 4727 4727 W GeckoAppJava: IME: getEditable called from dalvik.system.VMStack.getThreadStackTrace(Native Method) 11-19 10:11:47.261 4727 4735 I GeckoAppJava: IMEStateUpdate notifyIMEChange S start: 0 end: 0 newEnd: 1 11-19 10:11:47.261 4727 4735 I GeckoAppJava: IMEStateUpdate notifyIMEChange start: 1 end: 1 newEnd: -1 11-19 10:11:47.456 4727 4727 I GeckoApp: onKeyUp 47 11-19 10:11:47.675 4727 4727 W GeckoAppJava: IME: getEditable called from dalvik.system.VMStack.getThreadStackTrace(Native Method) 11-19 10:11:47.675 4727 4727 I GeckoApp: onKeyUp 59
Let's see if this can make b3.
Assignee: crowderbt → mwu
Attachment #492399 - Flags: review?(doug.turner)
Blocks: 602240
Comment on attachment 492399 [details] [diff] [review] Use KeyListener to filter keyevents --- GeckoSurfaceView.java Applied patch and rejects were found.
I think I am missing something, i applied this patch and still see the same behavior.
Attachment #492399 - Flags: review?(doug.turner) → review-
Comment on attachment 492424 [details] [diff] [review] Use KeyListener to filter keyevents (without dependency on other patches) cool. this patch worked for me. >- GeckoAppShell.sendEventToGecko(new GeckoEvent(event)); >+ if (GeckoApp.surfaceView.mIMEState == 0 || nit: is there a IME_STATE_ define that we can use here instead of 0 >+ keyCode == KeyEvent.KEYCODE_ENTER || >+ !GeckoApp.surfaceView.mKeyListener.onKeyDown(GeckoApp.surfaceView, GeckoApp.surfaceView.mEditable, keyCode, event)) >+ GeckoAppShell.sendEventToGecko(new GeckoEvent(event)); Reading over the code, it wasn't plainly clear when onKeyDown or onKeyUp would return false here. >+ int maxLen = GeckoApp.surfaceView.mEditable.length(); >+ if (end > GeckoApp.surfaceView.mEditable.length()) >+ end = GeckoApp.surfaceView.mEditable.length(); use a temporary variable for |GeckoApp.surfaceView.mEditable.length()| >+ public void setupEditable(String contents) >+ { >+ mEditable = mEditableFactory.newEditable(contents); >+ mEditable.setSpan(inputConnection, 0, contents.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); >+ Selection.setSelection(mEditable, contents.length()); >+ } probably want to have another temporary for .length() Overall fine. Love to get you to add some comments, but that can be a followup
Attachment #492424 - Flags: review+
OS: All → Android
Hardware: ARM → All
http://hg.mozilla.org/mozilla-central/rev/0b2b0417c11f Lemme know if you want more comments.
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Depends on: 614223
Somehow these hunks got reversed between review and checkin, causing bug 614223. Fix pushed: http://hg.mozilla.org/mozilla-central/rev/0ffa6f6ee041
Depends on: 614230
Depends on: 614252
Depends on: 614289
Depends on: 614293
Works for Maemo, need to wait for android
Depends on: 615208
Verified: Mozilla/5.0 (Android; Linux armv71; rv2.0b8pre) Gecko/20101129 Firefox/4.0b8pre Fennec/4.0b3pre Note : bug 615278
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: