]> git.saurik.com Git - wxWidgets.git/commitdiff
emit only 1, not 2, events when changing text of a single line text control
authorVadim Zeitlin <vadim@wxwidgets.org>
Sun, 23 Apr 2006 21:35:33 +0000 (21:35 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sun, 23 Apr 2006 21:35:33 +0000 (21:35 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38882 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/gtk/textctrl.cpp

index 8e7593fe01d87d5fe1842207a78725e9dbe399f9..5a7a67d2ab6c0fd0095e3e1f03ce255d7e7ae67b 100644 (file)
@@ -778,9 +778,14 @@ void wxTextCtrl::SetValue( const wxString &value )
 
         gtk_text_buffer_set_text( m_buffer, buffer, strlen(buffer) );
     }
 
         gtk_text_buffer_set_text( m_buffer, buffer, strlen(buffer) );
     }
-    else
+    else // single line
     {
     {
-        gtk_entry_set_text( GTK_ENTRY(m_text), wxGTK_CONV( value ) );
+        // gtk_entry_set_text() emits two "changed" signals because internally
+        // it calls gtk_editable_delete_text() and gtk_editable_insert_text()
+        // but we want to have only one event
+        IgnoreNextTextUpdate();
+
+        gtk_entry_set_text( GTK_ENTRY(m_text), wxGTK_CONV(value) );
     }
 
     // GRG, Jun/2000: Changed this after a lot of discussion in
     }
 
     // GRG, Jun/2000: Changed this after a lot of discussion in