[prev in list] [next in list] [prev in thread] [next in thread]
List: kfm-devel
Subject: Re: [Patch] Fixing the Access Key system
From: bj () altern ! org
Date: 2004-07-16 11:06:10
Message-ID: 200407161314.22030.bj () altern ! org
[Download RAW message or body]
> 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
["accesskeys_grab.diff" (text/x-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;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic