From 50259962667c5c7485fee30e602f2fe551efaf6f Mon Sep 17 00:00:00 2001 From: Mart Raudsepp Date: Fri, 14 Jul 2006 03:46:40 +0000 Subject: [PATCH] gtk_text_iter_get_line and get_line_offset work fine on the end iter. Don't bail if we are at the end of buffer. Fixes one part of bug #1516281, the other part is controversial and probably not reasonable to change. Also deal with NULL being passed as the x or y pointer, as is done also on wxMSW (this was done on 2.6 branch as well, but not noted). git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40089 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/gtk/textctrl.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/gtk/textctrl.cpp b/src/gtk/textctrl.cpp index f84409ea46..1443e57779 100644 --- a/src/gtk/textctrl.cpp +++ b/src/gtk/textctrl.cpp @@ -944,18 +944,20 @@ bool wxTextCtrl::PositionToXY(long pos, long *x, long *y ) const { GtkTextIter iter; gtk_text_buffer_get_iter_at_offset(m_buffer, &iter, pos); - if (gtk_text_iter_is_end(&iter)) - return false; - *y = gtk_text_iter_get_line(&iter); - *x = gtk_text_iter_get_line_offset(&iter); + if ( y ) + *y = gtk_text_iter_get_line(&iter); + if ( x ) + *x = gtk_text_iter_get_line_offset(&iter); } else // single line control { if ( pos <= GTK_ENTRY(m_text)->text_length ) { - *y = 0; - *x = pos; + if ( y ) + *y = 0; + if ( x ) + *x = pos; } else {