On Thu, Jul 3, 2008 at 8:41 AM, SungHyun Nam <[EMAIL PROTECTED]> wrote:
<snip>
>  >>   Or, CursorIM should be changed while the preediting characters are
>  >> exist.
>
> And my patch exactly did it? did I misunderstood?

Yes. I don't think the removing all supports of CursorIM on gtk2. It's
a partial supports.
I tried imhangle. vim can't get status of IM with imhangle too because
gtkimmodule does not provide API which can get status.
Certainly, when you type 's-space' on imhangul, vim change the cursor
to CursorIM. but im may not be active.

(1) imhangul
  for example, you want to input multi-byte "[A1][A2]".
  * A1: need to type a1#  (example)
  * A2: need to type a2#

  you will type "<s-space>a1#a2#<s-space>". then gtkimmodule emit
    following events.

  <s-space> : preedit_start
  a : preedit_change
  1 : preedit_change
  # : commit
  a : preedit_change
  2 : preedit_change
  # : commit
  <s-space> : preedit_end

(2) scim or uim
  for example, japanese want to input multi-byte "[A1][A2]".
  * A1: need to type a1#  (example)
  * A2: need to type a2#

  japanese will type ...
    <s-space>
        a1#<space><cr>
        a2#<space><cr>
        <s-space>

  gtkimmodule emit following events.

  <s-space> : no events
  a : preedit_start, preedit_change
  1 : preedit_change
  # : preedit_change
  <space> : preedit_change
  <cr> : commit, preedit_change, preedit_end
  a : preedit_start, preedit_change
  2 : preedit_change
  # : preedit_change
  <space> : preedit_change
  <cr> : commit, preedit_change, preedit_end
  <s-space> : no events

Thus, the range of "preedit_start" and "preedit_end" does not mean
that IM is active.

i.e. vim-gtk2 can't treat status of IM perfectly.

>  >> Bram, how do you think about?
>  >>
>  >> If you accept above changes, I'll make a patch of fixing this.
>  >> (I have already the patch roughly)
>
> BTW, was this problem caused by CursorIM supporting?
> Bram said:
>     Looks like this is the usual mixup with using one flag for
>     more than one thing.  Perhaps we also need a
>     "preedit_is_active" flag?
> Please think about it if you didn't.

Yes, my solution is the fixing of above. CursorIM is getting status of
IM from "im_get_status()".
But vim should set status of preediting for CursorIM. My roughly patch
is fixing this.

-- 
- Yasuhiro Matsumoto

--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---

Raspunde prin e-mail lui