◀Unicode版開発トップへ
  • 1396 Commit報告(Fix) MSDEVLineSelect形式の全置換がラインモード貼り付けにならない
  • [1396] Commit報告(Fix) MSDEVLineSelect形式の全置換がラインモード貼り付けにならない ryoji 2010年09月18日 10:28

    リビジョン:
    rev1825

    変更種別:
    バグ修正

    内容:
    Fix: MSDEVLineSelect形式で「クリップボードから」全置換したときにラインモード貼り付けにならない
    Fix: フリーカーソル時のデータ挿入がカーソル位置でなく次行頭への挿入になってしまうことがある

    ■Fix: MSDEVLineSelect形式で…」について
    「置換」ではラインモード貼り付けで「全置換」では通常貼り付け、というように挙動が不統一になってました。
    えぇ、実は、ラインモード貼り付け機能を実装した際、「クリップボードから貼り付ける置換」は考慮してませんでした…
    未実装のままだとコードを読む際に意図不明に陥りそうですし、修正しておきました。
    矩形(MSDEVColumnSelect形式)のほうは矩形貼り付けに統一されているので、MSDEVLineSelect形式もそれに倣ってラインモード貼り付けに統一しています。
    (注:共通設定のオプションでOFFになっていれば通常貼り付けですけど)

    なお、ラインモードでの「検索始点挿入」「検索終点追加」はどちらも同じような挙動になります。もともとラインモード貼り付けは同じ行内ならカーソル桁位置(挿入桁位置)が違っていても同じ結果になるので。

    今回、Command_INSTEXT() にラインモード貼り付けの機能を追加して対処しましたが、結果、Command_PASTE() とほぼ同じに操作になったので、そのへんも整理・統合しておきました。
    Command_PASTE() はクリップボードからデータを取り出した後は Command_INSTEXT() を呼び出してデータ挿入するように変更しています。

    ■「Fix: フリーカーソル時の…」について
    細かいですが「Fix: フリーカーソル時の…」も、Command_INSTEXT() の見直しに伴う修正です。
    具体的には、フリーカーソルの設定で行末よりも右側で範囲選択(行はまたがない)した状態から「日付挿入」などの挿入操作をした場合の挙動を、キーボード入力の場合の挙動と同様にしました。

    修正前:次の行の先頭に指定データが挿入される
    修正後:選択範囲の左端まで空白を挿入し、続けて指定データが挿入される

    になります。