-
-
Notifications
You must be signed in to change notification settings - Fork 21.4k
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
Refactor and fix issues in Editor Dock Manager #88003
Conversation
f8360f8
to
14ebc20
Compare
Changes:
Does |
2c77f3f
to
069d59b
Compare
069d59b
to
c3a0f9c
Compare
Rebased to fix merge conflicts. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great overall.
c3a0f9c
to
4d31991
Compare
Extract Dock Context Menu.
4d31991
to
0c9c84f
Compare
Refactor and fix issues in Editor Dock Manager
06abc86
Thanks! |
Show in Filesystem
when FileSystem is at the bottom #88000// FIXME: Find it, in a horribly inefficient way.
inEditorDockManager::load_docks_from_config()
// FIXME: Close all floating docks to avoid crash.
inEditorNode::_feature_profile_changed()
from Fix dock visibility issues #84122close_all_floating_docks()
EditorDockManager
fromEditorNode
#84193Implementation Details
EditorDockManager
DockInfo
struct and a HashMap<Control *, DockInfo> of all docks to be able to easily access information on docks.bottom_docks
Vector._edit_current()
with_update_layout()
to handle all updating that needs to happen after any dock moves. Previously some actions like floating a dock wouldn't save the layout, so it wouldn't restore if a crash occurs.set_dock_enabled()
which sets a flag and closes or opens the dock.close_dock()
will hide the dock and move it out of the tab container, so it doesn't affect anything and isn't seen in the dock menu.open_dock()
will restore the dock to its previous location. These will also be useful for Allow opening and closing any editor dock godot-proposals#8206_update_dock_slots_visibility()
because hidden tabs no longer need to be checked._move_dock()
to handle moving the dock, to make sure it is always properly handled when removed from the bottom panel or a floating window, and making sure the title is set when moving to a TabContainer.focus_dock()
handles focusing on a dock no matter where it is.Extracts the dock popup into its own class
DockContextPopup
. (#84193 (comment))