void updatePrintedLines() { lock (buffer.EditMutex) { PrintedLines = new List <CodeLine> (); int curL = 0; int i = 0; while (curL < buffer.LineCount && i < ScrollY) { if (buffer [curL].IsFolded) { curL = buffer.GetEndNodeIndex(curL); } curL++; i++; } firstPrintedLine = curL; i = 0; while (i < visibleLines && curL < buffer.LineCount) { PrintedLines.Add(buffer [curL]); if (buffer [curL].IsFolded) { curL = buffer.GetEndNodeIndex(curL); } curL++; i++; } } RegisterForGraphicUpdate(); }
void updatePrintedLines() { buffer.editMutex.EnterReadLock(); editorMutex.EnterWriteLock(); PrintedLines = new List <CodeLine> (); int curL = 0; int i = 0; while (curL < buffer.LineCount && i < ScrollY) { if (buffer [curL].IsFolded) { curL = buffer.GetEndNodeIndex(curL); } curL++; i++; } firstPrintedLine = curL; i = 0; while (i < visibleLines && curL < buffer.LineCount) { PrintedLines.Add(buffer [curL]); if (buffer [curL].IsFolded) { curL = buffer.GetEndNodeIndex(curL); } curL++; i++; } buffer.editMutex.ExitReadLock(); editorMutex.ExitWriteLock(); }