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 boolean myIndeterminate;
private volatile Object myMacActivity; private volatile Object myMacActivity;
private volatile boolean myShouldStartActivity = true;
private Stack<String> myTextStack; private Stack<String> myTextStack;
private DoubleArrayList myFractionStack; private DoubleArrayList myFractionStack;
@@ -70,7 +71,7 @@ public class AbstractProgressIndicatorBase extends UserDataHolderBase implements
myText = ""; myText = "";
myFraction = 0; myFraction = 0;
myText2 = ""; myText2 = "";
myMacActivity = MacUtil.wakeUpNeo(toString()); startSystemActivity();
myRunning = true; myRunning = true;
} }
@@ -85,6 +86,14 @@ public class AbstractProgressIndicatorBase extends UserDataHolderBase implements
LOG.assertTrue(myRunning, "stop() should be called only if start() called before"); LOG.assertTrue(myRunning, "stop() should be called only if start() called before");
myRunning = false; myRunning = false;
myFinished = true; myFinished = true;
stopSystemActivity();
}
protected void startSystemActivity() {
myMacActivity = myShouldStartActivity ? MacUtil.wakeUpNeo(toString()) : null;
}
protected void stopSystemActivity() {
MacUtil.matrixHasYou(myMacActivity); MacUtil.matrixHasYou(myMacActivity);
myMacActivity = null; myMacActivity = null;
} }
@@ -97,6 +106,7 @@ public class AbstractProgressIndicatorBase extends UserDataHolderBase implements
@Override @Override
public void cancel() { public void cancel() {
myCanceled = true; myCanceled = true;
stopSystemActivity();
ProgressManager.canceled(this); ProgressManager.canceled(this);
} }
@@ -246,6 +256,7 @@ public class AbstractProgressIndicatorBase extends UserDataHolderBase implements
myFractionStack = new DoubleArrayList(stacked.getFractionStack()); myFractionStack = new DoubleArrayList(stacked.getFractionStack());
} }
myShouldStartActivity = false;
} }
@Override @Override
@@ -394,6 +394,7 @@ public class ProgressWindow extends ProgressIndicatorBase implements BlockingPro
@Override @Override
public void dispose() { public void dispose() {
stopSystemActivity();
} }
@Override @Override