Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Further fixes for combined input devices #12

Merged

Conversation

samueldr
Copy link
Member

@samueldr samueldr commented Feb 24, 2023

First, I'm being honest, the evdev driver was probably broken. Let's not even try it. It's not in use.

And then, fixes the issue reported, where the Pinephone(s) would freeze on input.

This was caused by an issue where the keyboard event processing was being made on a pointer event, so events now have a type.

Then, this exposed a weird issue where some events were... hella wonky.

It turns out some widgets peeked at the input device type, with == to determine some special casing. This did not work well with the Goodix panel reporting both as a pointer and a keyboard.

What was done

  • Tested on ASUS TP300LA (keyboard and touchscreen works)
  • Tested on pine64-pinephonepro
  • Tested on Steam Deck
  • Ensured keyboard typing still worked well
  • Test on lenovo-wormdingler

It likely has rotted enough.

With the last change set, I'm pretty sure it just won't work, and I
don't want to deal with yet another driver.
This fixes an issue where event handlers tried to interpret the data
even though it wasn't the right type.

The "press" state is *sigh* shared between keyboard and touchscreen.

This meant that the handled for keyboard worked on bogus data.

What's confusing is how it works without issue on x86_64, verified to
work on combined data types. Even more confusing, how it doesn't cause
an issue when running the `examples/hello` system, nor the recovery
menu, but only in the splash, and only on some device types.
These would end-up missing types when combined.
The issue was masked by the previous deficiencies. It was assumed that
future events shouldn't propagate until a key was entirely released.
This is problematic with fast typers, as it's entirely possible to start
pressing another key while releasing, which would be dropped here.

With this change, we're back to a proper typing experience.

What this removes is the implementation of "long pressing" using the
keyboard. Which is not desirable with our use case.
@samueldr samueldr merged commit 62100c7 into mobile-nixos:development Feb 26, 2023
@samueldr samueldr deleted the fix/input-touch-combined branch February 26, 2023 00:35
samueldr added a commit to samueldr-wip/mobile-nixos-wip that referenced this pull request Feb 26, 2023
wentam pushed a commit to wentam/mobile-nixos that referenced this pull request Feb 26, 2023
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

1 participant