Skip to content

Commit 791cfe3

Browse files
committed
Fix foe EditShapeTool that does not close
1 parent 2b54c8f commit 791cfe3

2 files changed

Lines changed: 12 additions & 4 deletions

File tree

Editor/EditorCore/EditShapeTool.cs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,17 +99,17 @@ void OnEnable()
9999

100100
#if !UNITY_2020_2_OR_NEWER
101101
ToolManager.activeToolChanging += ActiveToolChanging;
102-
#endif
103102
ProBuilderEditor.selectModeChanged += OnSelectModeChanged;
103+
#endif
104104

105105
}
106106

107107
void OnDisable()
108108
{
109109
#if !UNITY_2020_2_OR_NEWER
110110
ToolManager.activeToolChanging -= ActiveToolChanging;
111-
#endif
112111
ProBuilderEditor.selectModeChanged -= OnSelectModeChanged;
112+
#endif
113113
if(m_ShapeEditor != null)
114114
DestroyImmediate(m_ShapeEditor);
115115
}
@@ -131,13 +131,21 @@ void ChangeToObjectMode()
131131
public override void OnActivated()
132132
{
133133
base.OnActivated();
134+
ProBuilderEditor.selectModeChanged += OnSelectModeChanged;
134135
EditorApplication.delayCall += () => ProBuilderEditor.selectMode = SelectMode.Object;
135136
}
136137

137138
public override void OnWillBeDeactivated()
138139
{
139140
base.OnWillBeDeactivated();
140-
EditorApplication.delayCall += () => ProBuilderEditor.ResetToLastSelectMode();
141+
ProBuilderEditor.selectModeChanged -= OnSelectModeChanged;
142+
EditorApplication.delayCall += () => ResetToLastSelectMode();
143+
}
144+
145+
public void ResetToLastSelectMode()
146+
{
147+
if(ProBuilderToolManager.activeTool != Tool.Custom)
148+
ProBuilderEditor.ResetToLastSelectMode();
141149
}
142150
#endif
143151

Editor/EditorCore/ProBuilderEditor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public sealed class ProBuilderEditor : EditorWindow, IHasCustomMenu
4646

4747
EditorToolbar m_Toolbar;
4848
ProBuilderToolManager m_ToolManager; // never use this directly! use toolManager getter to avoid problems with multiple editor instances
49-
static ProBuilderToolManager toolManager => s_Instance != null ? s_Instance.m_ToolManager : null;
49+
internal static ProBuilderToolManager toolManager => s_Instance != null ? s_Instance.m_ToolManager : null;
5050
internal EditorToolbar toolbar => m_Toolbar; // used by unit tests
5151
static ProBuilderEditor s_Instance;
5252

0 commit comments

Comments
 (0)