Bug-org 1094000 Caret position becomes out of message body text box
初回投稿日時: 2014年11月21日16時38分16秒
カテゴリ: Mozilla Core Mozilla36 バグ修正
SNS:
Tweet (list)
min-height
が指定されていないcontenteditable
な要素の内容を、Backspaceキーで全て削除すると、プレースホルダー用(高さ確保用)の<br>
要素の自動挿入が行われず、height: 0;
になってしまい、キャレットが変な位置に表示されるというバグです。
全てを選択した状態からDeleteキーやBackspaceキーで削除した場合や、Deleteキーで削除した場合には問題がありませんでしたが、Backspaceキーで削除した場合のみ、このバグが発生していました。なぜこんなことになっていたかというと、選択範囲無しでBackspaceキーが押された場合のみ、専用のパスで削除処理を行っていたため、このような変な条件付きのバグになってしまっていました。
Backspaceキーで削除した場合にも立てておかないといけないフラグを立てるようにし、正常に動作しているケースと同様にnsHTMLEditRules::InsertBRIfNeeded()
が後処理で確実に呼び出されるように修正しています。
なお、他のブラウザの動作と比較した場合、未編集のcontenteditable
な要素も<br>
要素を自動的に挿入するべきなようなので、そちらはBug-org 1098151にバグを登録し、エディタのモジュールオーナーのEhsanの判断を待っているところです。