diff options
author | Mike Krüger <mkrueger@xamarin.com> | 2012-01-02 17:50:16 +0400 |
---|---|---|
committer | Mike Krüger <mkrueger@xamarin.com> | 2012-01-02 17:50:16 +0400 |
commit | cd68431f23e4fee11f26a15ef04a6d7b2dc91ded (patch) | |
tree | ccdca22f5c64c7bd84e5fa9090fc06fa2401570e | |
parent | 45132db7a43b404c9075a85a7754915c43648278 (diff) |
[Ide] Fixed an issue where in category mode a "random" item was
choosen instead of the first one in the list.
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/ListWidget.cs | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/ListWidget.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/ListWidget.cs index b5ff35b121..d40b680978 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/ListWidget.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/ListWidget.cs @@ -88,7 +88,13 @@ namespace MonoDevelop.Ide.CodeCompletion static bool inCategoryMode; public bool InCategoryMode { get { return inCategoryMode; } - set { inCategoryMode = value; this.CalcVisibleRows (); this.UpdatePage (); } + set { + inCategoryMode = value; + this.CalcVisibleRows (); + this.UpdatePage (); + if (inCategoryMode) + SelectFirstItemInCategory (); + } } public int CategoryCount { get { return this.categories.Count; } @@ -555,12 +561,20 @@ namespace MonoDevelop.Ide.CodeCompletion categories.Sort (delegate (Category left, Category right) { return right.CompletionCategory != null ? right.CompletionCategory.CompareTo (left.CompletionCategory) : -1; }); + + SelectFirstItemInCategory (); CalcVisibleRows (); UpdatePage (); OnWordsFiltered (EventArgs.Empty); } + void SelectFirstItemInCategory () + { + if (string.IsNullOrEmpty (CompletionString) && inCategoryMode) + selection = categories.First ().Items.First (); + } + protected virtual void OnWordsFiltered (EventArgs e) { EventHandler handler = this.WordsFiltered; |