Bug 2060 印刷プレビュー時に各ページのマージンやフレームの上にカーソルがあると、ホイールでスクロールできない
初回投稿日時: 2005年12月22日02時17分42秒
カテゴリ: Mozilla Core
SNS:
Tweet (list)
修正完了。突然、修正方法を思いついたのでパッチを書いてみたら見事に動いたので予定外に修正してしまった。(もっとも、その後のテストでフレームページの場合にも問題があったことが発覚して結局三つのパッチを作成するハメになってしまったが。)
まあ、何をやったかと言うと至って簡単。プリントプレビュー時にマウスホイールによるスクロールイベントが発生した場合は、イベントが発生したフレーム(Gecko内部のnsIFrameのこと。CSSのボックスはこのフレーム複数で構成される。)を無視して、常にそのビュー内のルートのスクロール可能なビューをスクロールするようにしただけ。
若干問題を抱えた(論理的に正しくない)コードをパッチ内に含むが、rocもベターなアイデアが無いということでそのままレビューを通過。これは完全にGeckoの設計ミスなので今後の課題かもしれない。(というか、GetShellAt(0)
というコードを多々見かけるが、これって論理的にはバグっていることが今回の一件で判明。)
ちなみにこのパッチの副作用として、プリントプレビュー時にもリストボックス等が、無意味にホイールでスクロールできていた問題も解消している。