mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-298163 Wanted: "true" frame activation/deactivation events
follow-up: migrate off newly deprecated API methods GitOrigin-RevId: 1226e32d071876f70e2a224c2d50782ffe57ebfb
This commit is contained in:
committed by
intellij-monorepo-bot
parent
ce7cb0f3e1
commit
4e3f372f8d
@@ -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
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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())
|
||||
|
||||
+5
-3
@@ -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);
|
||||
|
||||
+3
-3
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -1383,7 +1383,7 @@
|
||||
</extensions>
|
||||
|
||||
<applicationListeners>
|
||||
<listener class="com.intellij.ide.plugins.DynamicPluginsFrameStateListener" topic="com.intellij.ide.FrameStateListener"/>
|
||||
<listener class="com.intellij.ide.plugins.DynamicPluginsFrameStateListener" topic="com.intellij.openapi.application.ApplicationActivationListener"/>
|
||||
<listener class="com.intellij.openapi.updateSettings.impl.UpdateCheckerService$MyAppLifecycleListener" topic="com.intellij.ide.AppLifecycleListener"/>
|
||||
<listener class="com.intellij.openapi.updateSettings.impl.UpdateSettingsEntryPointActionProvider$LifecycleListener" topic="com.intellij.ide.AppLifecycleListener"/>
|
||||
<listener class="com.intellij.ui.mac.MergeAllWindowsAction$RecentProjectsFullScreenTabSupport" topic="com.intellij.ide.AppLifecycleListener"/>
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
</extensions>
|
||||
|
||||
<applicationListeners>
|
||||
<listener class="com.intellij.settingsSync.SettingsSynchronizer" topic="com.intellij.ide.FrameStateListener"
|
||||
<listener class="com.intellij.settingsSync.SettingsSynchronizer" topic="com.intellij.openapi.application.ApplicationActivationListener"
|
||||
activeInTestMode="false" activeInHeadlessMode="false"/>
|
||||
</applicationListeners>
|
||||
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
|
||||
@@ -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<VirtualFile> folders = ((ChangeListManagerImpl)myClManager).getLockedFolders();
|
||||
if (!folders.isEmpty()) {
|
||||
myDirtyScopeManager.filesDirty(null, folders);
|
||||
|
||||
Reference in New Issue
Block a user