Browse Source

Fixed SD2-1139 - Text editor mouse position incorrect in status bar. The line, column and character positions in the status bar were being set in two different places by slightly different code and in the TextEditorDisplayBinding and the XmlView the positions were off by one.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@1856 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Matt Ward 19 years ago
parent
commit
9043a2345f
  1. 8
      src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlEditorControl.cs
  2. 22
      src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlView.cs
  3. 6
      src/Main/Base/Project/Src/TextEditor/Gui/Editor/SharpDevelopTextAreaControl.cs
  4. 13
      src/Main/Base/Project/Src/TextEditor/Gui/Editor/TextEditorDisplayBinding.cs

8
src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlEditorControl.cs

@ -114,7 +114,6 @@ namespace ICSharpCode.XmlEditor @@ -114,7 +114,6 @@ namespace ICSharpCode.XmlEditor
newControl.ContextMenuStrip = MenuService.CreateContextMenu(this, contextMenuPath);
newControl.SelectionManager.SelectionChanged += new EventHandler(SelectionChanged);
newControl.Document.DocumentChanged += new DocumentEventHandler(DocumentChanged);
newControl.Caret.PositionChanged += new EventHandler(CaretPositionChanged);
newControl.TextArea.ClipboardHandler.CopyText += new CopyTextEventHandler(ClipboardHandlerCopyText);
newControl.MouseWheel += new MouseEventHandler(TextAreaMouseWheel);
@ -229,12 +228,7 @@ namespace ICSharpCode.XmlEditor @@ -229,12 +228,7 @@ namespace ICSharpCode.XmlEditor
{
SideBarView.PutInClipboardRing(e.Text);
}
void CaretPositionChanged(object sender, EventArgs e)
{
StatusBarService.SetCaretPosition(ActiveTextAreaControl.TextArea.TextView.GetVisualColumn(ActiveTextAreaControl.Caret.Line, ActiveTextAreaControl.Caret.Column), ActiveTextAreaControl.Caret.Line, ActiveTextAreaControl.Caret.Column);
}
void TextAreaMouseWheel(object sender, MouseEventArgs e)
{
TextAreaControl textAreaControl = (TextAreaControl)sender;

22
src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlView.cs

@ -56,16 +56,17 @@ namespace ICSharpCode.XmlEditor @@ -56,16 +56,17 @@ namespace ICSharpCode.XmlEditor
xmlEditor.Dock = DockStyle.Fill;
xmlEditor.SchemaCompletionDataItems = XmlSchemaManager.SchemaCompletionDataItems;
xmlEditor.Document.DocumentChanged += new DocumentEventHandler(DocumentChanged);
xmlEditor.Document.DocumentChanged += DocumentChanged;
xmlEditor.ActiveTextAreaControl.Caret.CaretModeChanged += new EventHandler(CaretModeChanged);
xmlEditor.ActiveTextAreaControl.Enter += new EventHandler(CaretUpdate);
((Form)ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.Workbench).Activated += new EventHandler(GotFocusEvent);
xmlEditor.ActiveTextAreaControl.Caret.CaretModeChanged += CaretModeChanged;
xmlEditor.ActiveTextAreaControl.Caret.PositionChanged += CaretChanged;
xmlEditor.ActiveTextAreaControl.Enter += CaretUpdate;
((Form)ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.Workbench).Activated += GotFocusEvent;
// Listen for changes to the xml editor properties.
XmlEditorAddInOptions.PropertyChanged += PropertyChanged;
XmlSchemaManager.UserSchemaAdded += new EventHandler(UserSchemaAdded);
XmlSchemaManager.UserSchemaRemoved += new EventHandler(UserSchemaRemoved);
XmlSchemaManager.UserSchemaAdded += UserSchemaAdded;
XmlSchemaManager.UserSchemaRemoved += UserSchemaRemoved;
xmlTreeView = new XmlTreeView(this);
SecondaryViewContents.Add(xmlTreeView);
@ -759,9 +760,10 @@ namespace ICSharpCode.XmlEditor @@ -759,9 +760,10 @@ namespace ICSharpCode.XmlEditor
/// </summary>
void CaretChanged(object sender, EventArgs e)
{
Point pos = xmlEditor.Document.OffsetToPosition(xmlEditor.ActiveTextAreaControl.Caret.Offset);
LineSegment line = xmlEditor.Document.GetLineSegment(pos.Y);
StatusBarService.SetCaretPosition(pos.X + 1, pos.Y + 1, xmlEditor.ActiveTextAreaControl.Caret.Offset - line.Offset + 1);
TextAreaControl activeTextAreaControl = xmlEditor.ActiveTextAreaControl;
int line = activeTextAreaControl.Caret.Line;
int col = activeTextAreaControl.Caret.Column;
StatusBarService.SetCaretPosition(activeTextAreaControl.TextArea.TextView.GetVisualColumn(line, col), line, col);
}
/// <summary>
@ -824,7 +826,9 @@ namespace ICSharpCode.XmlEditor @@ -824,7 +826,9 @@ namespace ICSharpCode.XmlEditor
void OnFileChangedEventInvoked()
{
Console.WriteLine("XmlView.OnFileChangedEventInvoked");
if (((Form)ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.Workbench).Focused) {
Console.WriteLine("OnFileChangedEventInvoked - Workbench has focus");
GotFocusEvent(this, EventArgs.Empty);
}
}

6
src/Main/Base/Project/Src/TextEditor/Gui/Editor/SharpDevelopTextAreaControl.cs

@ -93,7 +93,6 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor @@ -93,7 +93,6 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
MenuService.ShowContextMenu(this, contextMenuPath, (Control)sender, e.X, e.Y);
};
newControl.TextArea.KeyEventHandler += new ICSharpCode.TextEditor.KeyEventHandler(HandleKeyPress);
newControl.Caret.PositionChanged += new EventHandler(CaretPositionChanged);
newControl.TextArea.ClipboardHandler.CopyText += new CopyTextEventHandler(ClipboardHandlerCopyText);
// newControl.TextArea.IconBarMargin.Painted += new MarginPaintEventHandler(PaintIconBarBreakPoints);
@ -176,11 +175,6 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor @@ -176,11 +175,6 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
}
}
void CaretPositionChanged(object sender, EventArgs e)
{
StatusBarService.SetCaretPosition(ActiveTextAreaControl.TextArea.TextView.GetVisualColumn(ActiveTextAreaControl.Caret.Line, ActiveTextAreaControl.Caret.Column), ActiveTextAreaControl.Caret.Line, ActiveTextAreaControl.Caret.Column);
}
void GenerateEditActions()
{
#if DEBUG

13
src/Main/Base/Project/Src/TextEditor/Gui/Editor/TextEditorDisplayBinding.cs

@ -395,11 +395,6 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor @@ -395,11 +395,6 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
// textAreaControl.Refresh();
}
Point GetTextAreaPosition()
{
return textAreaControl.Document.OffsetToPosition(textAreaControl.ActiveTextAreaControl.Caret.Offset);
}
public override INavigationPoint BuildNavPoint()
{
int lineNumber = this.Line;
@ -416,10 +411,10 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor @@ -416,10 +411,10 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
void CaretChanged(object sender, EventArgs e)
{
Point pos = GetTextAreaPosition();
LineSegment line = textAreaControl.Document.GetLineSegment(pos.Y);
StatusBarService.SetCaretPosition(pos.X + 1, pos.Y + 1, textAreaControl.ActiveTextAreaControl.Caret.Offset - line.Offset + 1);
TextAreaControl activeTextAreaControl = textAreaControl.ActiveTextAreaControl;
int line = activeTextAreaControl.Caret.Line;
int col = activeTextAreaControl.Caret.Column;
StatusBarService.SetCaretPosition(activeTextAreaControl.TextArea.TextView.GetVisualColumn(line, col), line, col);
NavigationService.Log(this.BuildNavPoint());
}

Loading…
Cancel
Save