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
の生成を妨害するようにしています。