Author: mkrueger
Date: 2008-02-03 09:44:28 -0500 (Sun, 03 Feb 2008)
New Revision: 94691

Modified:
   trunk/monodevelop/main/src/addins/Mono.Texteditor/ChangeLog
   
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor/DefaultEditActions.cs
Log:
* Mono.TextEditor/DefaultEditActions.cs: Insert/Remove Indent now works
  without selection.

Modified: trunk/monodevelop/main/src/addins/Mono.Texteditor/ChangeLog
===================================================================
--- trunk/monodevelop/main/src/addins/Mono.Texteditor/ChangeLog 2008-02-03 
14:30:34 UTC (rev 94690)
+++ trunk/monodevelop/main/src/addins/Mono.Texteditor/ChangeLog 2008-02-03 
14:44:28 UTC (rev 94691)
@@ -1,5 +1,10 @@
 2008-02-03  Mike Krüger <[EMAIL PROTECTED]> 
 
+       * Mono.TextEditor/DefaultEditActions.cs: Insert/Remove Indent now works
+         without selection.
+
+2008-02-03  Mike Krüger <[EMAIL PROTECTED]> 
+
        * Mono.TextEditor/DefaultEditActions.cs, 
Mono.TextEditor/TextEditorData.cs:
          Some changes to remove code duplication.
 

Modified: 
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor/DefaultEditActions.cs
===================================================================
--- 
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor/DefaultEditActions.cs
     2008-02-03 14:30:34 UTC (rev 94690)
+++ 
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor/DefaultEditActions.cs
     2008-02-03 14:44:28 UTC (rev 94691)
@@ -502,8 +502,8 @@
                
                public static void RemoveIndentSelection (TextEditorData data)
                {
-                       int startLineNr = 
data.Document.Splitter.GetLineNumberForOffset (data.SelectionRange.Offset);
-                       int endLineNr   = 
data.Document.Splitter.GetLineNumberForOffset (data.SelectionRange.EndOffset);
+                       int startLineNr = data.IsSomethingSelected ? 
data.Document.Splitter.GetLineNumberForOffset (data.SelectionRange.Offset) : 
data.Caret.Line;
+                       int endLineNr   = data.IsSomethingSelected ? 
data.Document.Splitter.GetLineNumberForOffset (data.SelectionRange.EndOffset) : 
data.Caret.Line;
                        data.Document.BeginAtomicUndo ();
                        int first = -1;
                        int last  = 0;
@@ -512,11 +512,13 @@
                                if (first < 0)
                                        first = last;
                        }
-                       data.SelectionStart.Column -= first;
-                       if (data.SelectionEnd.Column != 0) {
-                               data.SelectionEnd.Column -= last;
+                       if (data.IsSomethingSelected)
+                               data.SelectionStart.Column = System.Math.Max 
(0, data.SelectionStart.Column - first);
+                       if (!data.IsSomethingSelected 
|| data.SelectionEnd.Column != 0) {
+                               if (data.IsSomethingSelected)
+                                       data.SelectionEnd.Column = 
System.Math.Max (0, data.SelectionEnd.Column - last);
                                data.Caret.PreserveSelection = true;
-                               data.Caret.Column -= last;
+                               data.Caret.Column = System.Math.Max (0, 
data.Caret.Column - last);
                                data.Caret.PreserveSelection = false;
                        }
                        data.Document.EndAtomicUndo ();
@@ -553,15 +555,17 @@
        {
                public static void IndentSelection (TextEditorData data)
                {
-                       int startLineNr = 
data.Document.Splitter.GetLineNumberForOffset (data.SelectionRange.Offset);
-                       int endLineNr   = 
data.Document.Splitter.GetLineNumberForOffset (data.SelectionRange.EndOffset);
+                       int startLineNr = data.IsSomethingSelected ? 
data.Document.Splitter.GetLineNumberForOffset (data.SelectionRange.Offset) : 
data.Caret.Line;
+                       int endLineNr   = data.IsSomethingSelected ? 
data.Document.Splitter.GetLineNumberForOffset (data.SelectionRange.EndOffset) : 
data.Caret.Line;
                        data.Document.BeginAtomicUndo ();
                        foreach (LineSegment line in data.SelectedLines) {
                                data.Document.Buffer.Insert (line.Offset, new 
StringBuilder(TextEditorOptions.Options.IndentationString));
                        }
-                       data.SelectionStart.Column++;
-                       if (data.SelectionEnd.Column != 0) {
-                               data.SelectionEnd.Column++;
+                       if (data.IsSomethingSelected)
+                               data.SelectionStart.Column++;
+                       if (!data.IsSomethingSelected 
|| data.SelectionEnd.Column != 0) {
+                               if (data.IsSomethingSelected)
+                                       data.SelectionEnd.Column++;
                                data.Caret.PreserveSelection = true;
                                data.Caret.Column++;
                                data.Caret.PreserveSelection = false;

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

Reply via email to