Author: mkrueger
Date: 2008-02-10 11:11:07 -0500 (Sun, 10 Feb 2008)
New Revision: 95387

Modified:
   trunk/monodevelop/main/src/addins/Mono.Texteditor/ChangeLog
   
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor.Highlighting/SyntaxMode.cs
   
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor/LineSplitter.cs
   
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor/TextEditor.cs
Log:
* Mono.TextEditor/LineSplitter.cs, Mono.TextEditor/TextEditor.cs,
  Mono.TextEditor.Highlighting/SyntaxMode.cs: Fixed some drawing
  issues.

Modified: trunk/monodevelop/main/src/addins/Mono.Texteditor/ChangeLog
===================================================================
--- trunk/monodevelop/main/src/addins/Mono.Texteditor/ChangeLog 2008-02-10 
16:06:58 UTC (rev 95386)
+++ trunk/monodevelop/main/src/addins/Mono.Texteditor/ChangeLog 2008-02-10 
16:11:07 UTC (rev 95387)
@@ -1,3 +1,8 @@
+2008-02-10  Mike Krüger <[EMAIL PROTECTED]> 
+
+       * Mono.TextEditor/LineSplitter.cs, Mono.TextEditor/TextEditor.cs,
+         Mono.TextEditor.Highlighting/SyntaxMode.cs: Fixed some drawing issues.
+
 2008-02-09  Mike Krüger <[EMAIL PROTECTED]> 
 
        * Mono.TextEditor/DefaultEditActions.cs, Mono.TextEditor/TextEditor.cs:

Modified: 
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor/LineSplitter.cs
===================================================================
--- 
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor/LineSplitter.cs
   2008-02-10 16:06:58 UTC (rev 95386)
+++ 
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor/LineSplitter.cs
   2008-02-10 16:11:07 UTC (rev 95387)
@@ -174,7 +174,9 @@
                                if (this.Get(i).Offset <= offset && offset < 
this.Get(i).EndOffset)
                                        return i;
                        }
-                       return -1;
+                       if (offset < 0)
+                               return 0;
+                       return this.LineCount;
                }
                
                Segment FindDelimiter (StringBuilder text, int startOffset) 
@@ -190,4 +192,4 @@
                        return null;
                }
        }
-}
+}
\ No newline at end of file

Modified: 
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor/TextEditor.cs
===================================================================
--- 
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor/TextEditor.cs 
    2008-02-10 16:06:58 UTC (rev 95386)
+++ 
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor/TextEditor.cs 
    2008-02-10 16:11:07 UTC (rev 95387)
@@ -276,6 +276,7 @@
                                                request.Update (this);
                                        }
                                } catch (Exception e) {
+                                       System.Console.WriteLine (e);
                                }
                        };
                        Caret.PositionChanged += delegate (object sender, 
DocumentLocationEventArgs args) {
@@ -637,6 +638,9 @@
 
                int ColumnToVisualX (LineSegment line, int column)
                {
+                       if (line.EditableLength == 0)
+                               return 0;
+                       System.Console.WriteLine(line);
                        string text = this.Document.Buffer.GetTextAt 
(line.Offset, System.Math.Min (column, line.EditableLength));
                        text = text.Replace ("\t", new string (' ', 
TextEditorOptions.Options.TabSize));
                        layout.SetText (text);
@@ -681,7 +685,7 @@
                        LineSegment line = lineNr < Splitter.LineCount ? 
Splitter.Get (lineNr) : null;
                        
                        Gdk.GC gc = new Gdk.GC (win);
-                       gc.ClipRectangle = new Gdk.Rectangle (x, y, area.Width, 
LineHeight);
+                       gc.ClipRectangle = new Gdk.Rectangle (x, y, 
this.Allocation.Width - x, LineHeight);
                
                        Gdk.Rectangle lineArea = new Gdk.Rectangle (x, y, 
area.Width - x, LineHeight);
                        bool isSelected = false;
@@ -762,9 +766,8 @@
                        }
                        
                        if (line == null) {
-                               if (TextEditorOptions.Options.ShowInvalidLines) 
{
+                               if (TextEditorOptions.Options.ShowInvalidLines)
                                        DrawInvalidLineMarker (win, gc, x, y);
-                               }
                                return;
                        }
                        
@@ -796,9 +799,8 @@
                                        
                                        gc.RgbFgColor = ColorStyle.FoldLine;
                                        win.DrawLayout (gc, xPos, y, layout);
-                                       if (caretOffset == foldOffset) {
+                                       if (caretOffset == foldOffset)
                                                DrawCaret (win, gc, xPos, y);
-                                       }
                                                
                                        xPos += width;
                                        
@@ -817,16 +819,12 @@
                        }
                        
                        // Draw remaining line
-                       if (line.EndOffset - offset > 0) {
+                       if (line.EndOffset - offset > 0)
                                DrawLineText (win, gc, line, offset, 
line.Offset + line.EditableLength - offset, ref xPos, y);
-                               if (caretOffset == line.Offset + 
line.EditableLength) {
-                                       DrawCaret (win, gc, xPos, y);
-                               }
-                       }
-                               
+                       if (caretOffset == line.Offset + line.EditableLength)
+                               DrawCaret (win, gc, xPos, y);
                        if (TextEditorOptions.Options.ShowEolMarkers) 
                                DrawEolMarker (win, gc, ref xPos, y);
-               
                }
                
                void DrawCaret (Gdk.Window win, Gdk.GC gc, int x, int y)

Modified: 
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor.Highlighting/SyntaxMode.cs
===================================================================
--- 
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor.Highlighting/SyntaxMode.cs
        2008-02-10 16:06:58 UTC (rev 95386)
+++ 
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor.Highlighting/SyntaxMode.cs
        2008-02-10 16:11:07 UTC (rev 95387)
@@ -169,7 +169,7 @@
                                SetSpan ();
                                SetTree ();
                                bool isNoKeyword = false;
-                               bool isAfterSpan = false;
+//                             bool isAfterSpan = false;
                                for (int i = offset; i < maxEnd; i++) {
                                        char ch = doc.Buffer.GetCharAt (i);
                                        if (curSpan != null && 
!String.IsNullOrEmpty (curSpan.End)) {

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to