From 1cbabed28c3b764c652ce9ad72276f8b0306861d Mon Sep 17 00:00:00 2001 From: Ellis Whitehead Date: Sun, 6 Oct 2002 16:41:21 +0000 Subject: [PATCH] This patch sets the basis for overriding key combinations that the terminal emulator should capture, even if they are assigned as shortcuts in the program. In this case, only Ctrl+D is overridden. I leave further expansion of overriding to the discression the konsole/konqueror developers. It's been suggested, for example, that all Ctrl+ shortcuts should be overriden. svn path=/trunk/kdebase/konsole/; revision=182445 --- konsole/TEWidget.cpp | 16 ++++++++++++++++ konsole/TEWidget.h | 3 ++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/konsole/TEWidget.cpp b/konsole/TEWidget.cpp index dc3b42d3..9d516640 100644 --- a/konsole/TEWidget.cpp +++ b/konsole/TEWidget.cpp @@ -1436,6 +1436,22 @@ bool TEWidget::eventFilter( QObject *obj, QEvent *e ) return QFrame::eventFilter( obj, e ); } +// Override any accelerator with shortcut = Ctrl+D when pressed with the keyboard +// focus in TEWidget, so that Ctrl+D will still work as 'exit'. +bool TEWidget::event( QEvent *e ) +{ + if ( e->type() == QEvent::AccelOverride ) + { + QKeyEvent *ke = static_cast( e ); + if ( ke->key() == Qt::Key_D && ke->state() == Qt::ControlButton ) + { + ke->accept(); + return true; + } + } + return QFrame::event( e ); +} + /* ------------------------------------------------------------------------- */ /* */ /* Frame */ diff --git a/konsole/TEWidget.h b/konsole/TEWidget.h index 8dcb04fd..3c7a81e2 100644 --- a/konsole/TEWidget.h +++ b/konsole/TEWidget.h @@ -128,7 +128,8 @@ protected: virtual void styleChange( QStyle& ); - bool eventFilter( QObject *, QEvent * ); + bool eventFilter( QObject *, QEvent * ); + bool event( QEvent * ); void drawAttrStr(QPainter &paint, QRect rect, QString& str, ca attr, bool pm, bool clear);