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

Can Shift+Space become the keystroke for toggling selection in list box controls? #869

Closed
ScottChesworth opened this issue Feb 23, 2023 · 11 comments · Fixed by #937
Closed
Labels
enhancement needInfo Info has been requested from someone and a response is needed to make any further progress. p1 High priority.

Comments

@ScottChesworth
Copy link
Collaborator

It's been raised on RWP that as things stand, it's not possible to pause when in the MIDI event list view. That's a list box control where on Windows, Control+Space toggles selection of the highlighted event instead of pausing. That's a sticky wicket, because ideally we need to be able to do both of the things Control+Space does.

I know it's not standard for the OS, but would it be possible to hack it so that Shift+Space toggles selection of the highlighted entry when in list box controls? That way, even when it's not OSARA's non-contiguous selection mode handling the workflow, users would at least have a consistent keystroke.

Another alternative could perhaps be to switch around what's bound to Control+Space and Shift+Space, but that would invalidate so many established training resources, I'd rather avoid going that route if possible.

Thoughts? How much gruntwork is it? As per usual I don't know how this would be done, but am happy to tinker and research if someone wants to point me at relevant code.

@ScottChesworth ScottChesworth added enhancement needInfo Info has been requested from someone and a response is needed to make any further progress. p1 High priority. labels Feb 23, 2023
@jcsteh
Copy link
Owner

jcsteh commented Feb 23, 2023

Ug. I guess it's possible, but it would be Windows specific and very hacky. We'd also need to intercept control+space and send it to REAPER's main section. Unless binding it in global scope fixes that part at least?

We'd need to intercept shift+space in the keyboard hook and send the appropriate SysListView32 window messages to toggle selection of the current item, but only in the MIDI event list.

@jcsteh
Copy link
Owner

jcsteh commented Feb 23, 2023

Actually, maybe it doesn't need to be quite that hacky. Are you able to rebind control+space and shift+space in the MIDI event list editor scope? Can control+space pass through to main section? If so, then all we'd need is an OSARA action to toggle the selection of the current list view item, which is still hacky but much less so than messing around with the keyboard hook.

@ScottChesworth
Copy link
Collaborator Author

Are you able to rebind control+space and shift+space in the MIDI event list editor scope?

No, because OSARA's noncontiguous action isn't visible in anything other than main section at the moment.

Can control+space pass through to main section?

Tried binding that, but toggling selection still takes priority when keyboard focus is in the list box control.

@jcsteh
Copy link
Owner

jcsteh commented Feb 23, 2023

Sorry, I meant can you rebind it to anything. OSARA's non-contiguous action wouldn't work here even if it could be bound. We need something entirely different for this.

What about binding control+space globally?

@ScottChesworth
Copy link
Collaborator Author

What about binding control+space globally?

Wouldn't that cut into the usefulness of Control+Space playing/stopping when the params GUI is open? IMO play/pause is less useful than play/stop in that scenario, because play/stop enables you to audition the same section over again easily.

Sorry, I meant can you rebind it to anything.

I don't get the question.

@jcsteh
Copy link
Owner

jcsteh commented Feb 23, 2023

Wouldn't that cut into the usefulness of Control+Space playing/stopping when the params GUI is open?

I guess so. That has always been a bit of a happy accident, but I agree it's a happy accident users have come to rely on, albeit only on Windows.

My question was whether you could bind shift+space or control+space in that section (I don't care to what - just anything that proves the binding worked). You've already answered that for control+space (it doesn't work), but I'm curious as to whether shift+space can be bound there.

@ScottChesworth
Copy link
Collaborator Author

Shift+Space can be bound yeah, it works when focus is in the list box.

@ptorpey
Copy link

ptorpey commented Feb 23, 2023 via email

@ScottChesworth
Copy link
Collaborator Author

Dunno whether Control+Space is a default mapping. If it is, I guess they click the Pause button on the transport bar instead.

@RDMurray
Copy link
Collaborator

RDMurray commented Mar 2, 2023

Control+Space, control+upArrow and Control+DownArrow are grabbed by Osara when listviews have focus since #698 was merged. There is an exception for the custom action editor where Control+arrows reorder the list.

@jcsteh
Copy link
Owner

jcsteh commented Mar 2, 2023

Hahaha. I forgot that intercepting control+space was actually an OSARA thing. So, we could certainly undo that, but making shift+space do it instead would require a bit more work.

jcsteh added a commit that referenced this issue Sep 30, 2023
This allows control+space to play/pause as usual.
Fixes #869.
jcsteh added a commit that referenced this issue Mar 6, 2024
…#937)

This allows control+space to play/pause as usual.
Fixes #869.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement needInfo Info has been requested from someone and a response is needed to make any further progress. p1 High priority.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants