mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
goto popup calculations should be cancellable even after Ctrl+Space (IDEA-123714 ?)
This commit is contained in:
@@ -184,7 +184,7 @@ class Intf {
|
||||
List<Object> elements = ['empty']
|
||||
def semaphore = new Semaphore()
|
||||
semaphore.down()
|
||||
popup.scheduleCalcElements(text, false, false, ModalityState.NON_MODAL, { set ->
|
||||
popup.scheduleCalcElements(text, false, ModalityState.NON_MODAL, { set ->
|
||||
elements = set as List
|
||||
semaphore.up()
|
||||
} as Consumer<Set<?>>)
|
||||
|
||||
@@ -949,7 +949,7 @@ public abstract class ChooseByNameBase {
|
||||
final Runnable request = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
scheduleCalcElements(text, myCheckBox.isSelected(), postRunnable == null, modalityState, new Consumer<Set<?>>() {
|
||||
scheduleCalcElements(text, myCheckBox.isSelected(), modalityState, new Consumer<Set<?>>() {
|
||||
@Override
|
||||
public void consume(Set<?> elements) {
|
||||
synchronized (myRebuildMutex) {
|
||||
@@ -986,10 +986,9 @@ public abstract class ChooseByNameBase {
|
||||
|
||||
public void scheduleCalcElements(String text,
|
||||
boolean checkboxState,
|
||||
boolean canCancel,
|
||||
ModalityState modalityState,
|
||||
Consumer<Set<?>> callback) {
|
||||
scheduleCalcElements(new CalcElementsThread(text, checkboxState, callback, modalityState, canCancel, false));
|
||||
scheduleCalcElements(new CalcElementsThread(text, checkboxState, callback, modalityState, false));
|
||||
}
|
||||
|
||||
private void scheduleCalcElements(final CalcElementsThread thread) {
|
||||
@@ -1471,25 +1470,23 @@ public abstract class ChooseByNameBase {
|
||||
private final ModalityState myModalityState;
|
||||
|
||||
private final ProgressIndicator myCancelled = new ProgressIndicatorBase();
|
||||
private final boolean myCanCancel;
|
||||
|
||||
CalcElementsThread(String pattern,
|
||||
boolean checkboxState,
|
||||
Consumer<Set<?>> callback,
|
||||
@NotNull ModalityState modalityState,
|
||||
boolean canCancel, boolean scopeExpanded) {
|
||||
boolean scopeExpanded) {
|
||||
myPattern = pattern;
|
||||
myCheckboxState = checkboxState;
|
||||
myCallback = callback;
|
||||
myModalityState = modalityState;
|
||||
myCanCancel = canCancel;
|
||||
myScopeExpanded = scopeExpanded;
|
||||
}
|
||||
|
||||
private final Alarm myShowCardAlarm = new Alarm();
|
||||
|
||||
private void scheduleRestart() {
|
||||
scheduleCalcElements(new CalcElementsThread(myPattern, myCheckboxState, myCallback, myModalityState, myCanCancel, myScopeExpanded));
|
||||
scheduleCalcElements(new CalcElementsThread(myPattern, myCheckboxState, myCallback, myModalityState, myScopeExpanded));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1608,9 +1605,7 @@ public abstract class ChooseByNameBase {
|
||||
}
|
||||
|
||||
private void cancel() {
|
||||
if (myCanCancel) {
|
||||
myCancelled.cancel();
|
||||
}
|
||||
myCancelled.cancel();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1703,7 +1698,7 @@ public abstract class ChooseByNameBase {
|
||||
@Override
|
||||
public void run() {
|
||||
final boolean[] overFlow = {false};
|
||||
myCalcElementsThread = new CalcElementsThread(text, everywhere, null, ModalityState.NON_MODAL, true, false) {
|
||||
myCalcElementsThread = new CalcElementsThread(text, everywhere, null, ModalityState.NON_MODAL, false) {
|
||||
private final AtomicBoolean userAskedToAbort = new AtomicBoolean();
|
||||
@Override
|
||||
protected boolean isOverflow(@NotNull Set<Object> elementsArray) {
|
||||
|
||||
Reference in New Issue
Block a user