Repository navigation
v0.3.9
这一版修好桌面端终端的输入丢字,并接通「把文件从访达拖进终端」。
三个症状都只在桌面端出现,根因两类:两个是 xterm 在 WebKit 上的输入缺口,
一个是原生拖放通道压根没接。升级无需改配置。
修复
-
文本展开工具(espanso 等)不再只进首字符。 macOS 上这类工具把整串文本塞进
一个键事件(key="git status"),而 xterm 判可打印字符的条件是
ev.key.length === 1,多字符落到 keypress 分支被String.fromCharCode压成
首字符发出去,随后那个带完整文本的 input 事件又因「keypress 已处理」被丢弃。
现在认出这个形状不让它压缩,改由 input 事件补发完整文本。 -
中文输入法下的标点(
?¥%)不再要敲好几遍。 WebKit 在输入法直接上屏时
把input事件排在keydown之前,xterm 的准入条件撞上被 Shift 那一下置真的
_keyDownSeen,字符被丢;Shift 按住不放时后续几下才侥幸通过——所以症状是
「按下 Shift 后的第一个标点必丢」,而要按 Shift 的标点恰好是最常用的那几个。以上两条在 xterm 6.0.0 里代码一字未改,升级上游解决不了,故修在控制台这层。
补漏以「xterm 这一轮到底发没发」为判据,上游哪天补上会自动让位,不会变成双发。
新增
- 可以把文件从访达拖进终端了,落进去的是完整绝对路径,按 POSIX 单引号转义
(文件名里的空格、$、反引号都不会被 shell 展开)。走的是 Wails 的原生拖放
通道——WKWebView 的网页层拿得到 File 对象却拿不到路径,这件事只能由原生给。
拖到终端以外的区域不响应。