同期スクロールで対になるウィンドウが少しずれている場合にはそのずれを維持するように変更してみました.
http://members.at.infoseek.co.jp/sakura_editor/snapshot/sakura-symc-scroll.zipバイナリ,diff両方入ってます.
同期スクロールチェックが散らばっていたのをCEditView::SyncScrollV()とSyncScrollHに集約してありますので,そこを変更することで従来通りの動作,新しい動作,あるいはもっと別の動作(たとえば右ペインは必ず左ペインの続きになるとか)と機能を変更しやすくなっています.
ファイル末尾での複数行削除後で編集部分がウィンドウの上部数行だけ見えている場合に,ScrollAtV関数が無駄の少ないところまで勝手に位置を調整してしまうために左右がずれてしまうことがあるのですが,これは現状も同じなのでとりあえず見なかったことにしてあります.
MoveCursorのbDrawフラグというのが「再描画の有無」と説明されていますが実質的にはカーソル位置調整とあわせてスクロール位置の調整を行うかどうかのフラグなので名称を変更しました.
---
同期させるところはだいたいできましたので,あとは意図的に「ずらす」方法を考えないと現状とあまり変わらなくなってしまいます.
とりあえず思いついた案:
* 同期スクロールON/OFFを独立したコマンドとしてツールバーに割り当て可能にする
* SHIFTを押しながらスクロールバーを操作すると同期しない
* 同期無しスクロールというコマンドを新設
Shift+スクロールバーが最も使いやすいかな.
共通設定はチェックボックスからコンボに変えて
垂直同期スクロール方法: [なし][同一行][同一量][継続行]
(選択肢の名前はてきと~)
ってところかな.
---
おまけとして上のバイナリにはFileSaveAsの保存文字コード指定の修正が入っています.