squirrel
squirrel copied to clipboard
部分應用(如Chrome)首次輸入候選框可能位於窗口外
- 左上角的問題沒完全修復的話,那就再繼續研究吧,多謝反饋。 但我並不能成功復現你的問題,你能詳細描述一下如何復現嗎?
- 檢查新版本還不能用是故意的,過一兩週才會開始推送
非常感谢回复。关于第一点,每次打开浏览器在输入框内首次会出现这样的问题。
非常感谢回复。关于第一点,每次打开浏览器在输入框内首次会出现这样的问题。
那我確實無法復現,我的Chrome是123,Edge是124。打開瀏覽器第一次輸入沒有問題
非常感谢回复。关于第一点,每次打开浏览器在输入框内首次会出现这样的问题。
那我確實無法復現,我的Chrome是123,Edge是124。打開瀏覽器第一次輸入沒有問題
Chrome 124,完全复现,只要新开标签页也默认光标焦点位置是在搜索框内的(比如Google、百度、淘宝),首次打字就会发现这个问题。
反正我沒法復現,等別人研究吧(Chrome已升124)
https://github.com/rime/squirrel/assets/4469383/5cfadfe7-8290-4c0b-a8bf-6f1a1bf46809
反正我沒法復現,等別人研究吧(Chrome已升124)
Screen.Recording.2024-05-05.at.10.42.30.mov
需要在Google的主页输入框上进行,标签页的话是没法复现的。
不过我刚自己试了下,其实v16.2也有一样的问题。
需要在Google的主页输入框上进行
我打開新標籤焦點默認在地址欄
需要在Google的主页输入框上进行
我打開新標籤焦點默認在地址欄
进入google首页:[https://www.google.com/],然后在主页的搜索框里输入,会复现这个问题。
確實,找到方法復現了。輪入google網址進入google,光標自動聚焦到搜索框,此時輪入,候選欄在窗口外
確實,找到方法復現了。輪入google網址進入google,光標自動聚焦到搜索框,此時輪入,候選欄在窗口外
NSRect IbeamRect = NSZeroRect;
[self.client attributesForCharacterIndex:0
lineHeightRectangle:&IbeamRect];
if (NSEqualRects(IbeamRect, NSZeroRect) && _inlineString.length == 0) {
if (self.client.selectedRange.length == 0) {
// activate inline session, in e.g. table cells, by fake inputs
[self.client setMarkedText:@" "
selectionRange:NSMakeRange(0, 0)
replacementRange:NSMakeRange(NSNotFound, NSNotFound)];
[self.client attributesForCharacterIndex:0
lineHeightRectangle:&IbeamRect];
[self.client setMarkedText:@""
selectionRange:NSMakeRange(0, 0)
replacementRange:NSMakeRange(NSNotFound, NSNotFound)];
} else {
[self.client attributesForCharacterIndex:self.client.selectedRange.location
lineHeightRectangle:&IbeamRect];
}
}
我傾向於認爲這是 Chrome 的 BUG。
- google.com 搜索條的
selectedRange
永遠是{0,0}
,而在 Safari 和 Firefox 上無此問題。 - 幾乎所有輸入法,包括 macOS 自己的輸入法,在 Chrome 上都有這個問題。
系統輸入法有同樣的表現,認為是Chromium的問題