Bug 124905 - iPad OS 13: iPad Hardware-Keyboard in iOS App
Summary: iPad OS 13: iPad Hardware-Keyboard in iOS App
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: iOS Editor (show other bugs)
Version:
(earliest affected)
unspecified
Hardware: Other iOS
: medium enhancement
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-04-23 11:47 UTC by Andreas Gruhler
Modified: 2021-03-24 08:36 UTC (History)
3 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andreas Gruhler 2019-04-23 11:47:55 UTC
Description:
The iOS-App lacks support for a number of hardware keys and shortcuts:
* Cursor-Keys (Left, Up, Down, Right) to move the cursor in the document
* Tab to insert tab characters
* Caps Lock to switch between lower/uppercase
* "cmd" to use "cmd+c", "cmd+v", "cmd+x", etc. to copy/paste text
* Shift + Cursor-Key to select/mark text

Steps to Reproduce:
Open a new document and use the iPad hardware keys mentioned in the bug description


Actual Results:
The keys from the bug description do not trigger any actions

Expected Results:
The keys from the bug description trigger the appropriate actions


Reproducible: Always


User Profile Reset: No



Additional Info:
Comment 1 Andras Timar 2019-05-21 09:33:12 UTC
I'm afraid it's not our bug. It seems to be a bug in WebKit on iOS, those keypresses don't generate events. See also: https://bugs.webkit.org/show_bug.cgi?id=149054
Comment 2 How can I remove my account? 2019-05-29 16:56:00 UTC
Note that some of the keys mentioned in the list do work. Caps Lock works, and Cmd+V does work now since a week or so, commit 10ff9c1a65a7e333d3aa6f2811d1480fa53fe75e on May 21.
Comment 3 How can I remove my account? 2019-05-29 17:30:11 UTC
At least part of the problem seems to be that loleaflet uses a HTML text input field that it gives the focus to enable the on-screen keyboard, even of there iOS a hardware keyboard (and no on-screen keyboard will pop up). The cursor keys are then handled inside that text input field (even if the field does not have any contents) and not passed on as JavaScript events. If the text input field does not have focus, the cursor keys arrive as keyboard events with key property "ArrowDown", "ArrowLeft" etc.

Here is a useful tiny test HTML page I use to experiment with:

> <html>
>   <head>
>     <title>
>       Title
>     </title>
> 
>     <script>
>       var keyeventhandler = function(e) {
> 	  console.log(e.type + ' "' + e.key + '" ' + e.keyCode + ' ' + e.charCode);
> 	  if (e.type === 'keydown' && e.key === 'f')
> 	      window['inputfield'].focus();
> 	  else if (e.type === 'keydown' && e.key === 'b')
> 	      window['inputfield'].blur();
>       }
> 
>       var textinputeventhandler = function(e) {
> 	  console.log('textInput: "' + e.data + '"');
>       }
> 
>       var inputeventhandler = function(e) {
> 	  console.log(e.inputType);
>       }
> 
>       var compeventhandler = function(e) {
> 	  console.log(e.type + ' "' + e.data + '"');
>       }
> 
>       var clipboardeventhandler = function(e) {
> 	  console.log(e.type);
>       }
> 
>       window.addEventListener('keydown', keyeventhandler);
>       window.addEventListener('keypress', keyeventhandler);
>       window.addEventListener('keyup', keyeventhandler);
> 
>       window.addEventListener('textInput', textinputeventhandler);
> 
>       window.addEventListener('input', inputeventhandler);
> 
>       window.addEventListener('compositionstart', compeventhandler);
>       window.addEventListener('compositionupdate', compeventhandler);
>       window.addEventListener('compositionend', compeventhandler);
> 
>       window.addEventListener('copy', clipboardeventhandler);
>       window.addEventListener('paste', clipboardeventhandler);
> 
>     </script>
> 
>   </head>
>   <body>
>     Body.
>     <input id="inputfield" type="text">
>   </body>
> </html>
Comment 4 Nicolas Christener 2019-08-16 12:58:39 UTC
The situation is way better in iOS 13, for example the cursor keys work out of the box now.

We however need to make sure, that common keyboard shortcuts work - right now, they don't.

I'm not an Apple/iOS user but would expect the following shortcuts to work. This should be ready before iOS 13 will be released (Sept. 17 2019).

* cmd + c (copy text)
* cmd + v (paste text)
* cmd + x (cut text)

* cmd + z (undo)
* shift + cmd + z (redo)

* shift + cursor (select text)

* cmd + b (change style to bold)
* cmd + i (change style to italic)
* cmd + u (change sytle to underline)

* cmd + f (find)
* cmd + g (navigate to next found element)
* shift + cmd + g (navigate to previous found element)

* cmd + k (edit/insert hyperlink)
Comment 5 Nicolas Christener 2019-11-20 13:39:12 UTC
I tested the shortcuts with 4.2.20 an most of the listed shortcuts now work \o/

The following ones seem not to work - but are not that important (IMHO):

* shift + cmd + z (redo)
* cmd + f (find)
* cmd + g (navigate to next found element)
* shift + cmd + g (navigate to previous found element)

Maybe check for "cmd + f" and then close this issue as fixed?

@Tor: what do you think?
Comment 6 Reklow 2020-11-17 21:35:37 UTC
Hi I just joined to Bugzilla because of the limited external keyboard support inside the iOS Collabora App version 4.2.11-1 running under iOS 14.2 on iPad Pro 12.9“ 2020 using the Apple Smartfolio Keyboard in german layout.

Inside my environment it is still impossible to
- Positioning the cursor using the arrow-keys
- Marking of text using shift + arrow-keyes
- Textformating Bold using cmd + b
- Textformating Italic using cmd + i
- Textformating Underline using cmd + u

Discussed but working keyboard commands are
+ tab = insert tab characters
+ cmd + c = copy
+ cmd + x = cut
+ cmd + v = paste
+ cmd + z = Undo

It would be great there is stil work on this case and there will be a fix in the future. The usage of the App is quite limited on an iPad without external keyboard support.
Comment 7 How can I remove my account? 2020-11-17 22:11:26 UTC
Try the latest 6.4.0 TestFlight builds from https://testflight.apple.com/join/TEnBWi68 .
Comment 8 steve 2021-03-24 08:30:50 UTC
iOS 14.4.1
Collabora Office 6.4.7
External Bluetooth Keyboard

Retested all shortcuts with current iOS and LO version. Results:

Non-functional keyboard shortcuts:
- cmd+a
- cmd+c
- cmd+v
- marked text + cmd+b (bold)
- marked text + cmd+i (italic)
- marked text + cmd+i (underline)
- shift+cmd+z (redo)
- cmd+f (find)
- cmd + g (navigate to next found element)
- shift + cmd + g (navigate to previous found element)

Fixed since initial report:
- cursor-keys to move in document
- tab: does move text to the right one tab space
- caps lock: switching works as expected
- Shift + Cursor key to mark text

Remaining non-functional keyboard shortcuts are covered in follow-up bug: https://bugs.documentfoundation.org/show_bug.cgi?id=141217