author | ibotty <ibotty> | 2002-10-13 16:56:54 (UTC) |
---|---|---|
committer | ibotty <ibotty> | 2002-10-13 16:56:54 (UTC) |
commit | 495abbf351f29328b52cb055566ef8bec6f466f0 (patch) (side-by-side diff) | |
tree | 7b462124c88f6127bf3f789339ebde9e4a089e35 | |
parent | 19cf7d4ff5a64aff90e31b29072ce30db6a046ec (diff) | |
download | opie-495abbf351f29328b52cb055566ef8bec6f466f0.zip opie-495abbf351f29328b52cb055566ef8bec6f466f0.tar.gz opie-495abbf351f29328b52cb055566ef8bec6f466f0.tar.bz2 |
key presses should be now visible.
-rw-r--r-- | noncore/apps/opie-console/widget_layer.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/noncore/apps/opie-console/widget_layer.cpp b/noncore/apps/opie-console/widget_layer.cpp index 0364e66..6682708 100644 --- a/noncore/apps/opie-console/widget_layer.cpp +++ b/noncore/apps/opie-console/widget_layer.cpp @@ -1,98 +1,103 @@ /* ------------------------------------------------------------------------- */ /* */ /* widget_layer.cpp Widget Layer */ /* */ /* opie developers <opie@handhelds.org> */ /* */ /* ------------------------------------------------------------------------- */ #include "widget_layer.h" #include <qclipboard.h> #include <qregexp.h> #include <qglobal.h> #include <string.h> //#include < #include "common.h" WidgetLayer::WidgetLayer( const Profile &config, QWidget *parent, const char *name ) : QFrame( parent, name ) { // get the clipboard m_clipboard = QApplication::clipboard(); // when data on clipboard changes, clear selection QObject::connect( (QObject*) m_clipboard, SIGNAL( dataChanged() ), (QObject*)this, SLOT( onClearSelection() ) ); // initialize vars: m_lines = 1; m_columns = 1; m_resizing = false; // just for demonstrating //m_image = QArray<Character>( m_lines * m_columns ); m_image = QArray<Character>( 1 ); + + // we need to install an event filter, + // to emit keypresses. + qApp->installEventFilter( this ); } WidgetLayer::~WidgetLayer() { // clean up delete m_image; } + /* --------------------------------- audio ---------------------------------- */ void WidgetLayer::bell() { QApplication::beep(); } bool WidgetLayer::eventFilter( QObject *obj, QEvent *e ) { if ( (e->type() == QEvent::Accel || e->type() == QEvent::AccelAvailable ) && qApp->focusWidget() == this ) { static_cast<QKeyEvent *>( e )->ignore(); return true; } if ( obj != this /* when embedded */ && obj != parent() /* when standalone */ ) return FALSE; // not us #ifdef FAKE_CTRL_AND_ALT static bool control = FALSE; static bool alt = FALSE; // qDebug(" Has a keyboard with no CTRL and ALT keys, but we fake it:"); bool dele=FALSE; if ( e->type() == QEvent::KeyPress || e->type() == QEvent::KeyRelease ) { QKeyEvent* ke = (QKeyEvent*)e; bool keydown = e->type() == QEvent::KeyPress || ke->isAutoRepeat(); switch (ke->key()) { case Key_F9: // let this be "Control" control = keydown; e = new QKeyEvent(QEvent::KeyPress, Key_Control, 0, ke->state()); dele=TRUE; break; case Key_F13: // let this be "Alt" alt = keydown; e = new QKeyEvent(QEvent::KeyPress, Key_Alt, 0, ke->state()); dele=TRUE; break; default: if ( control ) { int a = toupper(ke->ascii())-64; if ( a >= 0 && a < ' ' ) { e = new QKeyEvent(e->type(), ke->key(), a, ke->state()|ControlButton, QChar(a,0)); dele=TRUE; } } if ( alt ) { e = new QKeyEvent(e->type(), ke->key(), |