[Uim] Determine the semantic of reset

James Su suzhe at tsinghua.org.cn
Mon Jun 6 10:34:39 EEST 2005


Hi,
  The commit event should be emitted by input method itself. In another 
word, whether a preedit string is committable should be decided by input 
method rather than frontend (client app) or user. So I don't think it's 
necessary to export a "committable" property from input method side to 
client application. If you really want such property, it should be a 
private property within individual input method. So having a public API 
for it should be useless and not practical.
  And if you have a look at the api of SCIM, you may find that scim 
provides a separated string element called "aux_string" besides preedit 
string, which is mainly used for displaying hintings and messages. 
Preedit string is always only for composing.

Regards
James Su

TOKUNAGA Hiroyuki wrote:
>On Mon, 06 Jun 2005 10:54:29 +0800
>James Su <suzhe at tsinghua.org.cn> wrote:
>
>  
>>Hi,
>>  I don't think introducing such complex behaviour for reset()
>>semantic is worth and practical. Only the applications, which don't
>>want to retain the preedit string for an input area when focusing
>>out, will call reset (). Otherwise reset() shouldn't be called when
>>focusing out (no matter focus move or focus out). So just implement
>>the reset() as truely reset behaviour (clear preedit string and put
>>input method into original state) should be good enough. The preedit
>>string should only be committed within reset() if it's really
>>necessary to be committed. Users should always let input method
>>engine commit the preedit string or clear the preedit string before
>>moving the focus. Otherwise the default behaviour implemented in
>>input method's reset() method should be invoked if the appliation
>>wants to clear the preedit string. For the applications which don't
>>call reset() at all, input method should not commit the preedit
>>string when focusing out and should re-display the preedit string
>>when focusing in again. It's the user's responsibility to finish the
>>input segment before moving the focus. So I think any additional
>>property like committable-when-focus-out etc., are completely not
>>necessary. reset () is enough.
>>    
>
>Ok, let me split the problems.
>
>At fisrt, semantics of reset is not complex, which remove preedit and
>return to initial input state only. I think there is an agreement for
>this.
>
>Second, there is a request from user side, so 'just implement reset' is
>not enough. The requist is especially important for uim because I am
>the demander ;-)
>
>Third, we need comittable property because all of preedit strings
>should not be committed. For example, in uim-skk, there is a word-
>learning mode, which shows auxiliary strings as a preedit. To be exact,
>we need a way to know/get commitable strings at the point, committable
>property is one way to solve. I think m17n-lib will adopt it, uim will
>not adopt it (because it wil need high cost refactoring in the case of
>uim.)
>
>Hmm, maybe I couldn't split problems appropriately, but the most
>important is third, "all of preedit strings should not be committed" is
>the main reason of existence of committable propery. If you prove
>'reset is enough', you have to prove the way to know 'currently
>commitable strings' without this property or an equivalent feature.
>
>
>Regards,
>
>  




More information about the uim mailing list