void UpdateCurrentLineMarker(bool moveCaret) { editor.Document.RemoveMarker(currentDebugLineMarker); StackFrame sf = DebuggingService.CurrentFrame; int line; if (addressLines.TryGetValue(GetAddrId(sf.Address, sf.AddressSpace), out line)) { editor.Document.AddMarker(line, currentDebugLineMarker); if (moveCaret) { editor.Caret.Line = line; GLib.Timeout.Add(100, delegate { editor.CenterToCaret(); return(false); }); } editor.QueueDraw(); } }