この日記はMozillaのプロダクトへの貢献者としての私の成果を中心に、気になったバグやWeb界隈の話題について書いていますが、 断り書きがある場合を除き、いかなる団体のオフィシャルな見解ではありません。あくまでも個人的なものです。 Mozilla Foundation、Mozilla Corporation、及び関連企業の公式情報ではないことに注意してください。

現在、XHTML 1.0 (もどき)から、HTML5なコンテンツに修正中です。古い日記は修正が完了していませんので表示が崩れます。 順次、修正していく予定ですのでしばらくお待ちください。

もずはっく日記(2016年1月)

2016年1月30日

Bug-org 1238899 ATOK's candidate window is positioned at top-left of the screen at editing in windowless flash player
初回投稿日時: 2016年01月30日19時10分27秒
カテゴリ: Flash IME Mozilla Core Mozilla46 plugin Windows バグ修正
SNS: (list)

Bug-org 1208944の修正により、windowlessなFlash Playerであっても、Windowsでは未確定文字列がインラインで表示されるように修正されていますが、ATOK 2016でテストしてみると、候補ウインドウが画面の左上に表示されるというバグです。

Bug-org 789706で、TSFTIPとなったATOKの大半のバージョンでは、ATOKは未確定文字列の表示位置を決めるのに、なぜかネイティブのキャレット位置を参照するという不思議な挙動になっていることが分かっていました。そこで、今回の修正でも、プラグイン経由で::ImmSetCandidateWindow()を呼び出す際に、その位置から上方に20pxの高さのキャレットを生成して配置するようにすると解決しました(非表示ですので見えるわけではありません)。

何故、20pxにしたかというと、下方向に候補ウインドウが開けない場合、キャレットの上端から上方向に候補ウインドウが開かれるのですが、20pxぐらいの高さがあれば大抵のケースでは問題にならないだろうという理由からです。マジックナンバーですのでこれ以上の理由はありません。

関連するかもしれないエントリ

bug-org 1238899を含むエントリ