diff --git a/src/AddIns/Debugger/Debugger.AddIn/Breakpoints/BreakpointBookmark.cs b/src/AddIns/Debugger/Debugger.AddIn/Breakpoints/BreakpointBookmark.cs
index 6ea6bb3a16..893eb203ae 100644
--- a/src/AddIns/Debugger/Debugger.AddIn/Breakpoints/BreakpointBookmark.cs
+++ b/src/AddIns/Debugger/Debugger.AddIn/Breakpoints/BreakpointBookmark.cs
@@ -152,6 +152,10 @@ namespace Debugger.AddIn.Breakpoints
return string.Format("{0} @{1}", this.FileName, this.LineNumber);
}
+ public override bool DisplaysTooltip {
+ get { return true; }
+ }
+
public override object CreateTooltipContent()
{
return new BreakpointEditorPopup(this) {
diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/IconBarMargin.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/IconBarMargin.cs
index 24f8b416da..ec63f87575 100644
--- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/IconBarMargin.cs
+++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/IconBarMargin.cs
@@ -19,6 +19,7 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
+using System.Linq;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
@@ -286,7 +287,10 @@ namespace ICSharpCode.AvalonEdit.AddIn
int line = GetLineFromMousePosition(e);
if (line < 1) return;
- IBookmark bm = GetBookmarkFromLine(line);
+ IBookmark bm = manager.Bookmarks
+ .Where(m => m.LineNumber == line && m.DisplaysTooltip)
+ .OrderBy(m => m.ZOrder)
+ .FirstOrDefault();
if (bm == null) return;
object content = bm.CreateTooltipContent();
popupToolTip = content as Popup;
@@ -301,7 +305,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
e.Handled = true;
popupToolTip.IsOpen = true;
distanceToPopupLimit = double.PositiveInfinity; // reset limit; we'll re-calculate it on the next mouse movement
- } else {
+ } else if (content != null) {
if (toolTip == null) {
toolTip = new ToolTip();
toolTip.Closed += ToolTipClosed;
diff --git a/src/Main/Base/Project/Editor/Bookmarks/BookmarkBase.cs b/src/Main/Base/Project/Editor/Bookmarks/BookmarkBase.cs
index 1f060e0787..e1fbb0accf 100644
--- a/src/Main/Base/Project/Editor/Bookmarks/BookmarkBase.cs
+++ b/src/Main/Base/Project/Editor/Bookmarks/BookmarkBase.cs
@@ -195,6 +195,10 @@ namespace ICSharpCode.SharpDevelop.Editor.Bookmarks
{
}
+ public virtual bool DisplaysTooltip {
+ get { return false; }
+ }
+
public virtual object CreateTooltipContent()
{
return null;
diff --git a/src/Main/Base/Project/Editor/Bookmarks/EntityBookmark.cs b/src/Main/Base/Project/Editor/Bookmarks/EntityBookmark.cs
index 1c077f4d45..26825bd7c7 100644
--- a/src/Main/Base/Project/Editor/Bookmarks/EntityBookmark.cs
+++ b/src/Main/Base/Project/Editor/Bookmarks/EntityBookmark.cs
@@ -98,6 +98,10 @@ namespace ICSharpCode.SharpDevelop.Editor.Bookmarks
throw new NotSupportedException();
}
+ bool IBookmark.DisplaysTooltip {
+ get { return false; }
+ }
+
object IBookmark.CreateTooltipContent()
{
return null;
diff --git a/src/Main/Base/Project/Editor/Bookmarks/IBookmark.cs b/src/Main/Base/Project/Editor/Bookmarks/IBookmark.cs
index c80366c656..07efd13911 100644
--- a/src/Main/Base/Project/Editor/Bookmarks/IBookmark.cs
+++ b/src/Main/Base/Project/Editor/Bookmarks/IBookmark.cs
@@ -61,6 +61,11 @@ namespace ICSharpCode.SharpDevelop.Editor.Bookmarks
///
void Drop(int lineNumber);
+ ///
+ /// Gets whether this bookmark might want to display a tooltip.
+ ///
+ bool DisplaysTooltip { get; }
+
///
/// Creates the tooltip content for the bookmark.
///