File patch-r897682.diff of Package kdelibs4
Subject: Fix kate crash when leaving block select mode
From: wstephenson@suse.de
Bug: kde#177905
Patch-upstream: 897682
--- kate/view/kateview.cpp (revision 897681)
+++ kate/view/kateview.cpp (revision 897682)
@@ -1893,11 +1893,15 @@ bool KateView::setBlockSelectionMode (bo
m_toggleBlockSelection->setChecked( blockSelectionMode() );
- if(!blockSelectionMode() && !m_viewInternal->getCursor().isValid())
+ KTextEditor::Cursor c = m_viewInternal->getCursor();
+
+ // when leaving block selection mode, if cursor is at an invalid position or past the end of the
+ // line, move the cursor to the last column of the current line
+ if(!blockSelectionMode() && (c.isValid() || c.column() > m_doc->lineLength(c.line())))
{
- KTextEditor::Cursor cursorAtEndOfLine(cursorPosition());
- cursorAtEndOfLine.setColumn(m_doc->kateTextLine(cursorPosition().line())->length());
- setCursorPosition(cursorAtEndOfLine);
+ KTextEditor::Cursor cursorAtEndOfLine(cursorPosition());
+ cursorAtEndOfLine.setColumn(m_doc->kateTextLine(cursorPosition().line())->length());
+ setCursorPosition(cursorAtEndOfLine);
}
}
Index: kate/view/kateview.cpp
===================================================================