Bug 4461 [IMM32] IMEマウスイベント時、文字列の位置情報が狂っていることがある
初回投稿日時: 2009年05月16日02時50分26秒
最終更新日時: 2009年05月16日03時06分26秒
カテゴリ: Mozilla Core バグ修正
SNS:
Tweet (list)
IMM32で、MS-IMEのマウスイベントを有効にするには未確定文字列の位置情報が必要なのですが、それを非常にいい加減に取得していたので全然まともに動かないよ、というバグです。
今までは特定の位置にある文字のオフセット等を取得する方法が無かったので、未確定文字列が一文字入力されるたびに、キャレット座標が変わるので、その位置情報から何番目の未確定文字の矩形を推測していました。もちろん、こんな方法なので、等幅フォントでなければ、変換することによって文字幅が変わってしまい、位置情報がまったくでたらめになっていました。また、未確定文字列がある状態でtextareaをスクロールしてしまうとやはり位置情報はでたらめになってしまいます。さらに、未確定文字列の位置情報を64文字までしか保存していなかった、という(あまり問題ないでしょうが)変な制約もありました。
今回、新たにwidgetのコードから特定のポイントにある文字のオフセットと、その矩形を簡単に取得できるようにしたので、情報が必要になった時に問い合わせることによって上記の問題を全て解決しています。