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

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

もずはっく日記(2010年3月)

2010年3月28日

Bug-org 553975 Caret is painted under textframe in input/textarea element
初回投稿日時: 2010年03月28日14時21分01秒
カテゴリ: Mozilla Core バグ修正
SNS: (list)

LinuxでIMの色設定を使うように修正中に発見したバグです。

未確定文字列の背景色を指定しているとinput要素とtextarea要素ではキャレットが背景色よりも下側に描画されて表示されなくなるというバグです。input要素とtextarea要素の中身すらGeckoではDOMツリーを作って管理していますが、この内容の描画処理を単純化するためにpositionedなボックスとして扱っています。このため、CSSのレイヤー的には、inputtextareaの(本来の)コンテンツレイヤーの上層に、実際のコンテンツが描画されるpositionedのレイヤーが来るという形になっていました。しかし、キャレットを常にコンテンツのレイヤーに挿入するようにしていたため、positionedな実際のコンテンツがこれを上書きしてしまうというバグを生んでいました。

今回のパッチではキャレットもこのケースではpositionedなレイヤーに配置するように修正しています。

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

bug-org 553975を含むエントリ