2008-12-10 Carlos Alberto Cortez <calberto.cortez@gmail.com>
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / TextBox.cs
index 9f60b7c1970786d6d61bae5868022591fbe591bb..f26b1bd5ffad0874a441ec4de7434bd5b1daf517 100644 (file)
@@ -135,14 +135,9 @@ namespace System.Windows.Forms {
 
                private void ShowAutoCompleteListBox (bool is_backspace)
                {
-                       if (auto_complete_mode == AutoCompleteMode.None || auto_complete_source == AutoCompleteSource.None)
-                               return;
-
                        // 
                        // We only support CustomSource by now
                        //
-                       if (auto_complete_source != AutoCompleteSource.CustomSource)
-                               return;
 
                        IList source;
                        if (auto_complete_cb_source == null)
@@ -209,6 +204,20 @@ namespace System.Windows.Forms {
                                auto_complete_listbox.HideListBox (false);
                }
 
+               bool IsAutoCompleteAvailable {
+                       get {
+                               if (auto_complete_source == AutoCompleteSource.None || auto_complete_mode == AutoCompleteMode.None)
+                                       return false;
+
+                               // We only support CustomSource by now
+                               if (auto_complete_source != AutoCompleteSource.CustomSource || auto_complete_custom_source == null ||
+                                               auto_complete_custom_source.Count == 0)
+                                       return false;
+
+                               return true;
+                       }
+               }
+
                internal ComboBox AutoCompleteInternalSource {
                        get {
                                return auto_complete_cb_source;
@@ -640,8 +649,7 @@ namespace System.Windows.Forms {
                        switch ((Msg)m.Msg) {
 #if NET_2_0
                                case Msg.WM_KEYDOWN:
-                                       if (auto_complete_mode == AutoCompleteMode.None ||
-                                               auto_complete_source != AutoCompleteSource.CustomSource)
+                                       if (!IsAutoCompleteAvailable)
                                                break;
 
                                        Keys key_data = (Keys)m.WParam.ToInt32 ();
@@ -669,8 +677,7 @@ namespace System.Windows.Forms {
                                        }
                                        break;
                                case Msg.WM_CHAR:
-                                       if (auto_complete_mode == AutoCompleteMode.None ||
-                                               auto_complete_source != AutoCompleteSource.CustomSource)
+                                       if (!IsAutoCompleteAvailable)
                                                break;
 
                                        bool is_backspace = m.WParam.ToInt32 () == 8;