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
newControl.ContextMenuStrip = MenuService.CreateContextMenu(this, contextMenuPath); newControl.ContextMenuStrip = MenuService.CreateContextMenu(this, contextMenuPath);
newControl.SelectionManager.SelectionChanged += new EventHandler(SelectionChanged); newControl.SelectionManager.SelectionChanged += new EventHandler(SelectionChanged);
newControl.Document.DocumentChanged += new DocumentEventHandler(DocumentChanged); newControl.Document.DocumentChanged += new DocumentEventHandler(DocumentChanged);
newControl.Caret.PositionChanged += new EventHandler(CaretPositionChanged);
newControl.TextArea.ClipboardHandler.CopyText += new CopyTextEventHandler(ClipboardHandlerCopyText); newControl.TextArea.ClipboardHandler.CopyText += new CopyTextEventHandler(ClipboardHandlerCopyText);
newControl.MouseWheel += new MouseEventHandler(TextAreaMouseWheel); newControl.MouseWheel += new MouseEventHandler(TextAreaMouseWheel);
@ -229,12 +228,7 @@ namespace ICSharpCode.XmlEditor
{ {
SideBarView.PutInClipboardRing(e.Text); 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) void TextAreaMouseWheel(object sender, MouseEventArgs e)
{ {
TextAreaControl textAreaControl = (TextAreaControl)sender; TextAreaControl textAreaControl = (TextAreaControl)sender;

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

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

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

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

Loading…
Cancel
Save