- Status Closed
- Percent Complete
- Task Type Bugs
- Category User Interface
- Assigned To No-one
- Operating System Fiio M3K
- Severity Low
- Priority Very Low
- Reported Version Daily build (which?)
- Due in Version Undecided
-
Due Date
Undecided
- Votes 2
- Private
FS#13297 - Autolock allows one softlock-exempted action before disabling the touchpad
Tested on a build of commit 62098a0cc
Autolock appears to not turn off the touchpad for softlock-exempted actions until one exempted action has been taken. This does not occur with manual softlock.
To reproduce:
1. Enable Advanced Softlock
2. Enable: Exempt Play, Autolock On, Always Autolock, Disable Touch, Disable Locked Reminders, Disable All Lock Notifications
3. Play a song
4. Allow the backlight to go to sleep
5. Touch the touchstrip - result is that the song pauses.
6. Touch the touchstrip again - the song does not resume.
7. The song can be resumed again via the physical play button.
Note, if in step (5) you press the physical play button insted of the touchstrip, the touchpad is disabled as well after that point.
Loading...
Available keyboard shortcuts
- Alt + ⇧ Shift + l Login Dialog / Logout
- Alt + ⇧ Shift + a Add new task
- Alt + ⇧ Shift + m My searches
- Alt + ⇧ Shift + t focus taskid search
Tasklist
- o open selected task
- j move cursor down
- k move cursor up
Task Details
- n Next task
- p Previous task
- Alt + ⇧ Shift + e ↵ Enter Edit this task
- Alt + ⇧ Shift + w watch task
- Alt + ⇧ Shift + y Close Task
Task Editing
- Alt + ⇧ Shift + s save task
Update: I'm trying to see if I can figure this one out. So far I have realized that the device doesn't actually get autolocked until a button is pressed, even though the backlight is already off.
There appears to be something magical about the if(notify_user) block in do_softlock(). If I adjust thing so that this block runs, it wakes the screen up (and updates it) upon touchpad press, but switches to locked and does not do the action.
It would appear that the magic code needed is:
sleep(HZ/2);
button_clear_queue();
to be called after do_key_lock(true) - though this causes it to ignore the first button press regardless of if it is from the touchpad or the side buttons.
It would appear that delaying do_key_lock(true) with sleep(HZ/2) behaves the same as above, including ignoring the first press of the side buttons (undesirable).
I've added this patch: https://gerrit.rockbox.org/r/c/rockbox/+/3461
Though this is more like a hack/proof of where the issue is than a real solution at the moment.
patch 3461 was merged, this task can be closed (my browser reloads the page when I try to request closure)