X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4a3f5ad0f57884c7cd5c5016cdc292ed53d328f3..39c20230ba7ca49fbdfd7c558b4669ddc15ba4aa:/src/gtk/textctrl.cpp diff --git a/src/gtk/textctrl.cpp b/src/gtk/textctrl.cpp index 26e65214af..f83398df44 100644 --- a/src/gtk/textctrl.cpp +++ b/src/gtk/textctrl.cpp @@ -1016,11 +1016,11 @@ void wxTextCtrl::DoSetValue( const wxString &value, int flags ) return; } + void* blockWidget = IsMultiLine() ? (void*)m_buffer : (void*)m_text; + g_signal_handlers_block_by_func(blockWidget, + (gpointer)gtk_text_changed_callback, this); if ( IsMultiLine() ) { - g_signal_handlers_disconnect_by_func (m_buffer, - (gpointer) gtk_text_changed_callback, this); - gtk_text_buffer_set_text( m_buffer, buffer, strlen(buffer) ); if ( !m_defaultStyle.IsDefault() ) @@ -1030,20 +1030,13 @@ void wxTextCtrl::DoSetValue( const wxString &value, int flags ) wxGtkTextApplyTagsFromAttr(m_widget, m_buffer, m_defaultStyle, &start, &end); } - - g_signal_connect (m_buffer, "changed", - G_CALLBACK (gtk_text_changed_callback), this); } else { - g_signal_handlers_disconnect_by_func (m_text, - (gpointer) gtk_text_changed_callback, this); - gtk_entry_set_text( GTK_ENTRY(m_text), buffer ); - - g_signal_connect (m_text, "changed", - G_CALLBACK (gtk_text_changed_callback), this); } + g_signal_handlers_unblock_by_func(blockWidget, + (gpointer)gtk_text_changed_callback, this); // This was added after discussion on the list SetInsertionPoint(0);