diff --git a/src/gtk/textctrl.cpp b/src/gtk/textctrl.cpp index d449dcfb75..59485017eb 100644 --- a/src/gtk/textctrl.cpp +++ b/src/gtk/textctrl.cpp @@ -552,8 +552,14 @@ void wxTextCtrl::WriteText( const wxString &text ) wxCharBuffer buffer( wxConvUTF8.cWC2MB( wxConvLocal.cWX2WC( text ) ) ); #endif GtkTextBuffer *text_buffer = gtk_text_view_get_buffer( GTK_TEXT_VIEW(m_text) ); + // TODO: call wahtever is needed to delete the selection gtk_text_buffer_insert_at_cursor( text_buffer, buffer, strlen(buffer) ); + + GtkTextIter iter; + gtk_text_buffer_get_iter_at_mark( text_buffer, &iter, + gtk_text_buffer_get_mark (text_buffer, "insert") ); + gtk_text_view_scroll_to_iter( GTK_TEXT_VIEW(m_text), &iter, 0.0, FALSE, 0.0, 0.0 ); #else // GTK 1.x // After cursor movements, gtk_text_get_point() is wrong by one. diff --git a/src/gtk1/textctrl.cpp b/src/gtk1/textctrl.cpp index d449dcfb75..59485017eb 100644 --- a/src/gtk1/textctrl.cpp +++ b/src/gtk1/textctrl.cpp @@ -552,8 +552,14 @@ void wxTextCtrl::WriteText( const wxString &text ) wxCharBuffer buffer( wxConvUTF8.cWC2MB( wxConvLocal.cWX2WC( text ) ) ); #endif GtkTextBuffer *text_buffer = gtk_text_view_get_buffer( GTK_TEXT_VIEW(m_text) ); + // TODO: call wahtever is needed to delete the selection gtk_text_buffer_insert_at_cursor( text_buffer, buffer, strlen(buffer) ); + + GtkTextIter iter; + gtk_text_buffer_get_iter_at_mark( text_buffer, &iter, + gtk_text_buffer_get_mark (text_buffer, "insert") ); + gtk_text_view_scroll_to_iter( GTK_TEXT_VIEW(m_text), &iter, 0.0, FALSE, 0.0, 0.0 ); #else // GTK 1.x // After cursor movements, gtk_text_get_point() is wrong by one.