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

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

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

2015年3月26日

Bug-org 1140832 Cannot undo Input Method commit by Ctrl + BackSpace
初回投稿日時: 2015年03月26日18時00分18秒
カテゴリ: GTK Mozilla Core Mozilla39 バグ修正
SNS: (list)

Bug-org 1065835のregressionにより、Linux上でMozcで確定後、Ctrl+Backspaceで確定アンドゥができないというバグです。

Bug-org 1065835の修正で、GTK版Geckoは、キャレットの移動時に逐一、gtk_im_context_reset()を呼び出すようになりました。GTKのドキュメントによるとこれはIME側にとって期待される動作だと思われます(GTKのドキュメントが不明瞭で意見が分かれがち)。

Mozcは、確定アンドゥがキックされると、未確定文字列を生成する前に、直前に確定した範囲を自動選択し、未確定文字列で上書きしようとします。しかし、最初の自動選択の際にgtk_im_context_reset()を呼び出すと、Mozcは始まっていない未確定状態をそのままキャンセルしてしまっていました。

Mozcの開発者や、Googleの湯川さんの話からも、IMEからのリクエストが原因で選択範囲が変更された場合には、gtk_im_context_reset()を呼び出すべきではないという結論に至ったので、そのように修正しています。

現在、時期ESRである38での修正を申請中です。

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

bug-org 1140832を含むエントリ