data:6367 「IME Watcher 併用時の不具合」の件です。
IME Watcherは、キャレット所有ウィンドウのクライアント領域内のキャレット位置を取得し、キャレット所有ウィンドウ=フォーカスウィンドウとみなしてフォーカスウィンドウからの位置で情報表示しているものと思われます。
ごく一般的な処理構造のアプリではそれでOKなのですが、サクラではキャレット所有ウィンドウは各ビューであり、フォーカスはフレームウィンドウが持っています。
IME Watcherはサクラがそのような動作になっていることを知らないので、その分だけ上方に表示がずれているものと思われます。
一般的な処理構造になるようにしてみました。
→Patches#1814571 FocusActiveView1.patch
従来は普段CEditWndがフォーカスを持ち、CEditViewがキャレットを表示していましたが、フォーカスをCEditViewに持たせるように変更しています。
CEditWndのWM_SETFOCUSでCEditViewにフォーカスを移動し、キーボードからのコマンドはフォーカスを持っているCEditViewからCEditWndへルーティングするようにしています。