この日記はMozillaのプロダクトへの貢献者としての私の成果を中心に、気になったバグやWeb界隈の話題について書いていますが、 断り書きがある場合を除き、いかなる団体のオフィシャルな見解ではありません。あくまでも個人的なものです。 Mozilla Foundation、Mozilla Corporation、及び関連企業の公式情報ではないことに注意してください。

現在、XHTML 1.0 (もどき)から、HTML5なコンテンツに修正中です。古い日記は修正が完了していませんので表示が崩れます。 順次、修正していく予定ですのでしばらくお待ちください。

もずはっく日記(2005年12月)

2005年12月22日

Bug 2060 印刷プレビュー時に各ページのマージンやフレームの上にカーソルがあると、ホイールでスクロールできない
初回投稿日時: 2005年12月22日02時17分42秒
カテゴリ: Mozilla Core
SNS: (list)

修正完了。突然、修正方法を思いついたのでパッチを書いてみたら見事に動いたので予定外に修正してしまった。(もっとも、その後のテストでフレームページの場合にも問題があったことが発覚して結局三つのパッチを作成するハメになってしまったが。)

まあ、何をやったかと言うと至って簡単。プリントプレビュー時にマウスホイールによるスクロールイベントが発生した場合は、イベントが発生したフレーム(Gecko内部のnsIFrameのこと。CSSのボックスはこのフレーム複数で構成される。)を無視して、常にそのビュー内のルートのスクロール可能なビューをスクロールするようにしただけ。

若干問題を抱えた(論理的に正しくない)コードをパッチ内に含むが、rocもベターなアイデアが無いということでそのままレビューを通過。これは完全にGeckoの設計ミスなので今後の課題かもしれない。(というか、GetShellAt(0)というコードを多々見かけるが、これって論理的にはバグっていることが今回の一件で判明。)

ちなみにこのパッチの副作用として、プリントプレビュー時にもリストボックス等が、無意味にホイールでスクロールできていた問題も解消している。

関連するかもしれないエントリ

bug 2060を含むエントリ