fix IDEA not app-napping

1. stop activity after indicator is cancelled
2. don't start activities for delegate indicators
This commit is contained in:
Dennis Ushakov
2015-07-03 19:21:20 +03:00
parent 6083ce8b30
commit bb9ebab4e7
2 changed files with 13 additions and 1 deletions
@@ -45,6 +45,7 @@ public class AbstractProgressIndicatorBase extends UserDataHolderBase implements
private volatile boolean myIndeterminate;
private volatile Object myMacActivity;
private volatile boolean myShouldStartActivity = true;
private Stack<String> myTextStack;
private DoubleArrayList myFractionStack;
@@ -70,7 +71,7 @@ public class AbstractProgressIndicatorBase extends UserDataHolderBase implements
myText = "";
myFraction = 0;
myText2 = "";
myMacActivity = MacUtil.wakeUpNeo(toString());
startSystemActivity();
myRunning = true;
}
@@ -85,6 +86,14 @@ public class AbstractProgressIndicatorBase extends UserDataHolderBase implements
LOG.assertTrue(myRunning, "stop() should be called only if start() called before");
myRunning = false;
myFinished = true;
stopSystemActivity();
}
protected void startSystemActivity() {
myMacActivity = myShouldStartActivity ? MacUtil.wakeUpNeo(toString()) : null;
}
protected void stopSystemActivity() {
MacUtil.matrixHasYou(myMacActivity);
myMacActivity = null;
}
@@ -97,6 +106,7 @@ public class AbstractProgressIndicatorBase extends UserDataHolderBase implements
@Override
public void cancel() {
myCanceled = true;
stopSystemActivity();
ProgressManager.canceled(this);
}
@@ -246,6 +256,7 @@ public class AbstractProgressIndicatorBase extends UserDataHolderBase implements
myFractionStack = new DoubleArrayList(stacked.getFractionStack());
}
myShouldStartActivity = false;
}
@Override
@@ -394,6 +394,7 @@ public class ProgressWindow extends ProgressIndicatorBase implements BlockingPro
@Override
public void dispose() {
stopSystemActivity();
}
@Override