Undid completely wrong patch 1438117: other platforms do _not_ count
the visible lines, only the underlying lines. With the patch, you can't reliably do anything with lines using the other functions. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42968 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -1153,31 +1153,7 @@ int wxTextCtrl::GetNumberOfLines() const
|
|||||||
{
|
{
|
||||||
if ( IsMultiLine() )
|
if ( IsMultiLine() )
|
||||||
{
|
{
|
||||||
GtkTextIter iter;
|
return gtk_text_buffer_get_line_count( m_buffer );
|
||||||
gtk_text_buffer_get_iter_at_offset( m_buffer, &iter, 0 );
|
|
||||||
|
|
||||||
// move forward by one display line until the end is reached
|
|
||||||
int lineCount = 1;
|
|
||||||
while ( gtk_text_view_forward_display_line(GTK_TEXT_VIEW(m_text), &iter) )
|
|
||||||
{
|
|
||||||
lineCount++;
|
|
||||||
}
|
|
||||||
|
|
||||||
// If the last character in the text buffer is a newline,
|
|
||||||
// gtk_text_view_forward_display_line() will return false without that
|
|
||||||
// line being counted. Must add one manually in that case.
|
|
||||||
GtkTextIter lastCharIter;
|
|
||||||
gtk_text_buffer_get_iter_at_offset
|
|
||||||
(
|
|
||||||
m_buffer,
|
|
||||||
&lastCharIter,
|
|
||||||
gtk_text_buffer_get_char_count(m_buffer) - 1
|
|
||||||
);
|
|
||||||
gchar lastChar = gtk_text_iter_get_char( &lastCharIter );
|
|
||||||
if ( lastChar == wxT('\n') )
|
|
||||||
lineCount++;
|
|
||||||
|
|
||||||
return lineCount;
|
|
||||||
}
|
}
|
||||||
else // single line
|
else // single line
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user