Modified:
/nemerle/trunk/VsIntegration/Nemerle.VisualStudio/LanguageService/NemerleLanguageService.cs
/nemerle/trunk/VsIntegration/Nemerle.VisualStudio/LanguageService/NemerleSource.cs
/nemerle/trunk/VsIntegration/Nemerle.VisualStudio/LanguageService/NemerleViewFilter.cs
=======================================
---
/nemerle/trunk/VsIntegration/Nemerle.VisualStudio/LanguageService/NemerleLanguageService.cs
Tue Nov 3 23:51:04 2009
+++
/nemerle/trunk/VsIntegration/Nemerle.VisualStudio/LanguageService/NemerleLanguageService.cs
Mon Nov 9 01:38:10 2009
@@ -46,6 +46,7 @@
IVsStatusbar _statusbar;
public NemerlePackage Package { get; private set; }
IVsSmartTagTipWindow _smartTagWin;
+ public bool ContextMenuActive { get; set; }
#endregion
@@ -751,6 +752,9 @@
public bool ShowHint(IVsTextView view, TextSpan hintSpan, Func<string,
string> getHintContent, string hintText)
{
+ if (ContextMenuActive)
+ return false;
+
var hWnd = view.GetWindowHandle();
int lineHeight;
=======================================
---
/nemerle/trunk/VsIntegration/Nemerle.VisualStudio/LanguageService/NemerleSource.cs
Tue Nov 3 23:51:04 2009
+++
/nemerle/trunk/VsIntegration/Nemerle.VisualStudio/LanguageService/NemerleSource.cs
Mon Nov 9 01:38:10 2009
@@ -1561,10 +1561,9 @@
//Debug.WriteLine(Utils.LocationFromSpan(FileIndex,
span).ToVsOutputStringFormat() + "result GetDataTipText() text:");
//Debug.WriteLine(hintText);
- if (Service.ShowHint(view, hintSpan, tipInfo.GetHintContent, hintText))
- return (int)TipSuccesses2.TIP_S_NODEFAULTTIP;
-
- return VSConstants.S_OK;
+ Service.ShowHint(view, hintSpan, tipInfo.GetHintContent, hintText);
+
+ return (int)TipSuccesses2.TIP_S_NODEFAULTTIP;
}
private bool NeedDebugDataTip(QuickTipInfo quickTipInfo, TextSpan[]
textSpan)
=======================================
---
/nemerle/trunk/VsIntegration/Nemerle.VisualStudio/LanguageService/NemerleViewFilter.cs
Wed Nov 4 01:48:08 2009
+++
/nemerle/trunk/VsIntegration/Nemerle.VisualStudio/LanguageService/NemerleViewFilter.cs
Mon Nov 9 01:38:10 2009
@@ -227,13 +227,25 @@
public override void ShowContextMenu(int menuId, Guid groupGuid,
IOleCommandTarget target, int x, int y)
{
var service = Source.Service;
- var menuService =
(OleMenuCommandService)service.GetService(typeof(IMenuCommandService));
- if (menuService == null || service.IsMacroRecordingOn())
- return;
-
- var id = new CommandID(groupGuid, menuId);
- menuService.ShowContextMenu(id, x, y);
-
+
+ service.ContextMenuActive = true;
+
+ try
+ {
+ service.Hint.Close();
+
+ var menuService =
(OleMenuCommandService)service.GetService(typeof(IMenuCommandService));
+ if (menuService == null || service.IsMacroRecordingOn())
+ return;
+
+ var id = new CommandID(groupGuid, menuId);
+ menuService.ShowContextMenu(id, x, y);
+
+ }
+ finally
+ {
+ service.ContextMenuActive = false;
+ }
return;
}