From e136b7476372a2ce0a51a43a0ffc3f31a1e2b2d5 Mon Sep 17 00:00:00 2001 From: Robert Roebling Date: Sun, 16 Mar 2003 13:28:56 +0000 Subject: [PATCH] Better scrolling to cursor. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@19584 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/gtk/textctrl.cpp | 7 ++++++- src/gtk1/textctrl.cpp | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/gtk/textctrl.cpp b/src/gtk/textctrl.cpp index d238a913fa..b51ec66389 100644 --- a/src/gtk/textctrl.cpp +++ b/src/gtk/textctrl.cpp @@ -552,9 +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 + + // TODO: Call whatever is needed to delete the selection. gtk_text_buffer_insert_at_cursor( text_buffer, buffer, strlen(buffer) ); + // Scroll to cursor. + GtkTextIter iter; + gtk_text_buffer_get_iter_at_mark( text_buffer, &iter, gtk_text_buffer_get_insert( text_buffer ) ); + gtk_text_view_scroll_to_iter( GTK_TEXT_VIEW(m_text), &iter, 0.0, FALSE, 0.0, 1.0 ); #else // GTK 1.x // After cursor movements, gtk_text_get_point() is wrong by one. gtk_text_set_point( GTK_TEXT(m_text), GET_EDITABLE_POS(m_text) ); diff --git a/src/gtk1/textctrl.cpp b/src/gtk1/textctrl.cpp index d238a913fa..b51ec66389 100644 --- a/src/gtk1/textctrl.cpp +++ b/src/gtk1/textctrl.cpp @@ -552,9 +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 + + // TODO: Call whatever is needed to delete the selection. gtk_text_buffer_insert_at_cursor( text_buffer, buffer, strlen(buffer) ); + // Scroll to cursor. + GtkTextIter iter; + gtk_text_buffer_get_iter_at_mark( text_buffer, &iter, gtk_text_buffer_get_insert( text_buffer ) ); + gtk_text_view_scroll_to_iter( GTK_TEXT_VIEW(m_text), &iter, 0.0, FALSE, 0.0, 1.0 ); #else // GTK 1.x // After cursor movements, gtk_text_get_point() is wrong by one. gtk_text_set_point( GTK_TEXT(m_text), GET_EDITABLE_POS(m_text) ); -- 2.45.2