Skip to content

Fix Stream Deck Plus Swipe Event Detection#496

Closed
designgears wants to merge 0 commit into
StreamController:mainfrom
designgears:main
Closed

Fix Stream Deck Plus Swipe Event Detection#496
designgears wants to merge 0 commit into
StreamController:mainfrom
designgears:main

Conversation

@designgears

Copy link
Copy Markdown
Contributor

Fix Stream Deck Plus Swipe Event Detection

Problem

Swipe gestures on the Stream Deck Plus touchscreen were not being detected.

Root Causes

  1. Inverted Direction Logic: Left swipe triggered right event and vice versa
  2. Missing Dial Support: Swipe events weren't sent to dial inputs (unlike touch press events)

Solution

  • Corrected swipe direction logic in ControllerTouchScreen.event_callback()
  • Added swipe event forwarding to corresponding dial inputs

Result

✅ Swipe gestures now work correctly on Stream Deck Plus touchscreen
✅ Events are routed to both touchscreen and dial inputs
✅ Actions can be configured to respond to DRAG_LEFT/DRAG_RIGHT events

@Core447

Core447 commented Nov 17, 2025

Copy link
Copy Markdown
Member

2. Missing Dial Support: Swipe events weren't sent to dial inputs (unlike touch press events)

This is actually intended. The swipe events can be used by adding actions to the screen itself. The idea behind it is, that in most cases the swipes will probably be used to switch pages (I believe this is also how it works in the official Elgato app). And it therefore doesn't really make sense to send the events to the dials.

But if you see a use-case for receiving the events on the dials, let me know.

Edit: Just noticed that you mention the events now get send to both the dials and the touchscreen. This way users could still have page switch actions on the touchscreen itself. But for what do you need the swipe events on the dials?

@designgears

Copy link
Copy Markdown
Contributor Author
  1. Missing Dial Support: Swipe events weren't sent to dial inputs (unlike touch press events)
    But if you see a use-case for receiving the events on the dials, let me know.

Edit: Just noticed that you mention the events now get send to both the dials and the touchscreen. This way users could still have page switch actions on the touchscreen itself. But for what do you need the swipe events on the dials?

I'm building a plugin for pipeweaver, I planned on adding some left/right swiping so I could add some per dial screen paging instead of full screen paging.

I think both can co-exist, the current swipes can be executed on a single dial screen, there could be a longer swipe for full page changes.

@designgears

designgears commented Dec 27, 2025

Copy link
Copy Markdown
Contributor Author

I just realized this could be odd if you don't have a stream deck plus, while you can use the entire screen and that's how stream controller handles it, each dial is also a quarter of the screen. This PR gives you the ability to swipe on the quadrants rather than the whole screen.

Edit: the idea of the co-existing, require the swipe for changing pages to be at least X number of pixels or make contact with at least 3 of the of the quadrants to trigger it. That would allow small swipes on each quadrant and long swipes for page changes.

@Core447

Core447 commented Dec 30, 2025

Copy link
Copy Markdown
Member

I don't have a SD+ for testing: Does the StreamDeck registers the swipe if it is only one 1/4 of the screen?

Didn't look at the code in detail yet, just to confirm: you made it so that every swipe gets send to the actions on the Screen, but also to the actions of the dial that matches the swipe position?

@mike3nl

mike3nl commented Dec 30, 2025

Copy link
Copy Markdown

I don't have a SD+ for testing: Does the StreamDeck registers the swipe if it is only one 1/4 of the screen?

Didn't look at the code in detail yet, just to confirm: you made it so that every swipe gets send to the actions on the Screen, but also to the actions of the dial that matches the swipe position?

I could help. I habe a new sd+ 3 weeks old. And i have done a lot with it.
But i'm not a python guy. My field of work is the Industrial Automation like Airbus, ESA, GPL and Nasa and all in C++.

@Core447

Core447 commented Dec 30, 2025

Copy link
Copy Markdown
Member

My field of work is the Industrial Automation like Airbus, ESA, GPL and Nasa and all in C++.

Sounds very interesting!

And thanks for the offer of testing, but let's wait a couple of days for @designgears as he already has the dev environment set up.

@jeinstei

Copy link
Copy Markdown
Contributor

Also interested and happy to test as needed.

@designgears

Copy link
Copy Markdown
Contributor Author

I canned my features that were going to use this, but I can whip up a small plugin to demonstrate and let others test it out as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

4 participants