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

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

もずはっく日記(2015年7月)

2015年7月26日

Bug-org 1187351 [e10s][TSF] TSFTextStore::GetTextExt() shouldn't return TS_E_NOLAYOUT after notifying TSF of layout change
初回投稿日時: 2015年07月26日15時02分30秒
カテゴリ: e10s IME Mozilla Core Mozilla42 TSF Windows バグ修正
SNS: (list)

TSFTextStoreNOTIFY_IME_OF_POSITION_CHANGEを受け取った際に、ITextStoreACPSink::OnLayoutChange()を呼び出すことがありますが、この際に、キャッシュしているコンテンツのレイアウトが不確定な最初の文字のオフセットをリセットしていませんでした。そのため、TSFTIPからすると、レイアウトの計算が終わったと通知が来たのに、ITextStoreACP::GetTextExt()を呼び出してみたら、まだだって言われる、という状況に陥っていました。

今回の修正で、ITextStoreACPSink::OnLayoutChange()を呼び出す前に、mLockedContentmMinTextModifiedOffsetNOT_MODIFIEDにリセットすることでこの現象が発生しないようにしています。

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

bug-org 1187351を含むエントリ