mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[wm] remove light-edit-specific method from the window manager
GitOrigin-RevId: f0dc788dfc7adebf9bc5130e2456f22efce1082c
This commit is contained in:
committed by
intellij-monorepo-bot
parent
6af53179e9
commit
378186e17f
@@ -152,15 +152,17 @@ internal class LightEditFrameWrapper(
|
||||
* This method is not used in a normal conditions. Only for light edit.
|
||||
*/
|
||||
private suspend fun allocateLightEditFrame(project: Project,
|
||||
projectFrameHelperFactory: (IdeFrameImpl?) -> ProjectFrameHelper): ProjectFrameHelper {
|
||||
projectFrameHelperFactory: (IdeFrameImpl?) -> LightEditFrameWrapper): ProjectFrameHelper {
|
||||
val windowManager = WindowManager.getInstance() as WindowManagerImpl
|
||||
windowManager.getFrameHelper(project)?.let {
|
||||
return it
|
||||
}
|
||||
|
||||
windowManager.removeAndGetRootFrame()?.let { frame ->
|
||||
val frameHelper = projectFrameHelperFactory(frame)
|
||||
windowManager.lightFrameAssign(project, frameHelper)
|
||||
val frameHelper = projectFrameHelperFactory(frame).apply {
|
||||
setupFor(project)
|
||||
}
|
||||
windowManager.assignFrame(frameHelper, project, false)
|
||||
return frameHelper
|
||||
}
|
||||
|
||||
@@ -200,7 +202,9 @@ private suspend fun allocateLightEditFrame(project: Project,
|
||||
}
|
||||
}
|
||||
|
||||
windowManager.lightFrameAssign(project, frame)
|
||||
frame.setupFor(project)
|
||||
windowManager.assignFrame(frame, project, false)
|
||||
|
||||
val uiFrame = frame.frame
|
||||
if (frameInfo != null) {
|
||||
uiFrame.extendedState = frameInfo.extendedState
|
||||
@@ -216,4 +220,12 @@ private suspend fun allocateLightEditFrame(project: Project,
|
||||
ProjectManagerImpl.dispatchEarlyNotifications()
|
||||
}
|
||||
return frame
|
||||
}
|
||||
}
|
||||
|
||||
private suspend fun LightEditFrameWrapper.setupFor(project: Project) {
|
||||
setRawProject(project)
|
||||
setProject(project)
|
||||
installDefaultProjectStatusBarWidgets(project)
|
||||
updateTitle(project)
|
||||
}
|
||||
|
||||
|
||||
@@ -277,23 +277,24 @@ class WindowManagerImpl : WindowManagerEx(), PersistentStateComponentWithModific
|
||||
}
|
||||
|
||||
suspend fun assignFrame(frameHelper: ProjectFrameHelper, project: Project) {
|
||||
assignFrame(frameHelper, project, true)
|
||||
}
|
||||
|
||||
internal suspend fun assignFrame(frameHelper: ProjectFrameHelper, project: Project, withListener: Boolean) {
|
||||
withContext(Dispatchers.EDT) {
|
||||
LOG.assertTrue(!projectToFrame.containsKey(project))
|
||||
|
||||
val listener = FrameStateListener(defaultFrameInfoHelper)
|
||||
frameHelper.frame.addComponentListener(listener)
|
||||
projectToFrame.put(project, ProjectItem(frameHelper, listener))
|
||||
if (withListener) {
|
||||
val listener = FrameStateListener(defaultFrameInfoHelper)
|
||||
frameHelper.frame.addComponentListener(listener)
|
||||
projectToFrame.put(project, ProjectItem(frameHelper, listener))
|
||||
}
|
||||
else {
|
||||
projectToFrame.put(project, ProjectItem(frameHelper, null))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
internal suspend fun lightFrameAssign(project: Project, frameHelper: ProjectFrameHelper) {
|
||||
projectToFrame.put(project, ProjectItem(frameHelper, null))
|
||||
frameHelper.setRawProject(project)
|
||||
frameHelper.setProject(project)
|
||||
frameHelper.installDefaultProjectStatusBarWidgets(project)
|
||||
frameHelper.updateTitle(project)
|
||||
}
|
||||
|
||||
@RequiresEdt
|
||||
override fun releaseFrame(releasedFrameHelper: ProjectFrameHelper) {
|
||||
val project = releasedFrameHelper.project
|
||||
|
||||
Reference in New Issue
Block a user