rncbc / qtractor

Qtractor - An Audio/MIDI multi-track sequencer
https://qtractor.org
GNU General Public License v2.0
509 stars 88 forks source link

NSM optional-gui always starts shown #279

Open Houston4444 opened 3 years ago

Houston4444 commented 3 years ago

Hi. This is more a question than a bug report. Under NSM, Qtractor always shows its GUI when it is ready. I didn't find any program with optional-gui capability doing that now. All the veeone serie softwares always start hidden. Is it something wanted ? Something you forgot to change ? I know that remember GUI state in the project file can be quite boring to do, That's why I think this is more a session manager job than a client job. Always start hidden would be nice.

rncbc commented 3 years ago

yeah, that's all correct

qtractor main window state is preserved across run cycles, and that is entirely independent on whether it's been a NSM session participant or anything else: it just remembers the last window state (visibility, position, size) of the instance that ran and quit last time before.

is this issue really a showstopper? :)

ps. the original NSM API spec (and the new too) just states that all optional-gui clients SHOULD start hidden; it's not really a MUST, is it? :)

Houston4444 commented 3 years ago

ps. the original NSM API spec (and the new too) just states that all optional-gui clients SHOULD start hidden; it's not really a MUST, is it? :)

The best is probably to ask it to the concerned devs. I would prefer that Qtractor starts hidden under NSM. @diovudau @falktx what do you think about ?

diovudau commented 3 years ago

While I personally prefer hidden start, no matter what kind of program, I think in this case it is entirely fine. Qtractor in a session is most likely the main program. And if it does save its visibility state for the session then I see not real problem.

I did not test myself: does Qtractor save visibility system-wide or per session?

rncbc commented 3 years ago

does Qtractor save visibility system-wide or per session?

system-wide: the last instance to hide or exit takes the trophy; only plugin GUIs position and size are remembered per session (and that only for certain plugins and GUIs types (eg. DSSI and LV2 external UIs are not possible to save their screen locations).

Houston4444 commented 3 years ago

system-wide: the last instance to hide or exit takes the trophy;

I don't observe this (I am running the last release, not the git master). Here Qtractor always starts with GUI shown under NSM, even if I save and stop the client gui hidden before.

I ask this because I just made an option in RaySession which recall GUI states by showing the clients when session is ready (or client is ready if session is already ready), and hides the GUI when it appears (and not called from user of course) if client was saved hidden. I observe that Qtractor is the only one program I saw that I need to hide. So, it appears that all programs except qtractor remember GUI state or start hidden. And I won't provide a different template for Qtractor if this one is going to change its behavior (and that is not very strong obviously ;) ).

rncbc commented 3 years ago

qtractor main window always shows up when started, no matter is under a NSM session or else. visibility state here is not quite being hidden or show, is about being shown normally, maximazed, minimized, etc. but yes, always shown. not hidden. sorry.

rncbc commented 3 years ago

maybe fixed on https://github.com/rncbc/qtractor/commit/df38403

thanks

Houston4444 commented 3 years ago

thanks. I have not tried yet.