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