mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
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:
+12
-1
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user