Skip to content
Browse files

patch 8.0.1026: GTK on-the-spot input has problems

Problem:    GTK on-the-spot input has problems. (Gerd Wachsmuth)
Solution:   Support over-the-spot. (Yukihiro Nakadaira, Ketn Takata, closes
  • Loading branch information...
brammool committed Aug 30, 2017
1 parent 4e83961 commit 5c6dbcb03fa552d7b0e61c8fcf425147eb6bf7d5
Showing with 300 additions and 115 deletions.
  1. +3 −0 runtime/doc/mbyte.txt
  2. +17 −0 runtime/doc/options.txt
  3. +1 −1 src/edit.c
  4. +2 −1 src/ex_getln.c
  5. +238 −102 src/mbyte.c
  6. +9 −6 src/misc1.c
  7. +21 −3 src/option.c
  8. +3 −0 src/option.h
  9. +2 −1 src/screen.c
  10. +1 −0 src/testdir/gen_opt_test.vim
  11. +1 −1 src/undo.c
  12. +2 −0 src/version.c
@@ -832,6 +832,9 @@ Use the RPM or port for your system.

Currently, GUI Vim supports three styles, |OverTheSpot|, |OffTheSpot| and
When compiled with |+GUI_GTK| feature, GUI Vim supports two styles,
|OnTheSpot| and |OverTheSpot|. You can select the style with the 'imstyle'

*. on-the-spot *OnTheSpot*
Preedit Area and Status Area are performed by the client application in
@@ -4356,6 +4356,23 @@ A jump table for the options with a short description can be found at |Q_op|.
NOTE: This function is invoked very often. Keep it fast.

*'imstyle'* *'imst'*
'imstyle' 'imst' number (default 1)
{not in Vi}
{only available when compiled with |+xim| and
This option specifies the input style of Input Method.
Set to zero if you want to use on-the-spot style.
Set to one if you want to use over-the-spot style.
See: |xim-input-style|

For a long time on-the-spot sytle had been used in GTK version of vim,
however, it is known that it causes troubles when using mappings,
|single-repeat|, etc. Therefore over-the-spot style becomes the
default now. This should work fine for most people, however if you
have any problem with it, try using on-the-spot style.

*'include'* *'inc'*
'include' 'inc' string (default "^\s*#\s*include")
global or local to buffer |global-local|
@@ -9683,7 +9683,7 @@ ins_left(
#if defined(FEAT_XIM) && defined(FEAT_GUI_GTK)
/* Only call start_arrow() when not busy with preediting, it will
* break undo. K_LEFT is inserted in im_correct_cursor(). */
if (!im_is_preediting())
if (p_imst == IM_OVER_THE_SPOT || !im_is_preediting())
start_arrow_with_change(&tpos, end_change);
@@ -3468,7 +3468,8 @@ cursorcmd(void)

windgoto(msg_row, msg_col);
#if defined(FEAT_XIM) && defined(FEAT_GUI_GTK)
if (p_imst == IM_ON_THE_SPOT)
Oops, something went wrong.

0 comments on commit 5c6dbcb

Please sign in to comment.
You can’t perform that action at this time.