リビジョン:
rev1813
変更種別:
バグ修正
内容:
Fix: Undo/Redoでルーラーと行番号の間の隙間が更新されない
【再現手順】
●設定
ルーラーとテキストの間の隙間を 0 以外の値にしておく
画面キャッシュを ON の設定にしておく
ルーラーや行番号の背景色は目立つ色にしておくとわかりやすいです
●操作
ちょうど 100 行のテキストを用意して以下の操作を実行
(1) 任意の行を削除する → 行数が 2 桁になり、行番号の幅が狭くなる(正常)
(2) Undo を実行 → 行番号の幅が広がるが行番号の上の隙間の帯が更新されない(異常)
(3) F5 キーで再描画 → 行番号の上の隙間の帯が更新される(正常)
(4) Redo を実行 → 行番号の幅が狭くなるが行番号の上の隙間の帯が更新されない(異常)
ルーラー再描画の必要があるときは DispRuler() ではなく他の部分と同時に Call_OnPaint() で描画することで対策しました。
行番号表示に必要な幅を更新する処理は OPE_INSERT/OPE_DELETE 処理内で実施済みで、画面更新後の DetectWidthOfLineNumberAreaAllPane() は無用なので除去しました。