Bug-org 1052947 WidgetMouseEvent::e4thButtonFlag and e5thButtonFlag or windows WM_XBUTTONDOWN / XBUTTON1 mouse events are always handeled as Browser: Forward and Browser:Back and there is no option to disable this functionality in about:config or anywhere else
初回投稿日時: 2016-01-30 19:20:19
カテゴリ: Firefox Mozilla Core Mozilla46 Windows バグ修正
SNS:
Tweet (list)
Windowsでは、5ボタンのマウスに専用のユーティリティが付属していない場合、第四ボタンを押すと、WM_XBUTTONDOWNとWM_XBUTTONUPメッセージがXBUTTON1のイベントとして発生します。これを::DefWindowProc()に渡すと、Windowsはブラウザの「戻る」を促すWM_APPCOMMANDメッセージを生成します。
同様に、第五ボタンを押すと、WM_XBUTTONDOWNとWM_XBUTTONUPメッセージがXBUTTON2のイベントとして発生し、これを::DefWindowProc()に渡すと、Windowsはブラウザの「進む」を促すWM_APPCOMMANDメッセージを生成します。
MicrosoftやLogicoolのマウス等、ユーティリティが付属している場合はこれらのボタンを無効化することで、これらのボタンの利用をやめる(誤操作での意図しないページ移動を防ぐ)ことができますが、そうではない、Windows標準のドライバだけで動作する安価なマウスではこれを防ぐ方法がありません(ひょっとするとレジストリをいじるとできるのかもしれませんが)。
このバグは、そのような無効化機能をFirefox自体に実装してprefsで無効化できるようにしておいて欲しいというものです。
今回の修正で、mousebutton.4th.enabledとmousebutton.5th.enabledというprefを新設し、これらがfalseに設定されていた場合、WM_XBUTTONDOWNやWM_XBUTTONUPメッセージを::DefWindowProc()に渡さないようにして、WM_APPCOMMANDの生成を妨害するようにしています。