mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
if doWhenFocusSettlesDown can run immediately, execute just the given request
don't run everything else that's queued, because it might lead to unexpected actions being performed in wrong contexts (e.g. EA-97139 - assert: NoSwingUnderWriteAction.a)
This commit is contained in:
@@ -468,13 +468,14 @@ public class FocusManagerImpl extends IdeFocusManager implements Disposable {
|
||||
|
||||
@Override
|
||||
public void doWhenFocusSettlesDown(@NotNull final Runnable runnable) {
|
||||
boolean invokedOnEdt = ApplicationManager.getApplication().isDispatchThread();
|
||||
UIUtil.invokeLaterIfNeeded(() -> {
|
||||
if (isFlushingIdleRequests()) {
|
||||
myIdleRequests.add(runnable);
|
||||
return;
|
||||
}
|
||||
|
||||
if (myRunContext != null) {
|
||||
if (myRunContext != null || invokedOnEdt && canFlushIdleRequests()) {
|
||||
flushRequest(runnable);
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user