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

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

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

2005年9月9日

Bug 1540 IMEの未確定文字の反転はシステムカラー(選択色)を使うべき(エディタの背景色にあわせて、必要なら反転もさせるべき) #2
初回投稿日時: 2005年09月09日02時26分18秒
最終更新日時: 2005年09月09日03時41分01秒
カテゴリ: Mozilla Core
SNS: (list)

パッチを分割して提出して時間をかけている間にパッチの単純化方法を考慮中。

よくよく考えてみればDrawSelectionIterator::GetSelectionColorsと、これで必要としている各種色情報がDrawSelectionIteratorにあること自体がおかしいのではないかと言う感じがしてきた。

nsTextFrame内でDrawSelectionIteratorを利用していない場所でこのクラスの算出する色情報が必要になったのだが、このクラスを色取得のためだけに動的に生成するには無駄が多いし(一回の描画用の処理経路で数個、同じ内容のメンバを持つクラスを複製しなくてはいけなくなる)、数々の不足情報を補うために膨大な修正が必要になる。こういう場合(修正箇所が多岐にわたる場合)、経験上、設計そのものが悪いことがほとんどだ。

という方向で検討してみたところ、色の情報なんだからnsTextFrame::TextPaintStyleに持たせときゃいいんじゃないかという答えが見えてくる。そしてこの構造体を見てみれば、選択色情報を持っているではないか。しかもただ単にDrawSelectionIteratorに色情報を渡すのに使っているだけだ。ということは、最初にDrawSelectionIteratorにも色情報を分散させて保存させだした当たりから大きな間違いが始まっていたのだろう。前回の私の選択色反転のパッチもこの流れにのってしまっていた。反省。

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

bug 1540を含むエントリ

Bug 1540 IMEの未確定文字の反転はシステムカラー(選択色)を使うべき(エディタの背景色にあわせて、必要なら反転もさせるべき) #3

Bug 1540 IMEの未確定文字の反転はシステムカラー(選択色)を使うべき(エディタの背景色にあわせて、必要なら反転もさせるべき)