summaryrefslogtreecommitdiff
authoralwin <alwin>2004-08-02 08:19:00 (UTC)
committer alwin <alwin>2004-08-02 08:19:00 (UTC)
commiteb1b398e44c55058d65be0a8d5d8c24db9b6d874 (patch) (side-by-side diff)
tree5c7b84214e1a414f1de7d006cea49f57addabc82
parent26e22b14963afc0e75b9bfdbdf97110249ae87c5 (diff)
downloadopie-eb1b398e44c55058d65be0a8d5d8c24db9b6d874.zip
opie-eb1b398e44c55058d65be0a8d5d8c24db9b6d874.tar.gz
opie-eb1b398e44c55058d65be0a8d5d8c24db9b6d874.tar.bz2
ignore keys no actions are defined
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/applets/zkbapplet/keyzcfg/zkb.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/noncore/applets/zkbapplet/keyzcfg/zkb.cpp b/noncore/applets/zkbapplet/keyzcfg/zkb.cpp
index a357b88..3cc3669 100644
--- a/noncore/applets/zkbapplet/keyzcfg/zkb.cpp
+++ b/noncore/applets/zkbapplet/keyzcfg/zkb.cpp
@@ -238,68 +238,69 @@ int State::translateKeycode(int keycode) const {
return -1;
}
// Implementation of Keymap class
Keymap::Keymap():enabled(true), currentState(0), autoRepeatAction(0), repeater(this) {
repeatDelay=400;
repeatPeriod=80;
connect(&repeater, SIGNAL(timeout()), this, SLOT(autoRepeat()));
}
Keymap::~Keymap() {
odebug << "removing keyboard filter for zkb"<<oendl;
Opie::Core::OKeyFilter::inst()->remHandler(this);
QMap<QString, State*>::Iterator it;
for(it = states.begin(); it != states.end(); ++it) {
delete it.data();
}
states.clear();
}
bool Keymap::filter(int unicode, int keycode, int modifiers,
bool isPress, bool autoRepeat) {
- odebug << "filter: >>> unicode=" << unicode << ", keycode=" << keycode
- << ", modifiers=" << modifiers << ", ispressed=" << isPress << oendl;
-
if (!enabled) {
return false;
}
+ odebug << "filter: >>> unicode=" << unicode << ", keycode=" << keycode
+ << ", modifiers=" << modifiers << ", ispressed=" << isPress << oendl;
+
// the second check is workaround to make suspend work if
// the user pressed it right after he did resume. for some
// reason the event sent by qt has autoRepeat true in this
// case
if (autoRepeat && keycode != 4177) {
return true;
}
(void) unicode; (void) modifiers;
Action* action = currentState->get(keycode, isPress, true);
if (action==0 || !action->isDefined()) {
- return true;
+ odebug << "no action defined for that"<<oendl;
+ return false;
}
if (action->hasEvent()) {
odebug << "filter:<<< unicode=" << action->getUnicode() << ", keycode=" << action->getKeycode()
<< ", modifiers=" << action->getModifiers() << ", ispressed=" << action->isPressed() << oendl;
QWSServer::sendKeyEvent(action->getUnicode(),
action->getKeycode(), action->getModifiers(),
action->isPressed(), false);
}
if (action->isAutorepeat()) {
autoRepeatAction = action;
repeater.start(repeatDelay, TRUE);
} else {
autoRepeatAction = 0;
}
State* nstate = action->getState();
if (nstate != 0) {
setCurrentState(nstate);
QString lbl = getCurrentLabel();
if (!lbl.isEmpty()) {
emit stateChanged(lbl);