Browse Source

Fixed tooltip flickering and a resolver bug.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@75 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 21 years ago
parent
commit
3cfb8ffad9
  1. 4
      src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextArea.cs
  2. 2
      src/Main/Base/Project/Src/Dom/NRefactoryResolver/NRefactoryResolver.cs
  3. 15
      src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs
  4. 2
      src/Main/Base/Project/Src/Services/ParserService/CaseSensitiveProjectContent.cs

4
src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextArea.cs

@ -299,16 +299,18 @@ namespace ICSharpCode.TextEditor @@ -299,16 +299,18 @@ namespace ICSharpCode.TextEditor
string oldToolTip;
public void SetToolTip(string text)
{
toolTipSet = (text != null);
if (oldToolTip == text)
return;
ToolTip toolTip = this.toolTip;
if (text == null) {
//Console.WriteLine("Tooltip disabled");
toolTip.Hide(this.FindForm());
} else {
//Console.WriteLine("Tooltip set to " + text);
Point p = PointToClient(Control.MousePosition);
p.Offset(3, 3);
toolTip.Show(text, this, p);
toolTipSet = true;
}
oldToolTip = text;
}

2
src/Main/Base/Project/Src/Dom/NRefactoryResolver/NRefactoryResolver.cs

@ -420,7 +420,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -420,7 +420,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
foreach (IMethod m in curType.Methods) {
if (IsSameName(m.Name, memberName) &&
m.MustBeShown(callingClass, true, isClassInInheritanceTree) &&
m.IsAccessible(callingClass, isClassInInheritanceTree) &&
!((m.Modifiers & ModifierEnum.Override) == ModifierEnum.Override)) {
methods.Add(m);
}

15
src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs

@ -519,6 +519,9 @@ namespace ICSharpCode.Core @@ -519,6 +519,9 @@ namespace ICSharpCode.Core
}
}
static string oldExpression, oldToolTip;
static int oldLine;
/// <summary>
/// This function shows variable values as tooltips
/// </summary>
@ -540,7 +543,13 @@ namespace ICSharpCode.Core @@ -540,7 +543,13 @@ namespace ICSharpCode.Core
string textContent = doc.TextContent;
string expression = expressionFinder.FindFullExpression(textContent, seg.Offset + xPosition);
//Console.WriteLine("MouseMove@" + logicPos + ":" + expression);
if (expression != null && expression != String.Empty) {
if (expression != null && expression.Length > 0) {
if (expression == oldExpression && oldLine == logicPos.Y) {
// same expression in same line -> reuse old tooltip
textArea.SetToolTip(oldToolTip);
// SetToolTip must be called in every mousemove event,
// otherwise textArea will close the tooltip.
} else {
// Look if it is variable
//value = selectedThread.LocalVariables[expresion].Value.ToString();
ResolveResult result = ParserService.Resolve(expression, logicPos.Y + 1, xPosition + 1, textArea.MotherTextEditorControl.FileName, textContent);
@ -549,7 +558,11 @@ namespace ICSharpCode.Core @@ -549,7 +558,11 @@ namespace ICSharpCode.Core
value = "expr: >" + expression + "<\n" + value;
textArea.SetToolTip(value);
}
oldToolTip = value;
}
}
oldLine = logicPos.Y;
oldExpression = expression;
}
}
} catch (Exception e) {

2
src/Main/Base/Project/Src/Services/ParserService/CaseSensitiveProjectContent.cs

@ -97,7 +97,7 @@ namespace ICSharpCode.Core @@ -97,7 +97,7 @@ namespace ICSharpCode.Core
{
CaseSensitiveProjectContent newProjectContent = new CaseSensitiveProjectContent();
newProjectContent.referencedContents.Add(ProjectContentRegistry.GetMscorlibContent());
foreach (ProjectItem item in project.Items) {
foreach (ProjectItem item in project.Items.ToArray()) {
switch (item.ItemType) {
case ItemType.Reference:
IProjectContent referencedContent = ProjectContentRegistry.GetProjectContentForReference(item as ReferenceProjectItem);

Loading…
Cancel
Save