author Sam Lantinga <slouken@libsdl.org>
Wed, 03 Oct 2012 20:49:16 -0700
changeset 6555 f2c03c06d987
parent 4462 5cb6424a5676
child 7578 4b43278168be
permissions -rw-r--r--
Fixed bug 1614 - SDL for Android does not implement TextInput API

Andrey Isakov 2012-10-03 08:30:25 PDT

I've found out in the process of porting one OS project to Android/SDL2 that
there is no support for TextInput events/APIs on Android.
So I implemented some kind of initial support of that feature, and at the very
least it seems to work fine with latin chars input with soft and hardware
keyboards on my Moto Milestone2. I've also tried playing around with more
complex IMEs, like japanese, logging the process and it seemed to work too. I'm
not sure since the app itself I am working on does not have support for
non-latin input.

The main point of the patch is to place a fake input view in the region
specified by SDL_SetTextInputRect and create a custom InputConnection for it.
The reason to make it a separate view is to support Android's pan&scan on input
feature properly. For details please refer to
Even though the manual states that SetTextInputRect is used to determine the
IME variants position, I thought this would be a proper use for this too.
     1 0afe0e38e02cf2048e93582f01c52fbb91d3c7bb release-1.2.7
     2 230b156829ed13b31134d96f689c917981f57b84 release-1.2.5
     3 27cab50ec9c746e886ce0f3fdaa0b0cdc55a594f release-1.2.11
     4 2fe3fbd2bff50165b3cad33bf40d70b3bb3c9fd0 release-1.2.3
     5 3c052d3bcc76c899dfd4846be76243a78e8c7180 release-1.2.4
     6 3c5eed71a3320962551af3b3dfbee0c99fcf0086 release-1.2.10
     7 4867f7f7dd3426d1dbbeef48b3f3b3aa19590cc4 release-1.2.12
     8 6e28dae59e3baf4447c83e833a8d2ac912536f5b release-1.2.1
     9 7c2589fb8d4df54c6faabd3faebd0c0e73f67879 release-1.2.13
    10 86de11faf082881ad9b73a1a1d78733ca07f8db8 release-1.2.6
    11 bb051fa871aa0b53ea57df56a446cec3bb85924c release-1.2.2
    12 cfcb2e1c36ebe9809577adf768b0ec53e8768af9 release-1.2.8
    13 e044e7c70a50a2f54d14ee20d0933e904e5853b6 release-1.2.9
    14 f14cf9d71233934811774f941d0de121d5f96ccf release-1.2.14
    15 39c22a953456f6c9e2c8993c8ff973824104102a pre-touch-removal