[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/KDE/3.4/kdelibs/khtml/rendering
From: David Faure <faure () kde ! org>
Date: 2005-05-12 18:31:05
Message-ID: 1115922665.688925.29468.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 412818 by dfaure:
Returning false from onkeypress should prevent the keys from being processed, backport.
BUG: 99749
M +11 -8 branches/KDE/3.4/kdelibs/khtml/rendering/render_replaced.cpp
--- branches/KDE/3.4/kdelibs/khtml/rendering/render_replaced.cpp #412817:412818
@@ -746,10 +746,11 @@
break;
}
case EventImpl::KEYDOWN_EVENT:
+ // do nothing; see the mapping table below
+ break;
case EventImpl::KEYUP_EVENT: {
QKeyEvent* const ke = static_cast<const TextEventImpl &>(ev).qKeyEvent();
- if (ke)
- static_cast<EventPropagator *>(m_widget)->sendEvent(ke);
+ static_cast<EventPropagator *>(m_widget)->sendEvent(ke);
ret = ke->isAccepted();
break;
}
@@ -762,18 +763,20 @@
// because the matching Qt keypress event was already sent from DOM keydown event.
// Reverse drawing as the one in KHTMLView:
- // DOM: Down Press | Press | Up
- // Qt: Press (nothing) | Release(autorepeat) + Press(autorepeat) | Release
+ // DOM: Down Press | Press | Up
+ // Qt: (nothing) Press | Release(autorepeat) + Press(autorepeat) | Release
+ //
+ // Qt::KeyPress is sent for DOM keypress and not DOM keydown to allow
+ // sites to block a key with onkeypress, #99749
QKeyEvent* const ke = static_cast<const TextEventImpl &>(ev).qKeyEvent();
- if (ke && ke->isAutoRepeat()) {
+ if (ke->isAutoRepeat()) {
QKeyEvent releaseEv( QEvent::KeyRelease, ke->key(), ke->ascii(), ke->state(),
ke->text(), ke->isAutoRepeat(), ke->count() );
static_cast<EventPropagator *>(m_widget)->sendEvent(&releaseEv);
- static_cast<EventPropagator *>(m_widget)->sendEvent(ke);
- ret = ke->isAccepted();
}
-
+ static_cast<EventPropagator *>(m_widget)->sendEvent(ke);
+ ret = ke->isAccepted();
break;
}
case EventImpl::MOUSEOUT_EVENT: {
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic