summaryrefslogtreecommitdiff
authoribotty <ibotty>2002-10-13 16:56:54 (UTC)
committer ibotty <ibotty>2002-10-13 16:56:54 (UTC)
commit495abbf351f29328b52cb055566ef8bec6f466f0 (patch) (side-by-side diff)
tree7b462124c88f6127bf3f789339ebde9e4a089e35
parent19cf7d4ff5a64aff90e31b29072ce30db6a046ec (diff)
downloadopie-495abbf351f29328b52cb055566ef8bec6f466f0.zip
opie-495abbf351f29328b52cb055566ef8bec6f466f0.tar.gz
opie-495abbf351f29328b52cb055566ef8bec6f466f0.tar.bz2
key presses should be now visible.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-console/widget_layer.cpp5
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(),