Implement the 'standalone' window mode#3859
Open
rjwills28 wants to merge 12 commits into
Open
Conversation
Standalone windows are configured to have no tabs or toolbar showing. Panes are configured not to change with the global settings to show/hide toolbar/tabs.
and also when including the window size and layout.
when launching from a standalone window. As opposed to opening in the last active window.
Allows the active pane to be set to either the current window or main Phoebus window before opening the editor.
…ntext menu action Only context menu items that open new displays should set the focus. Other items such as copy PV will not.
… standalone In this case the active pane should be set as the main window so that applications open there instead of in place of the standaloene.
|
shroffk
reviewed
Jun 29, 2026
| setFocus = () -> DockPane.setActiveDockPane(dockPane); | ||
| if (dockPane.isStandaloneWindow()) { | ||
| // If in a standalone window, set the active dock pane | ||
| // to be the 'main' Phoebus pain instead of the current dock pane |
Collaborator
There was a problem hiding this comment.
It's an abbreviation: Main pane -> pain
Contributor
Author
There was a problem hiding this comment.
Ha, yes my bad - I'll fix that ;)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


The main purpose of this PR is to add back in the standalone window implementation that existed in CS-Studio. See Issue #3543 for a full description of our motivations.
A standalone window is essentially a window with no toolbars or tabs and so just displays the BOB screen (again, see above issue for an example screen).
A summary of what has been done in this PR:
All of these changes only apply to standalone windows meaning that the original 'New Window' implementation has not been touched and still functions as it did before. These changes will be transparent to users unless they change their actions to open in the standalone mode or use the command line argument to launch them.
We have been actively testing this implementation at Diamond and so have ironed out most of the issues with behaviour.
Note: some of the resizing of windows can be done in a cleaner way once Phoebus has moved to JFX25. This is because there is a bug in older versions of JFX that mean that any sizing of the stage before it is 'shown' (i.e.
stage.show()) are not applied (see #3436). This means that currently we have to do all of our resizing afterstage.show(), which can cause some flickering of screens when they first launch as they pop up at one size and then very quickly get resized. I have a fix for this but propose postpone implementing that until the basic standalone window implementation has been agreed and Phoebus moves to JFX25.I appreciate that this is a reasonably big PR but most of the commits should be fairly self contained with a descriptive message. Please let me know if you have any questions/feedback.
I anticipate a few Sonarcloud issues so I will address those asap.
Checklist
Testing:
Documentation: