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:
parent
d7a7616b9d
commit
5025996266
@ -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
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user