Dov Feldstern wrote:
> Jean-Marc Lasgouttes wrote:
>>>>>>> "Peter" == Peter Kümmel <[EMAIL PROTECTED]> writes:
>>
>> Peter> I've reproduced the error and fixed it. The problem was, not
>> Peter> only page up/down keys were dropped. This code does not work
>> Peter> (because of the implicit casts?)
>>
>> Peter> static const int delayed_keys = Qt::Key_PageDown |
>> Peter> Qt::Key_PageUp; if (e->key() & delayed_keys) {
>>
>> I know this stuff is very difficult to get right, but I do not like at
>> all the idea of testing explicitely qt::pageup/down. We should not
>> depend on these hardcoded keys. For example, your patch will fail for
>> people who use the emacs bindings and use Ctrl+v for page down. I am
>> not asking for adding another case for Ctrl+v (!) but I'd prefer a
>> solution which does not take this into account (especially since I do
>> not understand why only PageDown would be a problem (why is paragraph
>> down not a problem?)
>>
>> JMarc
>>
>>
> 
> Peter, there's one thing I don't understand regarding this whole issue:
> doesn't holding the key down generate only *one* "key-down" and *one*
> "key-up" event? Whereas just pressing a key without holding it geenrates
> a single "keypress" event for every time it's pressed? (I don't know of

A page up/down key press event will be only dropped, if the last one wasn't
processed, so the auto repeated key press events could also produce
multiple scroll events.

> these are the correct terms, I don't know Qt at all, but the idea is
> probably the same). So couldn't we use that to differentiate? In other
> words, we should process every keypress event, and if that takes longer
> than it takes the user to generate them -- well, we should still process
> each one, because otherwise characters get swallowed; and if the
> keypresses are navigation keys, we should process those too --- every
> keypress the user presses means something. OTOH, if the user holds a
> key, we should just scroll or move or whatever as long as it's down, and
> stop as soon as the key is let go. How much we actually move or scroll
> or whatever will depend on the machine's speed, but that's fine: the
> important thing in this case is not to overshoot...
> I don;t know how mouse events fit in exactly, but I suspect it's
> similar: clicking multiple times  on the scrollbar *should* "overshoot"
> --- i.e., every click should count. Holding the mouse button there,
> however, should not overshoot: as soon as the user stops pressing, the
> scrolling should stop.
> 
> Again, I don't really know what I'm talking about, and I haven't been
> following the details of this issue very closely, but just in case this
> can be of some help...
> 

Reply via email to