私は最近Firefoxを使い始めましたが、dwm
右クリックすると奇妙な動作が発生します。
上記は、ほとんどのウィンドウマネージャでFirefoxが開くコンテキストメニューです。 (この写真はi3で撮影したものですが、Gnomeや他のウィンドウマネージャ、デスクトップ環境でも同じです。)コンテキストメニューはカーソルホットスポットの右側の数ピクセル下に表示されるため、マウスボタンを離すとメニューのどれもアクティブになりません。その後、クリックするとメニューから項目を選択できます。
これと比較して、上記のショットはFirefoxがdwmでコンテキストメニューを開くシーンです。コンテキストメニューはカーソルホットスポットのすぐ下に表示されるため、マウスボタンを押して放すとすぐに「新しいタブでリンクを開く」項目がトリガーされ、メニューが閉じます。 (リンク以外の項目を右クリックすると、「戻る」オプションでも同じ現象が発生します)
これはFirefoxでのみ発生するようです。 Chromeのコンテキストメニューは、Gnome TerminalやGimpと同様に正しい場所に表示されます。他の人がこの問題を経験し、解決策を知っていますか?
答え1
これはFirefox(バージョン6.1)またはFirefox(バージョン57.04)のバグであるようですが、dwm
これらの誤動作の理由は次のとおりです。
dwm 構成ファイルにはconfig.h
次の行があります。
static const unsigned int borderpx = 2; /* border pixel of windows */
この値は、dwm のウィンドウ枠のサイズを指定します。デフォルトでは、この値は2に設定されています。現在どのウィンドウにフォーカスがあるかをわかりやすくするために、この値を4に増やしました。 (基本的に、dwmはピントが合っていないウィンドウの枠を真ん中に灰色で、ピントが合っているウィンドウの枠を真ん中の青で描きます。
すべて良いですが、borderpx
予期しないことがFirefoxコンテキストメニューの場所に影響を与えるようです。ただFirefoxのコンテキストメニュー。他のプログラムのコンテキストメニューは影響を受けないように見えます。メニューが開かれると、2より大きいすべての整数値に対して、メニューは上に1ピクセル、左に1ピクセル移動します。
borderpx
たとえば、30に設定すると、Firefoxのコンテキストメニューがカーソルに基づいて開きます。
「2」より高い値はFirefoxのコンテキストメニューを開き、メニューのアクティブ部分がカーソルのホットスポットのすぐ下に表示されるため、右クリックすると自動的に有効になります。したがって、この問題を解決するには、borderpx
値を2以下に減らす必要があります。 (または、クリックした位置の左側にコンテキストメニューが完全に表示されることを望み、すべてのウィンドウの周りに途方もなく太い枠線がある場合でも、この値を268以上に増やすことができるとします。)
ストーリーのレッスン:dwmの焦点を合わせたウィンドウをより早く認識するには、次のように変更できます。色境界を変えるのではなく幅国境。