diff options
author | Mike Krüger <mkrueger@novell.com> | 2011-02-01 16:45:17 +0300 |
---|---|---|
committer | Mike Krüger <mkrueger@novell.com> | 2011-02-01 16:45:17 +0300 |
commit | 7af6a89aead88fa81297c205b38ab3fbb264b7d3 (patch) | |
tree | bebc6366053276eca445f949e42ec34a7ebe4179 /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion | |
parent | 9284c1698a00cbd54028b56fd1b4992faa889ce0 (diff) |
Removed static storage of the completion widget in the parameter
information window manager.
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion')
3 files changed, 19 insertions, 22 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/CompletionListWindow.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/CompletionListWindow.cs index 4e05849796..40dad92de9 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/CompletionListWindow.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/CompletionListWindow.cs @@ -311,7 +311,7 @@ namespace MonoDevelop.Ide.CodeCompletion curYPos = Y; Move (X, Y); UpdateDeclarationView (); - ParameterInformationWindowManager.UpdateWindow (); + ParameterInformationWindowManager.UpdateWindow (CompletionWidget); } //smaller lists get size reallocated after FillList, so we have to reposition them diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/CompletionWindowManager.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/CompletionWindowManager.cs index 394c1e643c..ae3359ff10 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/CompletionWindowManager.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/CompletionWindowManager.cs @@ -105,7 +105,7 @@ namespace MonoDevelop.Ide.CodeCompletion return false; } } finally { - ParameterInformationWindowManager.UpdateWindow (); + ParameterInformationWindowManager.UpdateWindow (completionWidget); } } @@ -123,9 +123,9 @@ namespace MonoDevelop.Ide.CodeCompletion { if (wnd != null) { wnd.Destroy (); + ParameterInformationWindowManager.UpdateWindow (wnd.CompletionWidget); wnd = null; } - ParameterInformationWindowManager.UpdateWindow (); OnWindowClosed (EventArgs.Empty); } diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/ParameterInformationWindowManager.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/ParameterInformationWindowManager.cs index 1a63afa459..b8767c7d8b 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/ParameterInformationWindowManager.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/ParameterInformationWindowManager.cs @@ -39,15 +39,13 @@ namespace MonoDevelop.Ide.CodeCompletion static List<MethodData> methods = new List<MethodData> (); static ParameterInformationWindow window; - public static ICompletionWidget CompletionWidget { get; set; } - public static bool IsWindowVisible { get { return methods.Count > 0; } } // Called when a key is pressed in the editor. // Returns false if the key press has to continue normal processing. - public static bool ProcessKeyEvent (Gdk.Key key, Gdk.ModifierType modifier) + public static bool ProcessKeyEvent (ICompletionWidget widget, Gdk.Key key, Gdk.ModifierType modifier) { if (methods.Count == 0) return false; @@ -61,7 +59,7 @@ namespace MonoDevelop.Ide.CodeCompletion cmd.CurrentOverload ++; else cmd.CurrentOverload = 0; - UpdateWindow (); + UpdateWindow (widget); return true; } else if (key == Gdk.Key.Up) { @@ -71,17 +69,17 @@ namespace MonoDevelop.Ide.CodeCompletion cmd.CurrentOverload --; else cmd.CurrentOverload = cmd.MethodProvider.OverloadCount - 1; - UpdateWindow (); + UpdateWindow (widget); return true; } else if (key == Gdk.Key.Escape) { - HideWindow (); + HideWindow (widget); return true; } return false; } - public static void PostProcessKeyEvent (Gdk.Key key, Gdk.ModifierType modifier) + public static void PostProcessKeyEvent (ICompletionWidget widget, Gdk.Key key, Gdk.ModifierType modifier) { // Called after the key has been processed by the editor @@ -93,7 +91,7 @@ namespace MonoDevelop.Ide.CodeCompletion // information window for that method. MethodData md = methods [n]; - int pos = md.MethodProvider.GetCurrentParameterIndex (CompletionWidget, md.CompletionContext); + int pos = md.MethodProvider.GetCurrentParameterIndex (widget, md.CompletionContext); if (pos == -1) { methods.RemoveAt (n); n--; @@ -101,10 +99,10 @@ namespace MonoDevelop.Ide.CodeCompletion } // If the user enters more parameters than the current overload has, // look for another overload with more parameters. - UpdateOverload (); + UpdateOverload (widget); // Refresh. - UpdateWindow (); + UpdateWindow (widget); } public static void ShowWindow (ICompletionWidget widget, CodeCompletionContext ctx, IParameterDataProvider provider) @@ -120,15 +118,14 @@ namespace MonoDevelop.Ide.CodeCompletion md.MethodProvider = provider; md.CurrentOverload = 0; md.CompletionContext = ctx; - CompletionWidget = widget; methods.Add (md); - UpdateWindow (); + UpdateWindow (widget); } - public static void HideWindow () + public static void HideWindow (ICompletionWidget widget) { methods.Clear (); - UpdateWindow (); + UpdateWindow (widget); } public static int GetCurrentOverload () @@ -145,7 +142,7 @@ namespace MonoDevelop.Ide.CodeCompletion return methods [methods.Count - 1].MethodProvider; } - static void UpdateOverload () + static void UpdateOverload (ICompletionWidget widget) { if (methods.Count == 0) return; @@ -154,7 +151,7 @@ namespace MonoDevelop.Ide.CodeCompletion // look for another overload with more parameters. MethodData md = methods [methods.Count - 1]; - int cparam = md.MethodProvider.GetCurrentParameterIndex (CompletionWidget, md.CompletionContext); + int cparam = md.MethodProvider.GetCurrentParameterIndex (widget, md.CompletionContext); if (cparam > md.MethodProvider.GetParameterCount (md.CurrentOverload)) { // Look for an overload which has more parameters @@ -174,7 +171,7 @@ namespace MonoDevelop.Ide.CodeCompletion public static int X { get; private set; } public static int Y { get; private set; } public static bool wasAbove = false; - internal static void UpdateWindow () + internal static void UpdateWindow (ICompletionWidget widget) { // Updates the parameter information window from the information // of the current method overload @@ -190,9 +187,9 @@ namespace MonoDevelop.Ide.CodeCompletion } return; } - var ctx = CompletionWidget.CurrentCodeCompletionContext; + var ctx = widget.CurrentCodeCompletionContext; MethodData md = methods[methods.Count - 1]; - int cparam = md.MethodProvider.GetCurrentParameterIndex (CompletionWidget, md.CompletionContext); + int cparam = md.MethodProvider.GetCurrentParameterIndex (widget, md.CompletionContext); Gtk.Requisition reqSize = window.ShowParameterInfo (md.MethodProvider, md.CurrentOverload, cparam - 1); X = md.CompletionContext.TriggerXCoord; if (CompletionWindowManager.IsVisible) { |