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
This commit is contained in:
Mart Raudsepp
2006-07-14 03:46:40 +00:00
parent d7a7616b9d
commit 5025996266

View File

@@ -944,18 +944,20 @@ bool wxTextCtrl::PositionToXY(long pos, long *x, long *y ) const
{ {
GtkTextIter iter; GtkTextIter iter;
gtk_text_buffer_get_iter_at_offset(m_buffer, &iter, pos); 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); if ( y )
*x = gtk_text_iter_get_line_offset(&iter); *y = gtk_text_iter_get_line(&iter);
if ( x )
*x = gtk_text_iter_get_line_offset(&iter);
} }
else // single line control else // single line control
{ {
if ( pos <= GTK_ENTRY(m_text)->text_length ) if ( pos <= GTK_ENTRY(m_text)->text_length )
{ {
*y = 0; if ( y )
*x = pos; *y = 0;
if ( x )
*x = pos;
} }
else else
{ {