Loading ...
Sorry, an error occurred while loading the content.

51046Re: VIM 7.2a.10 (GTK2, cygwin) weird cursor color problem

Expand Messages
  • mattn
    Jul 2, 2008
      On Thu, Jul 3, 2008 at 8:41 AM, SungHyun Nam <goweol@...> 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
      -~----------~----~----~----~------~----~------~--~---
    • Show all 18 messages in this topic