Closed gotoh closed 3 years ago
fc.emacs_ime_mode_balloon_message パラメータは、emacs 日本語入力モードのバルーンを 表示するかどうかを制御するものとしています。 今回は、fc.ime_status_balloon_message パラメータを追加し、対応してみました。 develop branch にコミットしてみましたので、確認ください。
https://github.com/smzht/fakeymacs/commit/356cc5708384b97ab4679b76b53ff2d610ee58ae
LINE の扱い(IME ステータスのバルーンをデフォルトで非表示にするかどうか)については、 現在確認する環境に居ないため、後ほど確認し、判断したいと思います。
以上、よろしくお願いします。
LINEの確認をしました。▲のバルーンヘルプを出すと入力文字に重なるようですが、IMEの状態を表示する バルーンヘルプはウインドウ外に出るため、問題はありませんでした。 このことから、LINEに対する追加の対策は行わない予定です。何か不都合がある場合はお知らせください。 以上、よろしくお願いします。
ありがとうございます。
fc.emacs_ime_mode_balloon_message = None
とfc.ime_status_balloon_message = None
を設定することで希望の動きになりました。
その点では本件はクローズなのですが、上記変数の設定を行わずデフォルトの設定のままでLINE上で操作すると、妙な感じになりましたので残しておきます。
IME切替時の[A] / [あ] の表示は他アプリだとカーソル位置の下だったり、ウィンドウの左下だったりするのですが、 、LINEだとカーソルの右に出ます。すぐ消えるのでさほどの害はないです。奇妙なことに一度他のアプリ(例えば左下タイプ)をアクティブにしてから戻るとLINEも同様の表示位置になったりしますが、なにか操作するとまた右に出ます。 [▲]は添付の画像のように変換文字領域にもろにかぶりました。変換モードから抜けるまでその状態が続きます。 添付の画像は「かんじへんかん」と入力した状態。 Windows10 pro/ 64 で Line v7.0.0 で Google IME を使ってます。
LINEのアプリ判定が効いていないようです。Keyhac の内部ログを ON にして、LINE アプリで キー入力したときの、exe 名と class 名を教えていただけますか?
現在、LINE アプリを使える環境に居ないので、こちらでも 後ほど LINE アプリのバージョン等 確認してみます。
Windows版 LINE アプリには、ストアアプリのものとそうでないものと2種類あるのですね。
恐らく、この辺りが関係していると思われます。後ほど調べてみます。
内部ログをONして取った情報です。
Window : exe : LINE.exe
: class : Qt5152QWindowIcon
: text : LINE
使ってるラインはストアアプリではなくダウンロードしてインストールしたはず。
ちなみに TortoiseHg も同じような現象でした。 共通するのは Qt5 かな? 現象として少し違うのは、▲の挙動はほぼ同じなんだけど、 TortoiseHgは [A]と[あ]のバルーンはウィンドウ(フレーム)左下にでる点でしょうか。 ついでにthgの情報も。
Window : exe : thg.exe
: class : Qt5QWindowIcon
: text : keyhac-config - TortoiseHg Workbench
Qt5*.dll で探したところ、LibreCAD、MuseScore, Calibreでも TortoiseHgと同じ振る舞いでした。
Window : exe : LibreCAD.exe
: class : Qt5QWindowIcon
: text : LibreCAD - [無題 1 [作図モード]]
Window : exe : MuseScore.exe
: class : Qt5QWindowIcon
: text : MuseScore 2: 名称未設定
Window : exe : calibre.exe
: class : Qt5QWindowIcon
: text : calibre - || Calibre ||
いろいろ情報いただき、ありがとうございます。 こちらでは LINE のストアアプリを使っていて、class は Qt5QWindowIcon となっていました。 これを config.py の ei_popBalloon 関数内で判定していますので、if 文をくぐり抜けているのは これが理由のようです。
対象アプリを判定している checkWindow 関数はワイルドカードが使えるので、判定方法を 見直してみました。(とりあえず、▲ のバルーンヘルプの方だけ。テストできていません。)
https://github.com/smzht/fakeymacs/commit/1377a2ffbf4101f03fe4647f34da752bd5c6781c
あとは、IMEステータスのバルーンヘルプも非表示にするかどうか。 IMEステータスのバルーンヘルプの表示に影響が出ているのは、LINEだけですかね?
▲の方は出なくなりましたね。 [A]/[あ]はLINEだけ邪魔をします。 他のはカーソルの近くではなく、結構遠くの隅っこで出ることになりがちなので、 それはそれでどうかと思いますが、害はないです。
スマホアプリでないLINEアプリで発生する現象を確認し、対策しました。
https://github.com/smzht/fakeymacs/commit/166cc8bc52801efe29c7f10e43a126fb22e61b6c
またこの対応で、fc.ime_status_balloon_message パラメータとは別に fc.use_ime_status_balloon パラメータを新たに設け、こちらのパラメータでバルーンヘルプを表示するかどうかを制御する ように見直しました。
見直しした理由は、バルーンヘルプをデフォルトで表示しない設定とした場合でも、pop_ime_balloon 拡張機能の機能により、明示的にバルーンヘルプを表示できるようにするためです。
この内容で問題なさそうであれば、master branch に merge したいと思います。 以上、よろしくお願いします。
新しい設定項目での切り替えを使用しましたが、特に問題はありませんでした。 ありがとうございます。 クローズしときます。
master branch にマージしました。
https://github.com/smzht/fakeymacs/commit/8f6026a2c00c3910032983441357589e6200166c
fc.emacs_ime_mode_balloon_message = None
としてもIME状態として"[A]"や"[あ]"のバルーンが出てしまいます。popImeBalloon()
が上記変数に対応していないからかな? とりあえず以下のようにして回避しています。 (c798c15 を使用してます)これがないと
ei_popBalloon()
では出なくしているはずの LINEでもバルーンがでちゃって重なっちゃいますし、 別の例として、画面キャプチャするために画面を切り替え、ALT-PrintScreenを押すタイミングで バルーンが出てキャプチャに入り込んでしまうという嫌な弊害も。