squirrel icon indicating copy to clipboard operation
squirrel copied to clipboard

部分應用(如Chrome)首次輸入候選框可能位於窗口外

Open LokChunYu opened this issue 9 months ago • 9 comments

iShot_2024-05-05_06 00 35 1、Chrome浏览器124.0.6367.119(正式版本)和edge浏览器版本 124.0.2478.80 (正式版本) ,macOS14.4.1,首次启动输入法,候选框仍在一角; iShot_2024-05-05_06 03 05 2、“检查新版本”按钮点击不起作用。

LokChunYu avatar May 04 '24 22:05 LokChunYu

  1. 左上角的問題沒完全修復的話,那就再繼續研究吧,多謝反饋。 但我並不能成功復現你的問題,你能詳細描述一下如何復現嗎?
  2. 檢查新版本還不能用是故意的,過一兩週才會開始推送

LEOYoon-Tsaw avatar May 04 '24 22:05 LEOYoon-Tsaw

非常感谢回复。关于第一点,每次打开浏览器在输入框内首次会出现这样的问题。

LokChunYu avatar May 05 '24 01:05 LokChunYu

非常感谢回复。关于第一点,每次打开浏览器在输入框内首次会出现这样的问题。

那我確實無法復現,我的Chrome是123,Edge是124。打開瀏覽器第一次輸入沒有問題

LEOYoon-Tsaw avatar May 05 '24 02:05 LEOYoon-Tsaw

非常感谢回复。关于第一点,每次打开浏览器在输入框内首次会出现这样的问题。

那我確實無法復現,我的Chrome是123,Edge是124。打開瀏覽器第一次輸入沒有問題

Chrome 124,完全复现,只要新开标签页也默认光标焦点位置是在搜索框内的(比如Google、百度、淘宝),首次打字就会发现这个问题。

doviscn avatar May 05 '24 03:05 doviscn

反正我沒法復現,等別人研究吧(Chrome已升124)

https://github.com/rime/squirrel/assets/4469383/5cfadfe7-8290-4c0b-a8bf-6f1a1bf46809

LEOYoon-Tsaw avatar May 05 '24 14:05 LEOYoon-Tsaw

反正我沒法復現,等別人研究吧(Chrome已升124)

Screen.Recording.2024-05-05.at.10.42.30.mov

需要在Google的主页输入框上进行,标签页的话是没法复现的。

不过我刚自己试了下,其实v16.2也有一样的问题。

cobaltdisco avatar May 05 '24 15:05 cobaltdisco

需要在Google的主页输入框上进行

我打開新標籤焦點默認在地址欄

LEOYoon-Tsaw avatar May 05 '24 20:05 LEOYoon-Tsaw

需要在Google的主页输入框上进行

我打開新標籤焦點默認在地址欄

进入google首页:[https://www.google.com/],然后在主页的搜索框里输入,会复现这个问题。

yuhuangniu avatar May 05 '24 20:05 yuhuangniu

確實,找到方法復現了。輪入google網址進入google,光標自動聚焦到搜索框,此時輪入,候選欄在窗口外

LEOYoon-Tsaw avatar May 05 '24 23:05 LEOYoon-Tsaw

確實,找到方法復現了。輪入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];
    }
  }

groverlynn avatar May 24 '24 05:05 groverlynn

我傾向於認爲這是 Chrome 的 BUG。

  1. google.com 搜索條的 selectedRange 永遠是 {0,0} ,而在 Safari 和 Firefox 上無此問題。
  2. 幾乎所有輸入法,包括 macOS 自己的輸入法,在 Chrome 上都有這個問題。 image

ksqsf avatar May 24 '24 18:05 ksqsf

系統輸入法有同樣的表現,認為是Chromium的問題

LEOYoon-Tsaw avatar May 26 '24 13:05 LEOYoon-Tsaw