engine: Korean and Telex let Escape through after committing
A pending Hangul syllable is real text, and Escape is what vi users press to leave insert mode; eating it and dropping the syllable served nobody. fcitx5-hangul commits and passes any key it does not consume, Escape included; do the same for Korean and Telex. A Japanese reading is still cancelled: there Escape is the IME's own key.
This commit is contained in:
@@ -27,7 +27,9 @@ the application. `Space` on a reading without candidates commits it and
|
|||||||
types nothing. `Backspace` and `Esc` on a chosen candidate go back to the
|
types nothing. `Backspace` and `Esc` on a chosen candidate go back to the
|
||||||
reading. In a temporary Emoji or Hanja search, `Enter` commits the
|
reading. In a temporary Emoji or Hanja search, `Enter` commits the
|
||||||
highlighted result and `Tab`/`Shift-Tab` wrap through the results. Leaving
|
highlighted result and `Tab`/`Shift-Tab` wrap through the results. Leaving
|
||||||
the field or clicking elsewhere commits what is pending; `Esc` cancels it.
|
the field or clicking elsewhere commits what is pending. `Esc` cancels a
|
||||||
|
Japanese reading or a search; in Korean and Vietnamese it commits the
|
||||||
|
syllable and goes on to the application, so it still leaves insert mode.
|
||||||
|
|
||||||
Hiragana mode composes a complete reading before offering Kanji candidates.
|
Hiragana mode composes a complete reading before offering Kanji candidates.
|
||||||
Katakana mode does not perform Kanji conversion. Emoji and Hanja searches
|
Katakana mode does not perform Kanji conversion. Emoji and Hanja searches
|
||||||
|
|||||||
2
strans.c
2
strans.c
@@ -704,7 +704,7 @@ transition(u32int ks, u32int mod, Str *com)
|
|||||||
flush(com);
|
flush(com);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if(ks == Ktab || ks == Kret){
|
if(ks == Ktab || ks == Kret || (ks == Kesc && !isjp(&im))){
|
||||||
if(!haspre(&im))
|
if(!haspre(&im))
|
||||||
return 0;
|
return 0;
|
||||||
flush(com);
|
flush(com);
|
||||||
|
|||||||
@@ -66,8 +66,8 @@ vietnamese_state_lifetime(struct ct *t)
|
|||||||
im.pre = mkstr("as");
|
im.pre = mkstr("as");
|
||||||
im.raw = mkstr("as");
|
im.raw = mkstr("as");
|
||||||
sclear(&com);
|
sclear(&com);
|
||||||
CT_CHECK(t, keystroke(Kesc, 0, &com));
|
CT_CHECK(t, !keystroke(Kesc, 0, &com));
|
||||||
CT_EQ_INT(t, 0, com.n);
|
checkstr(t, "Escape commits Telex", "á", &com);
|
||||||
CT_EQ_INT(t, 0, im.pre.n);
|
CT_EQ_INT(t, 0, im.pre.n);
|
||||||
CT_EQ_INT(t, 0, im.raw.n);
|
CT_EQ_INT(t, 0, im.raw.n);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user