keymanapp / keyman

Keyman cross platform input methods system running on Android, iOS, Linux, macOS, Windows and mobile and desktop web
https://keyman.com/
Other
377 stars 104 forks source link

bug(web): shift on- double tap behavior (cycling back to shift on), expected to go to "caps lock state" #10272

Closed MayuraVerma closed 6 months ago

MayuraVerma commented 6 months ago

Describe the bug

current behavior.

shift key from normal: single tap -> shift on double tap -> caps lock

shift key from shift on: single tap -> caps state double tap -> back to shift state

Expected behavior. shift key from shift on: single tap -> normal double tap -> caps lock

Reproduce the bug

No response

Expected behavior

Expected behavior. shift key from shift on: single tap -> normal double tap -> caps lock

Related issues

No response

Keyman apps

Keyman version

17.0.231 aplha

Operating system

No response

Device

No response

Target application

No response

Browser

No response

Keyboard name

No response

Keyboard version

No response

Language name

No response

Additional context

No response

mcdurdin commented 6 months ago

This is a regression I believe

On Mon, 18 Dec 2023, 11:34 ಮಯೂರ ವರ್ಮ, @.***> wrote:

Describe the bug

current behavior.

shift key from normal: single tap -> shift on double tap -> caps lock

shift key from shift on: single tap -> normal state double tap -> shift state

Expected behavior. shift key from shift on: single tap -> normal double tap -> caps lock Reproduce the bug

No response Expected behavior

Expected behavior. shift key from shift on: single tap -> normal double tap -> caps lock Related issues

No response Keyman apps

  • Keyman for Android
  • Keyman for iPhone and iPad
  • Keyman for Linux
  • Keyman for macOS
  • Keyman for Windows
  • Keyman Developer
  • KeymanWeb
  • Other - give details at bottom of form

Keyman version

17.0.231 aplha Operating system

No response Device

No response Target application

No response Browser

No response Keyboard name

No response Keyboard version

No response Language name

No response Additional context

No response

— Reply to this email directly, view it on GitHub https://github.com/keymanapp/keyman/issues/10272, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABCKHPILR7VHKUWJ5EZZDMDYJ7BVJAVCNFSM6AAAAABAY5HNOWVHI2DSMVQWIX3LMV43ASLTON2WKOZSGA2DKNZRHE2DENI . You are receiving this because you are subscribed to this thread.Message ID: @.***>

MayuraVerma commented 6 months ago

Even the single tap behavior from "Shift on" state is wrong

Single tap from "Shift on" state should release the shift state and return to normal state.

Expected behavior. shift key from shift on: single tap -> normal double tap -> caps lock

jahorton commented 6 months ago

Even the single tap behavior from "Shift on" state is wrong

Single tap from "Shift on" state should release the shift state and return to normal state.

Expected behavior. shift key from shift on: single tap -> normal double tap -> caps lock

Which keyboard are you seeing this with? I'm not currently able to reproduce some of what you're talking about here.

Single tap from "Shift on" state should release the shift state and return to normal state.

... it does. Unless you're doing it quickly (within half a second or so of your last tap), in which case it thinks you're still multitapping.

Also, is this within the Keyman app, or when using it as a system-wide keyboard on your device?

Expected behavior. shift key from shift on: single tap -> normal double tap -> caps lock

Ah, okay, that is a distinct point and worth considering. It does look like that was in place during 16.0; I hadn't realized, and that would be a regression. Shouldn't be too hard to rectify with a bit of effort.

jahorton commented 6 months ago

In case someone beats me to it, or wants to:

https://github.com/keymanapp/keyman/blob/a84e5202d9d9a3b2103a5a09ac868a698fdfb7cf/common/web/keyboard-processor/src/keyboards/defaultLayouts.ts#L529-L545

Add an extra "default" key spec or two to those - those define the default multitaps for base-layer shift.


https://github.com/keymanapp/keyman/blob/a84e5202d9d9a3b2103a5a09ac868a698fdfb7cf/common/web/keyboard-processor/src/keyboards/activeLayout.ts#L318-L337

We'd want another version for the shift layer in order to set shift-layer defaults.

Those two places should be the only parts in need of an update to remedy:

Expected behavior. shift key from shift on: single tap -> normal double tap -> caps lock

It's the end of my workday, so I'll try to do this tomorrow if someone doesn't get there first.

MayuraVerma commented 6 months ago

Even the single tap behavior from "Shift on" state is wrong Single tap from "Shift on" state should release the shift state and return to normal state. Expected behavior. shift key from shift on: single tap -> normal double tap -> caps lock

Which keyboard are you seeing this with? I'm not currently able to reproduce some of what you're talking about here.

iOS 17.2 Sil Eurolatin

Single tap from "Shift on" state should release the shift state and return to normal state.

... it does. Unless you're doing it quickly (within half a second or so of your last tap), in which case it thinks you're still multitapping.

Also, is this within the Keyman app, or when using it as a system-wide keyboard on your device?

Both Keyman and system-wide

Expected behavior. shift key from shift on: single tap -> normal double tap -> caps lock

Ah, okay, that is a distinct point and worth considering. It does look like that was in place during 16.0; I hadn't realized, and that would be a regression. Shouldn't be too hard to rectify with a bit of effort.

MayuraVerma commented 6 months ago

there is another small issue in the same topic

Default->Single tap->shift on->Single tap->CAPS LOCK this happens when the time gap between two single taps are short this Behavior is as though, after the single tap, shift key was waiting for user to complete the second tap, to accept the double tap.

it maybe timing issue

this is iOS 17.2+ Sil Eurolatin KB

jahorton commented 6 months ago

this happens when the time gap between two single taps are short

Okay, sounds like that's working fine, then. Tapping a key in between would block the behavior. We do want to allow a mild delay between taps to be handled this way for accessibility reasons.

MayuraVerma commented 6 months ago

this happens when the time gap between two single taps are short

Okay, sounds like that's working fine, then. Tapping a key in between would block the behavior. We do want to allow a mild delay between taps to be handled this way for accessibility reasons.

Shift on state; Single tap -> Normal It’s working. As along as the time gap between first and second is long enough. But this needs to be looked into. It’s timing issue.

Shift on state; double tap -> Caps lock This needs to be resolved. Now it’s cycling back to shift on state