Commit Graph

60 Commits (ffdcad9e400ff43b7f33621caca672389a03e4e6)

Author SHA1 Message Date
Paul Olav Tvete 675d354815 Avoid deadlock when suspending device
Don't wait for the GUI thread when it's already waiting for us.

An application that uses the virtual keyboard may get an inputmethod
query just when it is being suspended. If the GUI thread is already
blocking on a semaphore at that point, waiting for the android thread,
we really do not want to wait for the GUI thread...

Task-number: QTBUG-40955
Change-Id: Iea2cf0dd058a41a897d596c4bcf16f0508adb20b
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2014-09-05 14:04:34 +02:00
Paul Olav Tvete b732e56969 Android: Report current selection to the input method
Task-number: QTBUG-39196
Change-Id: Ib798f1de83ccbe3830a746b6ddd435a0934c34cd
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-05-26 15:06:12 +02:00
Paul Olav Tvete eed30131e1 Android: text cursor position fixes
The Android input method protocol specifies that finishComposingText()
should not move the cursor. Since Qt likes to move the cursor to the
end of the newly committed text, we have to explicitly move the cursor
to where the preedit cursor used to be. Fortunately we already keep
track of that.

Also implement support for the newCursorPosition argument to commitText()
since the function needed to be rewritten anyway. (It was calling
finishComposingText().)

Task-number: QTBUG-38794
Change-Id: Iff2c43bdbd3dda812ccdc71da63f3fa730474eef
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-05-08 13:50:22 +02:00
Paul Olav Tvete 7e071cebaa Android input method fixes for SwiftKey
Try to conform to the input method protocol in the way that
SwiftKey expects (and the way that the stock android
components actually do).

* Refactor cursor position logic
* fix getExtractedText() so it includes preedit text
* ignore the hintMaxChars parameter to getExtractedText(), since
  it looks like everybody else does
* fix setComposingRegion when preedit is active
* track the start of the preedit and the preedit cursor position,
  since the Qt input method query does not give us this information

Change-Id: I2ed8797abacd97ca749ca152fab2a2d5446ef603
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-04-25 06:34:08 +02:00
Paul Olav Tvete 6e26bd5fa2 Android input method fix
Let textBeforeCursor return the text immediately before the cursor,
and not the text at the beginning of the paragraph, even if that is
also technically before the cursor. (Apparently I do not know the
difference between left and right.)

Change-Id: I6043ebe53838e68880b6407dbb9e5370bc785c1b
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-04-18 07:45:04 +02:00
Paul Olav Tvete 3f9ad1efd6 Android: Reset input method when focus changes
Qt Quick does not have the widgets workaround of explicitly hiding
the input method on focus out. This fix copies what happens in
the iOS port: Commit the current preedit and reset the IM when we
see that the focus object changes.

Task-number: QTBUG-38047
Change-Id: I30805265286dc650b3734e2a24807cdc8bfbcd16
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-04-16 07:29:22 +02:00
Paul Olav Tvete eccf1c51a6 Android: input method fixes for SwiftEdit keyboard
* Report correct pre-edit information when calling updateSelection()
  on endBatchEdit()
* Fix getExtractedText() to report the correct offset and cursor position,
* Fix setSelection() to use the correct cursor position.

Task-number: QTBUG-35689

Change-Id: I7e8427d0f5a18abf18ba2faf9d510756ddf6044b
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-03-31 14:01:35 +02:00
Paul Olav Tvete 3c6c14c0bf Android: implement batch editing for input methods
Task-number: QTBUG-37584
Change-Id: I59f063b2e4b6427a66f7b561cfae7193ceafa43c
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-03-28 18:04:22 +01:00
Paul Olav Tvete 68a9229a97 Android input method improvements
Use the new inputmethod query API. and get rid of the hack where
we would move the cursor back and forwards to make sure that the
Android software keyboard noticed that the cursor had moved.

The android plugin now uses absolute positions instead of
position within the paragraph for all cursor handling (provided
that the control supports the new API).

Task-number: QTBUG-37511
Change-Id: I03463dbbcb4acbfa41e2eab06889d021d50da01f
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-03-18 09:59:20 +01:00
BogDan Vatra 8a9bd001c9 Support multiple native surfaces on Android.
Support for multiple native surfaces is needed by applications that need
to mix raster windows with GL windows.
Rework the raster and opengl implementation, get rid of eglfs and
fbconvenience dependencies.
Create a single android platform plugin.

[ChangeLog][Android] Rework the raster and opengl implementation.
[ChangeLog][Android] Create a single android platform plugin.

Task-number: QTBUG-34650

Change-Id: I9b1ab51554823329dda8cfbf8fef27c38f917c7b
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-01-17 10:23:08 +01:00