Hi All,
The upgrade from KDE 4.2.1 to 4.2.2 introduced a small but annoying
regression into the Konsole app. Double click text selection no longer
works correctly.
The bug is documented here:
https://bugs.kde.org/show_bug.cgi?id=189651
The attached patch can be stuck in the files directory of the
x11/kdebase4 port to fix the issue until KDE ships an update.
Cheers,
Lawrence
Index: TerminalDisplay.cpp
===================================================================
--- ../apps/konsole/src/TerminalDisplay.cpp
(.../4.2.2/kdebase/apps/konsole/src/TerminalDisplay.cpp) (revision
959808)
+++ ../apps/konsole/src/TerminalDisplay.cpp
(.../4.2.1/kdebase/apps/konsole/src/TerminalDisplay.cpp) (revision
959808)
@@ -2172,12 +2155,11 @@
_wordSelectionMode = true;
// find word boundaries...
- QChar selClass = charClass(_image[i].character);
{
// find the start of the word
int x = bgnSel.x();
while ( ((x>0) || (bgnSel.y()>0 && (_lineProperties[bgnSel.y()-1] &
LINE_WRAPPED) ))
- && charClass(_image[i-1].character) == selClass )
+ && !isCharBoundary(_image[i-1].character) )
{
i--;
if (x>0)
@@ -2196,7 +2178,7 @@
i = loc( endSel.x(), endSel.y() );
x = endSel.x();
while( ((x<_usedColumns-1) || (endSel.y()<_usedLines-1 &&
(_lineProperties[endSel.y()] & LINE_WRAPPED) ))
- && charClass(_image[i+1].character) == selClass )
+ && !isCharBoundary(_image[i+1].character) )
{
i++;
if (x<_usedColumns-1)
@@ -2350,7 +2332,16 @@
return QWidget::focusNextPrevChild( next );
}
+// Returns true upon a word boundary
+// TODO determine if the below charClass() is actually required
+bool TerminalDisplay::isCharBoundary(QChar qch) const
+{
+ if ( _wordCharacters.contains(qch, Qt::CaseInsensitive) ) return true;
+ if ( qch.isSpace() ) return true;
+ return false;
+}
+
QChar TerminalDisplay::charClass(QChar qch) const
{
if ( qch.isSpace() ) return ' ';
Index: TerminalDisplay.h
===================================================================
--- ../apps/konsole/src/TerminalDisplay.h
(.../4.2.2/kdebase/apps/konsole/src/TerminalDisplay.h) (revision 959808)
+++ ../apps/konsole/src/TerminalDisplay.h
(.../4.2.1/kdebase/apps/konsole/src/TerminalDisplay.h) (revision 959808)
@@ -566,6 +563,9 @@
// - Other characters (returns the input character)
QChar charClass(QChar ch) const;
+ // Returns true upon a word boundary
+ bool isCharBoundary(QChar ch) const;
+
void clearImage();
void mouseTripleClickEvent(QMouseEvent* ev);
_______________________________________________
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"