diff options
author | Thiago Macieira <thiago.macieira@nokia.com> | 2010-03-09 18:19:38 (GMT) |
---|---|---|
committer | Thiago Macieira <thiago.macieira@nokia.com> | 2010-03-10 19:00:52 (GMT) |
commit | 4d27295ce01b00f27ceb6d9c6c3227425cbf0d70 (patch) | |
tree | 69af904da0222f4dbce31e8a4b1e30923f9b0d6e /src/gui/text/qtextcontrol.cpp | |
parent | a747e171d316b25ba10dc36f6d54d1cbecad5c32 (diff) | |
download | Qt-4d27295ce01b00f27ceb6d9c6c3227425cbf0d70.zip Qt-4d27295ce01b00f27ceb6d9c6c3227425cbf0d70.tar.gz Qt-4d27295ce01b00f27ceb6d9c6c3227425cbf0d70.tar.bz2 |
Make QTextControl-based classes and QLineEdit understand Ctrl+Shift+Insert
On X11, this key is reserved for pasting the text selection
(a.k.a. the PRIMARY selection). KDE apps already honour this, not all
GNOME ones do, but it was agreed with them on xdg@freedesktop.org.
Reviewed-By: mae <qt-info@nokia.com>
Diffstat (limited to 'src/gui/text/qtextcontrol.cpp')
-rw-r--r-- | src/gui/text/qtextcontrol.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/gui/text/qtextcontrol.cpp b/src/gui/text/qtextcontrol.cpp index f345cd1..6864fe1 100644 --- a/src/gui/text/qtextcontrol.cpp +++ b/src/gui/text/qtextcontrol.cpp @@ -848,9 +848,9 @@ void QTextControl::copy() QApplication::clipboard()->setMimeData(data); } -void QTextControl::paste() +void QTextControl::paste(QClipboard::Mode mode) { - const QMimeData *md = QApplication::clipboard()->mimeData(); + const QMimeData *md = QApplication::clipboard()->mimeData(mode); if (md) insertFromMimeData(md); } @@ -1230,7 +1230,12 @@ void QTextControlPrivate::keyPressEvent(QKeyEvent *e) q->cut(); } else if (e == QKeySequence::Paste) { - q->paste(); + QClipboard::Mode mode = QClipboard::Clipboard; +#ifdef Q_WS_X11 + if (e->modifiers() == (Qt::CTRL | Qt::SHIFT) && e->key() == Qt::Key_Insert) + mode = QClipboard::Selection; +#endif + q->paste(mode); } #endif else if (e == QKeySequence::Delete) { |