]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/textentrycmn.cpp
Use wxCOMPtr throughout wxWebViewIE to simplify the code and reduce the chance of...
[wxWidgets.git] / src / common / textentrycmn.cpp
index 66a0a6452e2ba1bc01fb373410c69c24dd7527ac..971f5626688ed50faab56148b1f5a62469327d04 100644 (file)
@@ -224,10 +224,20 @@ void wxTextEntryBase::AppendText(const wxString& text)
 
 void wxTextEntryBase::DoSetValue(const wxString& value, int flags)
 {
-    EventsSuppressor noeventsIf(this, !(flags & SetValue_SendEvent));
+    if ( value != GetValue() )
+    {
+        EventsSuppressor noeventsIf(this, !(flags & SetValue_SendEvent));
 
-    SelectAll();
-    WriteText(value);
+        SelectAll();
+        WriteText(value);
+    }
+    else // Same value, no need to do anything.
+    {
+        // Except that we still need to generate the event for consistency with
+        // the normal case when the text does change.
+        if ( flags & SetValue_SendEvent )
+            SendTextUpdatedEvent(GetEditableWindow());
+    }
 
     SetInsertionPoint(0);
 }
@@ -377,6 +387,23 @@ wxTextCompleter::~wxTextCompleter()
 {
 }
 
+bool wxTextCompleterSimple::Start(const wxString& prefix)
+{
+    m_index = 0;
+    m_completions.clear();
+    GetCompletions(prefix, m_completions);
+
+    return !m_completions.empty();
+}
+
+wxString wxTextCompleterSimple::GetNext()
+{
+    if ( m_index == m_completions.size() )
+        return wxString();
+
+    return m_completions[m_index++];
+}
+
 bool wxTextEntryBase::DoAutoCompleteCustom(wxTextCompleter *completer)
 {
     // We don't do anything here but we still need to delete the completer for