Questions and thoughts about input method protocol

Pekka Vuorela pvuorela at
Sat Feb 2 01:49:15 PST 2013

On 01.02.2013 21:53, Yichao Yu wrote:
> On Fri, Feb 1, 2013 at 1:48 PM, Pekka Vuorela <pvuorela at> wrote:
>> On 01.02.2013 00:45, Yichao Yu wrote:
>>> On Thu, Jan 31, 2013 at 5:19 PM, Pekka Vuorela <pvuorela at> wrote:
>>>> I was talking about input method _automatically_ changing to one layout
>>>> or
>>>> another based on what was used in a specific text editor previously.
>>>> In more detail: I have an application MyChat and I activate there a
>>>> conversation text field with you. Wayland input method gets activation
>>>> and a
>>>> call like set_context("MyChat-Yichao_Yu"), it remembers that I use to
>>>> speak
>>>> Chinese with you so it enables pinyin automatically.
>>>> Or with a browser, set_context(""), input method
>>>> changes prediction to prioritize words I normally use at
>>>> That's the same information as in window title, but not using concepts
>>>> from
>>>> the wrong level. Maybe even the toolkit integration could try to help and
>>>> set context as default to executable name or something if application
>>>> doesn't override it.
>>> That is not the solution and that is far from what a working Chinese
>>> input method need in another way. The right way is to let the input
>>> method track every input_method_context and store any state
>>> internally, as how it is done in any existing input method system.
>> And exactly what I was saying. Input method keeping the state it needs
>> internally. Above is only a hint for context.
> If I understand what you mean is the request/event added is a way to
> make im-client and input method collaborate better by sharing some
> basic info (like language in use). However, the problem we are having
> is it is impossible to keep track of the same input context whenever a
> im-client lost focus with the current protocol, therefore, the input
> method cannot keep a internal state anywhere. I think Jan already
> agrees to add support for it (thx Jan) and we will get what we need
> from there.

I have never in this thread suggested adding current language as 
information passed to input method nor any other basic info more. I have 
described a method for application to _identify_ a specific context for 
input forever, regardless of when the application gets shutdown or 
restarted. Language and prediction prioritization have been examples how 
input method can _internally_ store state for particular editing targets 
using the editor identifier.

The other discussion I interpreted as identifying run-time unique 
instances of different editors. E.g. starting two instances of MyEditor 
will have something on input method interface allowing to distinguish 
between them. Can be used e.g. for restoring input method type when 
re-focusing a specific text entry. Right?

(To be noted that there are two variations here for language state use 
case: one keeping it per application/editor and other for keeping it for 
separate run-time instances.)

More information about the wayland-devel mailing list