クリップボードの履歴リストがはみ出すんですぅ

 聞いてください。keyhacでクリップボードの履歴リストが画面からはみ出すんです。
 あれ、キャレットもしくはウインドウの左上の位置に出るんですけど、そこが画面の外だとはみ出すんです。

 キャレットが画面外にある状態で作業する事なんてありえないでしょう。ウインドウが画面外にある場合もあまり無い事なのかもしれません。

 でも、うちのディスプレイ、サイズ違いで下をそろえてるんですよ。しかも左が小さい。

*    +----------+
     |          |
+----+    右    |
| 左 |          |
+----+----------+ ※ 要するにデスクトップの左上がモニタのはるか上にある

 この環境で、デスクトップにフォーカスがある状態で履歴リストを出すと、「*」の位置にリストが表示されるんですよ。履歴リストはランチャー的にも使ってたりするので、ちょっと困る事があるんです。

 キャレットが画面右端・下端にある時は、画面に入るように調整してくれるのに・・・という訳で、今回も乗っ取ります。

オリジナルの該当部分は keyhac_misc.py にある adjustWindowPosition になります。

 中を確認すると・・・どのモニタにもヒットしない場合は調整されないようです。これ全体を書き直すのはちょっとあれだなぁとか思ったので、事前に位置(base_rect)を画面内に補正する方向で対応してみました。

fix_misc.py

 例によって extension に叩き込んで config.py に import fix_misc を1行追加すれば動きます。

 中身は・・・
(1) keyhac_misc.adjustWindowPositionを退避
(2) base_rectを補正して、退避したadjustWindowPositionをコールする関数を定義
(3) keyhac_misc.adjustWindowPositionを(2)の関数に入れ替え
 メソッドの乗っ取りとは違い、関数の上書きなのでちょっと平和ですかね。

 当然のようにバージョン依存、Ver.1.77以外ではどうなるかわかりません。というか、Ver.1.77でどうかなっても責任持てませんけど。

この記事へのコメント

この記事へのトラックバック