--Boundary-00=_tS99AMmf3IlCUN6 Content-Type: text/plain; charset="utf-8"; boundary="" Content-Transfer-Encoding: 7bit Content-Disposition: inline > I think you're leaking QLabel's, close() doesn't delete the widget unless > it has WDestructiveClose set (or you could connect to deleteLater() instead > of close() ). The labels also don't update position if the page relayouts > and the position of the element with accesskey changes, not sure how to fix > that, but that's just a minor glitch. Right, I will add WDestructiveClose. Regarding the relayout problem, I think the easiest thing is to delete the labels when the page is relayouted. > Other than that I like it and I'd support committing it. Cool. I will wait until cvs is open for non-urgent commits (18th), and try to commit then. > I also noticed another problem with accesskeys after you changed the > activation to just Ctrl: It doesn't work if the focus is e.g. in a > lineedit, and it used to with Ctrl+Alt. You can try it e.g. in > linuxtoday.com discussions. Yes, that's where the grabKeybord() problem. I made a few tests reintroducing it, and I must say that since we only grab one key and the releaseKeyboard occurs before re-dispatching the event, I couldn't find any side affect. Global shortcuts work well and you can use the accesskey from inside a textarea. (see patch attached). Next biggest problem is to find a way to make all this work with the sticky keys feature... jean-baptiste --Boundary-00=_tS99AMmf3IlCUN6 Content-Type: text/x-diff; charset="utf-8"; name="accesskeys_grab.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="accesskeys_grab.diff" Index: khtmlview.cpp =================================================================== RCS file: /home/kde/kdelibs/khtml/khtmlview.cpp,v retrieving revision 1.648 diff -u -3 -r1.648 khtmlview.cpp --- khtmlview.cpp 15 Jul 2004 01:14:12 -0000 1.648 +++ khtmlview.cpp 16 Jul 2004 10:36:36 -0000 @@ -1368,6 +1368,7 @@ #if 0 // added i18n string in case the feature makes it in KDE 3.3 accessMsg+=i18n(" -- press Ctrl to display all available access keys"); #endif + grabKeyboard(); m_part->setStatusBarText(accessMsg,KHTMLPart::BarHoverText); d->accessKeysActivated = true; d->accessKeysPreActivate = false; @@ -1832,6 +1833,7 @@ void KHTMLView::accessKeysTimeout() { +releaseKeyboard(); d->accessKeysActivated=false; d->accessKeysPreActivate = false; m_part->setStatusBarText(QString::null, KHTMLPart::BarHoverText); @@ -1841,7 +1843,7 @@ bool KHTMLView::handleAccessKey( const QKeyEvent* ev ) { if (!d->accessKeysActivated) return false; - +releaseKeyboard(); // Qt interprets the keyevent also with the modifiers, and ev->text() matches that, // but this code must act as if the modifiers weren't pressed QChar c; --Boundary-00=_tS99AMmf3IlCUN6--