Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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();
        }