Commit graph

40 commits

Author SHA1 Message Date
Marc Durdin
35c5a34126
Update web/source/osk/browser/keytip.ts 2021-11-17 09:14:21 +11:00
Marc Durdin
c9474ceae8 fix(web): remove canvas use for iOS compatibility
Fixes #5831.

iOS 15 has a significant crashing bug whereby use of a canvas element
completely crashes the browser in some contexts. In particular, we have
observed this when using a WKWebView in a keyboard extension without
'Allow Full Access' switched on.

Keyman uses canvas element to draw a nice looking key preview (key tip)
on iPhones. This is a critical issue for Keyman for iPhone. Keyman for
iPad is not affected because the iPad version does not use key previews.

The resolution here is to remove use of the canvas drawing for key tips
and use a simplified pure HTML/CSS shape. I have not conditioned this
fix on platform; I have currently opted to apply this to all platforms.

This issue will be reported to Apple for resolution. The issue applies
so far to iOS 15.0, 15.1.
2021-11-16 16:51:34 +11:00
Marc Durdin
dbd9787a7a
Merge branch 'master' into fix/web/popup-positioning 2021-10-05 17:41:49 +11:00
jahorton
31ac1b7c1b chore(web): replaces literals with constants 2021-09-23 09:27:09 +07:00
Marc Durdin
c760fb7464 fix(web): popup positioning
Fixes three issues:

* longpress positioning for inlined OSK views where not all elements
  may be in the offset hierarchy; impacts particularly where an inlined
  OSK may be within a flex-box.

* Tweaks position of keytip, to take into account the offsetTop of the
  key element.

* Inverts test for display of longpress callout, matching Keyman 14.
2021-09-23 08:18:57 +10:00
jahorton
da8e83090a fix(web): touch-based unit test issues 2021-09-20 15:46:59 +07:00
jahorton
632642b6c2 feat(web): functional touch-subkeys on desktop 2021-09-02 12:30:37 +07:00
jahorton
dfdf0c2e9b fix(web): key preview positioning 2021-09-02 10:39:54 +07:00
jahorton
6b248075d6 feat(web): partially-functional inlined OSK! 2021-09-01 15:31:01 +07:00
jahorton
9611537e06 refactor(web): osk._Load 2021-08-23 10:01:07 +07:00
jahorton
e1da0014c3 refactor(web): start of OSKView abstraction 2021-08-23 10:01:06 +07:00
jahorton
a96d04cc4e refactor(web): abstraction for OSK touch-event input 2021-07-30 08:15:15 +07:00
jahorton
84e2c368cf fix(web): restores key tip, subkey popup positioning 2021-07-27 07:56:54 +07:00
jahorton
3f2897485b refactor(web): drops 'widthpc', 'padpc' 2021-07-26 15:59:25 +07:00
jahorton
e90eb643f5 refactor(web): kmw-5rows class: key -> layer 2021-07-26 15:19:23 +07:00
jahorton
43d5181092 change(web): more consistent base-key longpress release 2021-07-06 14:27:37 +07:00
jahorton
fefffc80fd fix(web): more consistent clear on base key highlights 2021-07-06 14:14:14 +07:00
jahorton
543812c0d7 fix(web): missing 'bind' for in-browser resolve 2021-07-02 09:25:29 +07:00
jahorton
b775618937 fix(web): embedded ios stuck base key highlights 2021-07-02 09:09:58 +07:00
jahorton
8d0364016f fix(web): missed a '!' for in-browser base key reselection 2021-07-01 08:11:43 +07:00
jahorton
c6a5961421 feat(web): adds error log to SubkeyPopup.updateTouch 2021-06-30 12:16:15 +07:00
jahorton
cafe421e98 docs(web): gesture subclasses 2021-06-30 12:09:19 +07:00
jahorton
a8e82e5bea chore(web): more changes from PR review 2021-06-30 11:09:32 +07:00
Joshua Horton
e0cf57d508
chore(web): Apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2021-06-30 10:11:46 +07:00
jahorton
625b5fd8c8 fix(web): output base key if subkey touch returns to it (in-browser) 2021-06-24 12:54:10 +07:00
jahorton
60081b7c4a refactor(web): initial mutual abstraction for pending longpresses 2021-06-24 12:34:43 +07:00
jahorton
d5e5635242 refactor(web): merged subkey highlighting control 2021-06-24 12:34:43 +07:00
jahorton
0d109b12b0 refactor(web): 'easy' part of abstracted RealizedGesture for subkeys 2021-06-24 12:34:43 +07:00
jahorton
3a98204919 fix(web): pending-longpress field management 2021-06-24 12:33:42 +07:00
jahorton
36536f89bc refactor(web): browser subkey control flow abstraction prep 2021-06-24 12:33:42 +07:00
jahorton
d4d9808727 refactor(web): in-browser subkey tracking managed by SubkeyPopup 2021-06-24 12:12:08 +07:00
jahorton
8794f7d018 change(web): allows passive cancel for subkey promises 2021-06-17 09:37:34 +07:00
jahorton
e347c423bf refactor(web): wraps in-browser subkey selection with Promise 2021-06-16 15:17:06 +07:00
jahorton
4c5500d026 refactor(web): osk key highlighting 2021-06-16 09:20:43 +07:00
jahorton
0566f435d9 refactor(web): osk key class defs -> separate files 2021-06-16 08:39:53 +07:00
jahorton
d68fb7bac3 refactor(web): browser-based subkey array init + display management 2021-06-15 12:14:28 +07:00
jahorton
b3d13c5b9e fix(web): removes accidental comment-out op 2021-06-15 10:04:29 +07:00
jahorton
c8293504e1 refactor(web): non-embedded keytips: constrain param 2021-06-15 09:50:30 +07:00
jahorton
9508d70589 refactor(web): keytip abstraction, showKeyTip fusion 2021-06-15 09:35:45 +07:00
jahorton
0ee50e7d85 refactor(web): encapsulates embedded keytip 2021-06-15 09:20:40 +07:00