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

Disable "always on top" behavior for VSTs #4802

Closed
tresf opened this issue Jan 28, 2019 · 15 comments · Fixed by #4872
Closed

Disable "always on top" behavior for VSTs #4802

tresf opened this issue Jan 28, 2019 · 15 comments · Fixed by #4872
Assignees
Milestone

Comments

@tresf
Copy link
Member

tresf commented Jan 28, 2019

Request to disable "always on top" behavior of VSTs, or make it configurable.

This decision was made by @Umcaruje in #4110. I'll quote:

it would be beneficial if the VST window actually had a flag to always stay on top, since it disappears every time I click over to LMMS, which is bad UX IMO (Out of scope for this Pull Request though)

Although I agreed that switching is bad UX, covering up the software is also bad UX, so this depends on workflow. The Windows/Linux/MacOS task bar allows quickly switching to a plugin which is arguably more convenient than minimizing it.

For example, a project with 10 VST UIs can cover up all of LMMS requiring a user to minimize many windows just to use the DAW. If this behavior is kept, I vote that we keep it as a configurable flag, defaulting to off.

Feel free to cast your vote by clicking the "React" that matches below.

VST Windows - Always On Top
👍 - Keep current behavior ON, do NOT make configurable
😄 - Keep DEFAULT behavior to ON, make configurable
❤️ - Change DEFAULT behavior to OFF, make configurable
🚀 - Change DEFAULT behavior to OFF, do NOT make configurable

@T0NIT0RMX
Copy link
Contributor

T0NIT0RMX commented Jan 29, 2019

Are we talking about when then "no embedding" option is chosen ?
If so, something problematic is also the lack of possibility to control the VST sound (for instruments) with the keyboard keys to play a note while you tweak the VST
Do you see what I'm talking about ?

@musikBear
Copy link

For example, a project with 10 VST UIs can cover up all of LMMS requiring a user to minimize many windows just to use the DAW

#266 i miss it, but for all open windows, maby an option for traying all open windows would be useful as well, letting user bring one or several windows up with the fore-mentioned task bar trick

@T0NIT0RMX Different issue, though true
Interestingly the LMMS-keyboard gets focus back, if the frame of the VSTs window is clicked

@T0NIT0RMX
Copy link
Contributor

T0NIT0RMX commented Jan 29, 2019

@musikBear I think that when I tried with no embedding, even if you clicked the frame of the VST the keyboard didn't focus on it
Will try asap to confirm

Edit : with no embedding, when the lmms window is not focused there is no way to use keyboard keys (letters, not a midi keyboard) to test the VST while tweaking

@DomClark
Copy link
Member

DomClark commented Jan 29, 2019

Behaviour of plugins in some other DAWs:

  • Reaper: Always on top, present in taskbar
  • Ardour: Always on top, not present in taskbar
  • Tracktion: Hybrid, present in taskbar
  • Bitwig: Always on top, not present in taskbar

Reaper plugin windows are globally on top, not just on top of the program, and have a pin button in the title bar to toggle always-on-top behaviour. In Tracktion, the first time you click the main window it gets focus but the plugins stay on top; if you click it a second time it comes in front of the plugins.

I'm revising my vote to "default on" because this seems to be standard. Currently LMMS behaves like Ardour and Bitwig.

What do we want to do in terms of showing plugin windows in the taskbar? Personally I find having a lot of windows in the taskbar annoying, but if plugins aren't kept on top then managing open windows could get a lot more difficult without them accessible through the taskbar.

VST Windows in Taskbar
👍 - PRESENT in taskbar.
😄 - NOT PRESENT when ALWAYS ON TOP, PRESENT otherwise.
❤️ - NOT PRESENT in taskbar.

@tresf
Copy link
Member Author

tresf commented Jan 29, 2019

VST Windows in Taskbar

image

Does VST spec provide a standard icon for the plugins? If so, can we provide a fallback icon?

Furthermore, I think our window handling has some bugs.... testing with GTG DPC3 on Windows 10:

  • GTG DPC3 taskbar icon doesn't show on initial drag/drop despite the plugin being open and visible
  • When GTG DPC3 is minimized, it shows the taskbar icon.
  • When LMMS is minimized the GTG DPC3 taskbar icon disappears.

Perhaps these inconsistencies are contributing to @T0NIT0RMX's original frustrations? I still think always on top is always annoying, personally with any app (and strongly feel the other DAWs are wrong). Signed in with LMMS service so I could cast my own vote. :)

@tresf
Copy link
Member Author

tresf commented Jan 29, 2019

Currently LMMS behaves like Ardour and Bitwig.

Perhaps the OS doesn't properly group similar tasks? Perhaps their UI makes it easier to toggle on/off?

@DomClark
Copy link
Member

Does VST spec provide a standard icon for the plugins? If so, can we provide a fallback icon?

There's no standard icon that I'm aware of. If we want an icon, options include the LMMS icon or the VeSTige icon.

Currently LMMS behaves like Ardour and Bitwig.

I thought LMMS didn't put the VST in the taskbar, turned out I remembered wrong. Please ignore this statement.

  • GTG DPC3 taskbar icon doesn't show on initial drag/drop despite the plugin being open and visible

I guess this is because we set the owner window after the window is initially shown. I'll try and fix this.

  • When LMMS is minimized the GTG DPC3 taskbar icon disappears.

The plugin is made locally always-on-top by setting LMMS as the owner window, making it behave effectively like a non-modal dialog. Usually it wouldn't appear in the taskbar at all, but we give it the WS_EX_APPWINDOW extended style, which forces it to be there when it's visible. The icon disappearing when LMMS is minimised is how Windows acts in this situation. I don't think there's anything we can do about it. From MSDN: "WS_EX_APPWINDOW: Forces a top-level window onto the taskbar when the window is visible."
Alternatives include not showing it there (as in Ardour, Bitwig), making it globally always-on-top (as in Reaper), or closing it when LMMS is minimised (as in Tracktion).

Perhaps the OS doesn't properly group similar tasks?

Windows groups taskbar buttons by the windows' owning processes' executables. Our VST windows belong to RemoteVstPlugin(32).exe, so won't be grouped with the LMMS main window by default. Windows does allow you to specify groupings yourself in these situations (see https://docs.microsoft.com/en-gb/windows/desktop/shell/appids), but I don't know how much we want to customise OS-specific behaviour.

@DomClark DomClark self-assigned this Jan 30, 2019
@T0NIT0RMX
Copy link
Contributor

T0NIT0RMX commented Jan 30, 2019

@tresf my real frustration is that I can't have the same workflow as I have with embedding.
When I tweak a vst, I need to know what I'm doing quickly, so I need to be able to click on the vst frame and hit my keyboard keys to check how it sounds.

Second problem is the always on top : I would like the "no embedded" vst windows to behave like the embedded ones --> they are not always on top, but they don't disappear when you focus the lmms windows AND you can set a specific window to be always on top of by right clicking the frame and set "always on top"
(Speaking about the icon, I prefer when there is no taskbar icon, as it could easily get anoying when you have lot's of vst's open)

In my opinion, then "no embedding" would be usable.

@musikBear
Copy link

Here you write "taskbar" Do you mean taskbar or Tray?
My Taskbar is solely reserved for 5 programs i like fast access to, and i would not like any sub-components in my taskbar at all
Tray on the other hand, brought up with Alt-TAB contain all running selectable processes, surely that is what we want?
FYI current zasfx has all sub-windows as a seperate element in tray. I have found that quite useful when i build a new preset, and having active VSTs trayed, would be useful too. -But definitively not in taskbar

@tresf
Copy link
Member Author

tresf commented Jan 30, 2019

@musikBear it's called the taskbar. Don't confuse people. The tray is a separate area entirely and we don't put anything there. You may be confusing it with QuickLaunch because of ..... XP ☠️. QuckLaunch is gone in all supported versions of Windows. Launchers and their associated tasks are grouped now, like macOS started doing in the late 90s.

@DomClark
Copy link
Member

I've added a config option; how does this look? Is the wording alright, and is it in the right section? It would be nice if the English were simple and clear, because if I understand things correctly, it's not going to make it to the translations for 1.2.

image

@Spekular
Copy link
Member

Spekular commented Feb 16, 2019 via email

@Spekular
Copy link
Member

Spekular commented Feb 16, 2019 via email

@DomClark
Copy link
Member

DomClark commented Feb 24, 2019

I tried disabling it when another embed mode is selected, but the LED checkboxes don't look any different when disabled so you just end up with a control that seems stuck. Instead, I've tried hiding it when another embed mode is selected, and indented it slightly too. This is the same as how the "Allow auto-save while playing" option behaves with respect to the "Enable auto-save" option.
Also, I changed the wording from "VST windows" to "plugin windows", in line with the "plugin embedding" title.

image

@Spekular
Copy link
Member

LGTM!

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

Successfully merging a pull request may close this issue.

5 participants