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;
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
{