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:
Tweet (list)
Bug-org 1208944の修正により、windowlessなFlash Playerであっても、Windowsでは未確定文字列がインラインで表示されるように修正されていますが、ATOK 2016でテストしてみると、候補ウインドウが画面の左上に表示されるというバグです。
Bug-org 789706で、TSFのTIPとなったATOKの大半のバージョンでは、ATOKは未確定文字列の表示位置を決めるのに、なぜかネイティブのキャレット位置を参照するという不思議な挙動になっていることが分かっていました。そこで、今回の修正でも、プラグイン経由で::ImmSetCandidateWindow()
を呼び出す際に、その位置から上方に20pxの高さのキャレットを生成して配置するようにすると解決しました(非表示ですので見えるわけではありません)。
何故、20pxにしたかというと、下方向に候補ウインドウが開けない場合、キャレットの上端から上方向に候補ウインドウが開かれるのですが、20pxぐらいの高さがあれば大抵のケースでは問題にならないだろうという理由からです。マジックナンバーですのでこれ以上の理由はありません。