this.CaretChanged += (s, e) => { };
this.AutoIndentHook += (s, e) => { };
this.LineBreakChanged += (s, e) => { };
+ this.Dirty = false;
}
void WacthDogPattern_Updated(object sender, EventArgs e)
}
/// <summary>
+ /// ダーティフラグ。保存されていなければ真、そうでなければ偽。
+ /// </summary>
+ public bool Dirty
+ {
+ get;
+ set;
+ }
+
+ /// <summary>
/// キャレットでの選択の起点となる位置
/// </summary>
internal int AnchorIndex
public void Clear()
{
this.buffer.Clear();
+ this.Dirty = false;
}
/// <summary>
}
finally
{
+ this.Dirty = false; //ファイルの内容とドキュメントの中身は同じなのでダーティフラグは偽にする
this.PerformLayout();
//これ以降の操作にだけダーティフラグを適用しないとおかしなことになる
this.LayoutLines.IsFrozneDirtyFlag = false;
/// <param name="fs">IStreamWriterオブジェクト</param>
/// <param name="tokenSource">キャンセルトークン</param>
/// <returns>Taskオブジェクト</returns>
- /// <remarks>非同期操作中はこのメソッドを実行することはできません</remarks>
+ /// <remarks>非同期操作中はこのメソッドを実行することはできません。同時にダーティフラグもクリアされます</remarks>
public async Task SaveAsync(TextWriter fs, CancellationTokenSource tokenSource = null)
{
try
#endif
}
}
+ this.Dirty = false;
}
finally
{
this._LayoutLines.Clear();
break;
}
+ this.Dirty = true;
this.UpdateCalledAlways(this, e);
if(this.FireUpdateEvent)
this.Update(this, e);