From 4e3f372f8dd8119f242770b24d9116d0b307fe84 Mon Sep 17 00:00:00 2001 From: Dmitry Batrak Date: Thu, 11 Aug 2022 16:34:46 +0300 Subject: [PATCH] IDEA-298163 Wanted: "true" frame activation/deactivation events follow-up: migrate off newly deprecated API methods GitOrigin-RevId: 1226e32d071876f70e2a224c2d50782ffe57ebfb --- .../com/intellij/debugger/ui/impl/TipManager.java | 9 +++++---- .../src/SaveAndSyncHandlerImpl.kt | 12 ++++++++---- .../src/com/intellij/diff/impl/DiffWindowBase.java | 7 ++++--- .../ide/FileChangedNotificationProvider.java | 6 ++++-- .../intellij/ide/plugins/DynamicPluginVfsListener.kt | 7 ++++--- .../StatisticsNotificationManagerImpl.java | 8 +++++--- .../notification/impl/NotificationsManagerImpl.java | 6 +++--- .../src/com/intellij/ui/BalloonImpl.java | 7 ++++--- .../src/META-INF/PlatformExtensions.xml | 2 +- .../git4idea/src/git4idea/light/LightGitTracker.kt | 9 +++++---- plugins/settings-sync/resources/META-INF/plugin.xml | 2 +- .../intellij/settingsSync/SettingsSynchronizer.kt | 9 +++++---- .../svn4idea/src/org/jetbrains/idea/svn/SvnVcs.java | 12 +++++++----- 13 files changed, 56 insertions(+), 40 deletions(-) diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/impl/TipManager.java b/java/debugger/impl/src/com/intellij/debugger/ui/impl/TipManager.java index 4e6f0874cfc8..ed8c1876b0af 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/impl/TipManager.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/impl/TipManager.java @@ -2,15 +2,16 @@ package com.intellij.debugger.ui.impl; import com.intellij.application.Topics; -import com.intellij.ide.FrameStateListener; import com.intellij.openapi.Disposable; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.CommonShortcuts; +import com.intellij.openapi.application.ApplicationActivationListener; import com.intellij.openapi.keymap.KeymapUtil; import com.intellij.openapi.util.Disposer; import com.intellij.openapi.util.Weighted; import com.intellij.openapi.util.registry.Registry; +import com.intellij.openapi.wm.IdeFrame; import com.intellij.openapi.wm.IdeGlassPane; import com.intellij.openapi.wm.IdeGlassPaneUtil; import com.intellij.util.Alarm; @@ -88,9 +89,9 @@ public final class TipManager implements Disposable, PopupMenuListener { } } - private class MyFrameStateListener implements FrameStateListener { + private class MyFrameStateListener implements ApplicationActivationListener { @Override - public void onFrameDeactivated() { + public void applicationDeactivated(@NotNull IdeFrame ideFrame) { hideTooltip(true); } } @@ -291,7 +292,7 @@ public final class TipManager implements Disposable, PopupMenuListener { myHideCanceller = new MyAwtPreprocessor(); Toolkit.getDefaultToolkit().addAWTEventListener(myHideCanceller, AWTEvent.MOUSE_MOTION_EVENT_MASK | AWTEvent.KEY_EVENT_MASK | AWTEvent.MOUSE_EVENT_MASK); - Topics.subscribe(FrameStateListener.TOPIC, this, new MyFrameStateListener()); + Topics.subscribe(ApplicationActivationListener.TOPIC, this, new MyFrameStateListener()); } @Override diff --git a/platform/configuration-store-impl/src/SaveAndSyncHandlerImpl.kt b/platform/configuration-store-impl/src/SaveAndSyncHandlerImpl.kt index 81be89ead729..18527b8ba257 100644 --- a/platform/configuration-store-impl/src/SaveAndSyncHandlerImpl.kt +++ b/platform/configuration-store-impl/src/SaveAndSyncHandlerImpl.kt @@ -4,7 +4,10 @@ package com.intellij.configurationStore import com.intellij.CommonBundle import com.intellij.codeWithMe.ClientId import com.intellij.conversion.ConversionService -import com.intellij.ide.* +import com.intellij.ide.GeneralSettings +import com.intellij.ide.IdeEventQueue +import com.intellij.ide.SaveAndSyncHandler +import com.intellij.ide.SaveAndSyncHandlerListener import com.intellij.openapi.Disposable import com.intellij.openapi.application.* import com.intellij.openapi.application.impl.LaterInvocator @@ -27,6 +30,7 @@ import com.intellij.openapi.vfs.VirtualFile import com.intellij.openapi.vfs.newvfs.ManagingFS import com.intellij.openapi.vfs.newvfs.NewVirtualFile import com.intellij.openapi.vfs.newvfs.RefreshQueue +import com.intellij.openapi.wm.IdeFrame import com.intellij.project.stateStore import com.intellij.util.SingleAlarm import com.intellij.util.application @@ -140,8 +144,8 @@ internal class SaveAndSyncHandlerImpl : SaveAndSyncHandler(), Disposable { } val busConnection = ApplicationManager.getApplication().messageBus.connect(this) - busConnection.subscribe(FrameStateListener.TOPIC, object : FrameStateListener { - override fun onFrameDeactivated() { + busConnection.subscribe(ApplicationActivationListener.TOPIC, object : ApplicationActivationListener { + override fun applicationDeactivated(ideFrame: IdeFrame) { externalChangesModificationTracker.incModificationCount() if (!settings.isSaveOnFrameDeactivation || !canSyncOrSave()) { return @@ -155,7 +159,7 @@ internal class SaveAndSyncHandlerImpl : SaveAndSyncHandler(), Disposable { } } - override fun onFrameActivated() { + override fun applicationActivated(ideFrame: IdeFrame) { if (!ApplicationManager.getApplication().isDisposed && settings.isSyncOnFrameActivation) { scheduleRefresh() } diff --git a/platform/diff-impl/src/com/intellij/diff/impl/DiffWindowBase.java b/platform/diff-impl/src/com/intellij/diff/impl/DiffWindowBase.java index de3dd6caa45f..b39a9d0bd4ce 100644 --- a/platform/diff-impl/src/com/intellij/diff/impl/DiffWindowBase.java +++ b/platform/diff-impl/src/com/intellij/diff/impl/DiffWindowBase.java @@ -5,7 +5,7 @@ import com.intellij.diff.DiffDialogHints; import com.intellij.diff.requests.DiffRequest; import com.intellij.diff.util.DiffUserDataKeys; import com.intellij.diff.util.DiffUtil; -import com.intellij.ide.FrameStateListener; +import com.intellij.openapi.application.ApplicationActivationListener; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.WindowWrapper; @@ -13,6 +13,7 @@ import com.intellij.openapi.ui.WindowWrapperBuilder; import com.intellij.openapi.util.Disposer; import com.intellij.openapi.vfs.VfsUtilCore; import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.openapi.wm.IdeFrame; import com.intellij.util.Consumer; import com.intellij.util.ObjectUtils; import com.intellij.util.messages.MessageBusConnection; @@ -60,9 +61,9 @@ public abstract class DiffWindowBase { if (wrapperHandler != null) wrapperHandler.consume(myWrapper); MessageBusConnection appConnection = ApplicationManager.getApplication().getMessageBus().connect(myProcessor); - appConnection.subscribe(FrameStateListener.TOPIC, new FrameStateListener() { + appConnection.subscribe(ApplicationActivationListener.TOPIC, new ApplicationActivationListener() { @Override - public void onFrameActivated() { + public void applicationActivated(@NotNull IdeFrame ideFrame) { DiffRequest request = myProcessor.getActiveRequest(); if (request != null) { VirtualFile[] files = VfsUtilCore.toVirtualFileArray(request.getFilesToRefresh()); diff --git a/platform/platform-impl/src/com/intellij/ide/FileChangedNotificationProvider.java b/platform/platform-impl/src/com/intellij/ide/FileChangedNotificationProvider.java index 432190994c7b..c0db1ce52d05 100644 --- a/platform/platform-impl/src/com/intellij/ide/FileChangedNotificationProvider.java +++ b/platform/platform-impl/src/com/intellij/ide/FileChangedNotificationProvider.java @@ -1,6 +1,7 @@ // Copyright 2000-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.ide; +import com.intellij.openapi.application.ApplicationActivationListener; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.fileEditor.FileEditor; @@ -16,6 +17,7 @@ import com.intellij.openapi.vfs.VirtualFileManager; import com.intellij.openapi.vfs.VirtualFileSystem; import com.intellij.openapi.vfs.newvfs.BulkFileListener; import com.intellij.openapi.vfs.newvfs.events.VFileEvent; +import com.intellij.openapi.wm.IdeFrame; import com.intellij.ui.EditorNotificationPanel; import com.intellij.ui.EditorNotifications; import com.intellij.util.containers.ContainerUtil; @@ -32,9 +34,9 @@ public final class FileChangedNotificationProvider extends EditorNotifications.P public FileChangedNotificationProvider() { MessageBusConnection connection = ApplicationManager.getApplication().getMessageBus().connect(); - connection.subscribe(FrameStateListener.TOPIC, new FrameStateListener() { + connection.subscribe(ApplicationActivationListener.TOPIC, new ApplicationActivationListener() { @Override - public void onFrameActivated() { + public void applicationActivated(@NotNull IdeFrame ideFrame) { if (GeneralSettings.getInstance().isSyncOnFrameActivation()) { return; } diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/DynamicPluginVfsListener.kt b/platform/platform-impl/src/com/intellij/ide/plugins/DynamicPluginVfsListener.kt index 5dc227ebf864..5b751d128d12 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/DynamicPluginVfsListener.kt +++ b/platform/platform-impl/src/com/intellij/ide/plugins/DynamicPluginVfsListener.kt @@ -1,11 +1,11 @@ // Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.ide.plugins -import com.intellij.ide.FrameStateListener import com.intellij.ide.IdeBundle import com.intellij.notification.NotificationType import com.intellij.openapi.actionSystem.AnAction import com.intellij.openapi.actionSystem.AnActionEvent +import com.intellij.openapi.application.ApplicationActivationListener import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.application.PathManager import com.intellij.openapi.application.PreloadingActivity @@ -17,6 +17,7 @@ import com.intellij.openapi.vfs.VirtualFile import com.intellij.openapi.vfs.newvfs.RefreshQueue import com.intellij.openapi.vfs.newvfs.events.VFileContentChangeEvent import com.intellij.openapi.vfs.newvfs.events.VFileEvent +import com.intellij.openapi.wm.IdeFrame import java.nio.file.Path private const val AUTO_RELOAD_PLUGINS_SYSTEM_PROPERTY = "idea.auto.reload.plugins" @@ -105,8 +106,8 @@ internal class DynamicPluginVfsListener : AsyncFileListener { } } -class DynamicPluginsFrameStateListener : FrameStateListener { - override fun onFrameActivated() { +class DynamicPluginsFrameStateListener : ApplicationActivationListener { + override fun applicationActivated(ideFrame: IdeFrame) { if (!java.lang.Boolean.getBoolean(AUTO_RELOAD_PLUGINS_SYSTEM_PROPERTY)) return val pluginsRoot = LocalFileSystem.getInstance().findFileByPath(PathManager.getPluginsPath()) diff --git a/platform/platform-impl/src/com/intellij/internal/statistic/notification/StatisticsNotificationManagerImpl.java b/platform/platform-impl/src/com/intellij/internal/statistic/notification/StatisticsNotificationManagerImpl.java index c4fe9961555b..fb2c7fc69bd0 100644 --- a/platform/platform-impl/src/com/intellij/internal/statistic/notification/StatisticsNotificationManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/internal/statistic/notification/StatisticsNotificationManagerImpl.java @@ -4,22 +4,24 @@ package com.intellij.internal.statistic.notification; import com.intellij.application.Topics; import com.intellij.featureStatistics.FeatureUsageTracker; import com.intellij.featureStatistics.FeatureUsageTrackerImpl; -import com.intellij.ide.FrameStateListener; import com.intellij.ide.StatisticsNotificationManager; import com.intellij.ide.gdpr.ConsentOptions; import com.intellij.internal.statistic.persistence.UsageStatisticsPersistenceComponent; import com.intellij.internal.statistic.utils.StatisticsUploadAssistant; import com.intellij.notification.impl.NotificationsConfigurationImpl; import com.intellij.openapi.Disposable; +import com.intellij.openapi.application.ApplicationActivationListener; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.util.Disposer; +import com.intellij.openapi.wm.IdeFrame; import com.intellij.openapi.wm.ex.WindowManagerEx; import com.intellij.openapi.wm.impl.ProjectFrameHelper; import com.intellij.ui.AppUIUtil; import com.intellij.ui.BalloonLayout; import com.intellij.ui.BalloonLayoutImpl; import com.intellij.util.Time; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.awt.*; @@ -34,9 +36,9 @@ final class StatisticsNotificationManagerImpl implements StatisticsNotificationM NotificationsConfigurationImpl.remove("SendUsagesStatistics"); Disposable disposable = Disposer.newDisposable(); - Topics.subscribe(FrameStateListener.TOPIC, disposable, new FrameStateListener() { + Topics.subscribe(ApplicationActivationListener.TOPIC, disposable, new ApplicationActivationListener() { @Override - public void onFrameActivated() { + public void applicationActivated(@NotNull IdeFrame ideFrame) { if (isEmpty(WindowManagerEx.getInstanceEx().getMostRecentFocusedWindow())) { ApplicationManager.getApplication().invokeLater(() -> showNotification()); Disposer.dispose(disposable); diff --git a/platform/platform-impl/src/com/intellij/notification/impl/NotificationsManagerImpl.java b/platform/platform-impl/src/com/intellij/notification/impl/NotificationsManagerImpl.java index 24292e19029c..3514ac28966d 100644 --- a/platform/platform-impl/src/com/intellij/notification/impl/NotificationsManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/notification/impl/NotificationsManagerImpl.java @@ -4,7 +4,6 @@ package com.intellij.notification.impl; import com.intellij.codeInsight.hint.TooltipController; import com.intellij.icons.AllIcons; import com.intellij.ide.DataManager; -import com.intellij.ide.FrameStateListener; import com.intellij.ide.IdeBundle; import com.intellij.ide.impl.ProjectUtil; import com.intellij.ide.ui.LafManagerListener; @@ -13,6 +12,7 @@ import com.intellij.notification.impl.ui.NotificationsUtil; import com.intellij.openapi.Disposable; import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.application.Application; +import com.intellij.openapi.application.ApplicationActivationListener; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ModalityState; import com.intellij.openapi.diagnostic.Logger; @@ -362,9 +362,9 @@ public final class NotificationsManagerImpl extends NotificationsManager { Disposable listenerDisposable = Disposer.newDisposable(); Disposer.register(parentDisposable, listenerDisposable); ApplicationManager.getApplication().getMessageBus().connect(listenerDisposable) - .subscribe(FrameStateListener.TOPIC, new FrameStateListener() { + .subscribe(ApplicationActivationListener.TOPIC, new ApplicationActivationListener() { @Override - public void onFrameActivated() { + public void applicationActivated(@NotNull IdeFrame ideFrame) { Disposer.dispose(listenerDisposable); callback.run(); } diff --git a/platform/platform-impl/src/com/intellij/ui/BalloonImpl.java b/platform/platform-impl/src/com/intellij/ui/BalloonImpl.java index ce14f554956d..69bb454bcc45 100644 --- a/platform/platform-impl/src/com/intellij/ui/BalloonImpl.java +++ b/platform/platform-impl/src/com/intellij/ui/BalloonImpl.java @@ -4,7 +4,6 @@ package com.intellij.ui; import com.intellij.application.Topics; import com.intellij.codeInsight.hint.HintManagerImpl; import com.intellij.icons.AllIcons; -import com.intellij.ide.FrameStateListener; import com.intellij.ide.IdeEventQueue; import com.intellij.ide.IdeTooltip; import com.intellij.ide.RemoteDesktopService; @@ -16,6 +15,7 @@ import com.intellij.openapi.MnemonicHelper; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.ex.AnActionListener; +import com.intellij.openapi.application.ApplicationActivationListener; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.ui.GraphicsConfig; @@ -26,6 +26,7 @@ import com.intellij.openapi.ui.popup.LightweightWindowEvent; import com.intellij.openapi.util.*; import com.intellij.openapi.util.registry.Registry; import com.intellij.openapi.wm.IdeFocusManager; +import com.intellij.openapi.wm.IdeFrame; import com.intellij.openapi.wm.IdeGlassPane; import com.intellij.openapi.wm.WeakFocusStackManager; import com.intellij.ui.awt.RelativePoint; @@ -970,9 +971,9 @@ public final class BalloonImpl implements Balloon, IdeTooltip.Ui, ScreenAreaCons public void startSmartFadeoutTimer(int delay) { mySmartFadeout = true; mySmartFadeoutDelay = delay; - Topics.subscribe(FrameStateListener.TOPIC, this, new FrameStateListener() { + Topics.subscribe(ApplicationActivationListener.TOPIC, this, new ApplicationActivationListener() { @Override - public void onFrameDeactivated() { + public void applicationDeactivated(@NotNull IdeFrame ideFrame) { if (!myFadeoutAlarm.isEmpty()) { myFadeoutAlarm.cancelAllRequests(); mySmartFadeoutDelay = myFadeoutRequestDelay - (int)(System.currentTimeMillis() - myFadeoutRequestMillis); diff --git a/platform/platform-resources/src/META-INF/PlatformExtensions.xml b/platform/platform-resources/src/META-INF/PlatformExtensions.xml index 8c036c7ea35e..d8d42b293779 100644 --- a/platform/platform-resources/src/META-INF/PlatformExtensions.xml +++ b/platform/platform-resources/src/META-INF/PlatformExtensions.xml @@ -1383,7 +1383,7 @@ - + diff --git a/plugins/git4idea/src/git4idea/light/LightGitTracker.kt b/plugins/git4idea/src/git4idea/light/LightGitTracker.kt index 22711ba1c1fb..23d07b4e885d 100644 --- a/plugins/git4idea/src/git4idea/light/LightGitTracker.kt +++ b/plugins/git4idea/src/git4idea/light/LightGitTracker.kt @@ -1,11 +1,11 @@ // Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package git4idea.light -import com.intellij.ide.FrameStateListener import com.intellij.ide.lightEdit.LightEditService import com.intellij.ide.lightEdit.LightEditorInfo import com.intellij.ide.lightEdit.LightEditorListener import com.intellij.openapi.Disposable +import com.intellij.openapi.application.ApplicationActivationListener import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.diagnostic.Logger import com.intellij.openapi.util.Disposer @@ -14,6 +14,7 @@ import com.intellij.openapi.vfs.VirtualFile import com.intellij.openapi.vfs.VirtualFileManager import com.intellij.openapi.vfs.newvfs.BulkFileListener import com.intellij.openapi.vfs.newvfs.events.VFileEvent +import com.intellij.openapi.wm.IdeFrame import com.intellij.util.EventDispatcher import com.intellij.vcs.log.BaseSingleTaskController import com.intellij.vcs.log.runInEdt @@ -57,7 +58,7 @@ class LightGitTracker : Disposable { init { lightEditorManager.addListener(listener, this) - ApplicationManager.getApplication().messageBus.connect(this).subscribe(FrameStateListener.TOPIC, + ApplicationManager.getApplication().messageBus.connect(this).subscribe(ApplicationActivationListener.TOPIC, MyFrameStateListener()) ApplicationManager.getApplication().messageBus.connect(this).subscribe(VirtualFileManager.VFS_CHANGES, MyBulkFileListener()) @@ -149,8 +150,8 @@ class LightGitTracker : Disposable { } } - private inner class MyFrameStateListener : FrameStateListener { - override fun onFrameActivated() { + private inner class MyFrameStateListener : ApplicationActivationListener { + override fun applicationActivated(ideFrame: IdeFrame) { singleTaskController.sendRequests(Request.CheckGit, locationRequest(lightEditService.selectedFile), statusRequest(lightEditorManager.openFiles)) diff --git a/plugins/settings-sync/resources/META-INF/plugin.xml b/plugins/settings-sync/resources/META-INF/plugin.xml index af7372f254b7..a41bc384475f 100644 --- a/plugins/settings-sync/resources/META-INF/plugin.xml +++ b/plugins/settings-sync/resources/META-INF/plugin.xml @@ -41,7 +41,7 @@ - diff --git a/plugins/settings-sync/src/com/intellij/settingsSync/SettingsSynchronizer.kt b/plugins/settings-sync/src/com/intellij/settingsSync/SettingsSynchronizer.kt index ef83507da300..6aefc22b6efe 100644 --- a/plugins/settings-sync/src/com/intellij/settingsSync/SettingsSynchronizer.kt +++ b/plugins/settings-sync/src/com/intellij/settingsSync/SettingsSynchronizer.kt @@ -1,11 +1,12 @@ package com.intellij.settingsSync import com.intellij.ide.ApplicationInitializedListener -import com.intellij.ide.FrameStateListener +import com.intellij.openapi.application.ApplicationActivationListener import com.intellij.openapi.application.PathManager import com.intellij.openapi.diagnostic.logger import com.intellij.openapi.extensions.ExtensionPointName import com.intellij.openapi.util.registry.Registry +import com.intellij.openapi.wm.IdeFrame import com.intellij.settingsSync.plugins.SettingsSyncPluginManager import com.intellij.util.concurrency.AppExecutorUtil import com.intellij.util.concurrency.annotations.RequiresEdt @@ -13,7 +14,7 @@ import kotlinx.coroutines.CoroutineScope import java.util.concurrent.ScheduledFuture import java.util.concurrent.TimeUnit -internal class SettingsSynchronizer : ApplicationInitializedListener, FrameStateListener, SettingsSyncEnabledStateListener { +internal class SettingsSynchronizer : ApplicationInitializedListener, ApplicationActivationListener, SettingsSyncEnabledStateListener { private val executorService = AppExecutorUtil.createBoundedScheduledExecutorService("Settings Sync Update", 1) private val autoSyncDelay get() = Registry.intValue("settingsSync.autoSync.frequency.sec", 60).toLong() @@ -47,7 +48,7 @@ internal class SettingsSynchronizer : ApplicationInitializedListener, FrameState } } - override fun onFrameActivated() { + override fun applicationActivated(ideFrame: IdeFrame) { if (!isSettingsSyncEnabledByKey() || !isSettingsSyncEnabledInSettings() || !SettingsSyncMain.isAvailable()) { return } @@ -61,7 +62,7 @@ internal class SettingsSynchronizer : ApplicationInitializedListener, FrameState } } - override fun onFrameDeactivated() { + override fun applicationDeactivated(ideFrame: IdeFrame) { stopSyncingByTimer() } diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/SvnVcs.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/SvnVcs.java index 1e2a47854a11..604b59497d26 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/SvnVcs.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/SvnVcs.java @@ -1,9 +1,10 @@ // Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package org.jetbrains.idea.svn; -import com.intellij.ide.FrameStateListener; +import com.intellij.application.Topics; import com.intellij.openapi.Disposable; import com.intellij.openapi.application.Application; +import com.intellij.openapi.application.ApplicationActivationListener; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ModalityState; import com.intellij.openapi.diagnostic.Logger; @@ -27,6 +28,7 @@ import com.intellij.openapi.vcs.versionBrowser.ChangeBrowserSettings; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.VirtualFileManager; +import com.intellij.openapi.wm.IdeFrame; import com.intellij.util.Consumer; import com.intellij.util.ThreeState; import com.intellij.util.messages.MessageBusConnection; @@ -248,8 +250,8 @@ public final class SvnVcs extends AbstractVcs { LoadedRevisionsCache.getInstance(myProject); if (myFrameStateListenerDisposable == null && !myProject.isDefault()) { myFrameStateListenerDisposable = Disposer.newDisposable(); - busConnection.subscribe(FrameStateListener.TOPIC, new MyFrameStateListener(ChangeListManager.getInstance(myProject), - VcsDirtyScopeManager.getInstance(myProject))); + Topics.subscribe(ApplicationActivationListener.TOPIC, myFrameStateListenerDisposable, + new MyFrameStateListener(ChangeListManager.getInstance(myProject), VcsDirtyScopeManager.getInstance(myProject))); } mySvnBranchPointsCalculator = new SvnBranchPointsCalculator(this); @@ -718,7 +720,7 @@ public final class SvnVcs extends AbstractVcs { } } - private static final class MyFrameStateListener implements FrameStateListener { + private static final class MyFrameStateListener implements ApplicationActivationListener { private final ChangeListManager myClManager; private final VcsDirtyScopeManager myDirtyScopeManager; @@ -728,7 +730,7 @@ public final class SvnVcs extends AbstractVcs { } @Override - public void onFrameActivated() { + public void applicationActivated(@NotNull IdeFrame ideFrame) { final List folders = ((ChangeListManagerImpl)myClManager).getLockedFolders(); if (!folders.isEmpty()) { myDirtyScopeManager.filesDirty(null, folders);