Am 04.11.2010 21:32, schrieb Magnus Holmgren:
Hi,

I had a look at FS#11696, and I may have found the cause. My theory is
that button release events aren't always posted, e.g., if repeat
events haven't been processed while the UI is busy with other things.
This in turn can cause get_action_worker in action.c from ignoring
things like wheel events until a release is seen on the new screen
(see the if statement on line 208 using r28144). To fix that, the
patch makes all BUTTON_REL events force-posted (in button_try_post).
It looks promising in some quick testing...

I'd appreciate if someone more familiar with the button.c code (and
action.c, I guess) could take a look at it, and see if it makes sense.
Oh, and testers would be nice too, of course. :)

Link to bug report: http://www.rockbox.org/tracker/task/11696



Scrollwheels are different. The buttons are posted off the normal button_tick() code, the drivers post to the button queue on their own (with acceleration as extra data). And they never post BUTTON_REL, only BUTTON_SCROLL_FWD or BUTTON_SCROLL_FWD|BUTTON_REPEAT (same for BUTTON_SCROLL_BACK).

Best regards.

Reply via email to