fcitx 4 在最近版本 Firefox 上问题,导致打五笔之类的很不舒服(连打的输入方式应该都受影响)

今天才发现,在 openSUSE 15.3 中用 fcitx 4 打五笔

打五笔的都知道,一次最多 4 码,4 码自动上屏。重码时(如 fcln=动 + 劫),打完 4 码虽未选字,但直接再打下一个字(不选字,不按空格,直接打新字,如字母 k)后,第一字(动字)上屏,k 键应生效(成为下个字的第一码)。

但是,唯独 fcitx (4)+Firefox 不行,k 键不生效。(我好像看见 k 想生效,但很快被 Firefox 把输入法选字界面干掉了)

不好意思讲得有点啰嗦。

  • 专门安装了 ibus 打五笔测试,没问题
  • 测试了 Windows 极点五笔在 Firefox 94,没问题
  • 只有在新版的 Firefox 中测试发现 91-94 有这个问题。旧的 Firefox 78 版本没问题
  • Firefox 之外的其他程序没有发现任何问题
  • Firefox 试过了 openSUSE 版和 moz 官方 Linux 版,一样问题
$ zypper se fcitx|grep -E "^i"
i  | fcitx                          | Flexible Context-aware Input Tool with eXtension                               | 软件包
i  | fcitx-branding-openSUSE        | openSUSE default Skins for Fcitx                                               | 软件包
i  | fcitx-cloudpinyin              | Cloudpinyin module for fcitx                                                   | 软件包
i  | fcitx-config-gtk3              | GTK GUI Config tool for FCITX                                                  | 软件包
i+ | fcitx-fbterm                   | Fbterm Support for Fcitx                                                       | 软件包
i  | fcitx-googlepinyin             | Googlepinyin module for fcitx                                                  | 软件包
i  | fcitx-gtk2                     | Gtk2 IM module for fcitx                                                       | 软件包
i  | fcitx-gtk3                     | Gtk3 IM module for fcitx                                                       | 软件包
i  | fcitx-libpinyin                | Libpinyin Wrapper for Fcitx                                                    | 软件包
i  | fcitx-pinyin                   | Chinese Pinyin engine for fcitx                                                | 软件包
i+ | fcitx-qt5                      | Fcitx QT5 Input Context                                                        | 软件包
i+ | fcitx-skin-classic             | Fcitx 经典皮肤                                                                 | 软件包
i  | fcitx-sunpinyin                | Sunpinyin module for fcitx                                                     | 软件包
i  | fcitx-table                    | Table engine for fcitx                                                         | 软件包
i  | fcitx-table-cn-wubi            | Fcitx 五笔码表                                                                 | 软件包
i  | fcitx-table-cn-wubi-large      | Wubi large character set table for Fcitx                                       | 软件包
i+ | kf5-kcm-fcitx                  | KF5 control module for Fcitx                                                   | 软件包
i+ | kf5-kcm-fcitx-icons            | Keyboard icons for kf5-kcm-fcitx                                               | 软件包
i  | libfcitx-4_2_9                 | Shared libraries for fcitx                                                     | 软件包
$ zypper if fcitx
软件包 fcitx 的信息:
---------------------
软件源     : 清华 - 主 - 开源
名称       : fcitx
版本       : 4.2.9.8-bp153.2.21
架构       : x86_64
厂商       : openSUSE
已安装大小 : 8.8 MiB
已安装     : 是 (自动)
状态       : 最新
源代码包   : fcitx-4.2.9.8-bp153.2.21.src

如果我没记错的话,fcitx4 和 ibus 一样是个输入法平台,您说这个可能是它自带的五笔字型输入法,在风滚草上它确实是 4 码无重自动上屏,fx94 上无法复现。
手头主要用的是 rime,又叫小狼毫/鼠须管?
它默认是打句子的,如果用它的自动上屏需要改自定义配置文件 wubi86.custom.yaml,speller 下增加:

max_code_length: 4 # 最长 4 码
auto_select: true  # 顶字上屏,
auto_select_unique_candidate: true # 无重码自动上屏, 

供参考

其实你没啰嗦,发现问题是好事,情况是这样的,kde 是默认用 fcitx 的,gnome 是默认用 ibus 的,这样就会有选字界面跟随光标了

我自己找到影响因素了。上面两位朋友的回复表示感谢,不过并不是你们说的
~/.config/fcitx/profile

# 在客户端窗口中显示预编辑字符串
# 可选值:
# True False
PreeditStringInClientWindow=False

把预编辑禁用掉就出问题。不过我不想打开预编辑啊~
与 DE 或 QT/GTK 无关。一定是 fcitx 或 Firefox 中某一个的缺陷

fcitx5 复现,正在准备 mozregression……

1赞

mozregression 已完成,bug 已经报告于: https://bugzilla.mozilla.org/show_bug.cgi?id=1742039

2赞

:+1: @lilydjwg
已经 vote 了这个 bug
机器人把它设置成了 Component: Address Bar ,但应该是影响整个 Firefox

嗯,只能等一个人类来看看了。

还有更多 bug。。。。。

1

另一个受关闭预编辑影响的 bug。
而且,** 既影响五笔也影响拼音 **!

  • 知乎的回答问题的 Web 编辑框中
  • reddit 的 fancy 编辑器中

在新的一行,输入 “一二三 xxxx”
总是自己变成 “二三 xxxx 一”
就是,敲回车换行后,新的一行第一个字上屏后,光标一定跳回前面去

@lilydjwg 能否在 bugzilla 上也说一下。或者我自己说试试。

2

这一个 bug 好像和输入法没有关系。

从随便一个编辑器(如 leafpad)中复制下面这两句话

我是张三
你是李四

粘贴到知乎的回答框中,它会变成

我是张三你是李四我是张三你是李四

有没有不需要登录的地方?或者你自己测试一下那个 try build 有没有修好?

找到一个 https://react-rte.org/demo
(它源代码: https://github.com/sstur/react-rte)

在这上面更糟糕。。关了预编辑后,在新行中,打一个字,整个页面都不见了,然后 Web console 中可以看见 DOMException。拼音也一样。

在地址栏测试好了,但在上面那个 react-rte 中,一样是打一个字后页面消失

天呐这个 bug 在 Firefox 78 中就有(等等,我再测试一下)

这个看着是这个网页的问题啊。

  • 启用 fcitx 的预编辑的话就没问题,只有禁用 fcitx 预编辑才有问题
  • Chrome 中都没问题
  • 再加上知乎、reddit 用的应该也是类似的编辑器

所以应该是 Firefox 的问题

那你要不去报个 bug 吧。