return peekEvent(FocusEvent.FOCUS_GAINED) != null || peekEvent(FocusEvent.FOCUS_LOST) != null;
}
- public boolean isReady() {
+ private boolean isReady() {
return !myKeyboardBusy && myKeyEventDispatcher.isReady();
}
myFirstKeyStroke=null;
setState(KeyState.STATE_INIT);
Project project = PlatformDataKeys.PROJECT.getData(myContext.getDataContext());
- WindowManager.getInstance().getStatusBar(project).setInfo(null);
+ StatusBar bar = WindowManager.getInstance().getStatusBar(project);
+ if (bar != null) {
+ bar.setInfo(null);
+ }
return false;
}
Project project = PlatformDataKeys.PROJECT.getData(myContext.getDataContext());
StatusBarEx statusBar = (StatusBarEx) WindowManager.getInstance().getStatusBar(project);
if (processAction(e, myActionProcessor)) {
- statusBar.setInfo(null);
+ if (statusBar != null) {
+ statusBar.setInfo(null);
+ }
return true;
} else {
return false;
message.append(")");
}
- WindowManager.getInstance().getStatusBar(project).setInfo(message.toString());
+ StatusBar bar = WindowManager.getInstance().getStatusBar(project);
+ if (bar != null) {
+ bar.setInfo(message.toString());
+ }
mySecondStrokeTimeout.cancelAllRequests();
mySecondStrokeTimeout.addRequest(mySecondStrokeTimeoutRunnable, Registry.intValue("actionSystem.secondKeystrokeTimout"));
private final Set<Runnable> myIdleRequests = new com.intellij.util.containers.HashSet<Runnable>();
private final EdtRunnable myIdleRunnable = new EdtRunnable() {
public void runEdt() {
- if (isFocusTransferReady() && !isIdleQueueEmpty() && IdeEventQueue.getInstance().isReady()) {
+ if (isFocusTransferReady() && !isIdleQueueEmpty()) {
flushIdleRequests();
}
else {
myFlushingIdleRequestsEntryCount++;
final KeyEvent[] events = myToDispatchOnDone.toArray(new KeyEvent[myToDispatchOnDone.size()]);
- IdeEventQueue.getInstance().getKeyEventDispatcher().resetState();
+ if (events.length > 0) {
+ IdeEventQueue.getInstance().getKeyEventDispatcher().resetState();
+ }
boolean keyWasPressed = false;
fileIndex.background.description=Build/update file indices in background
fileIndex.background.restartRequired=true
-actionSystem.fixLostTyping=false
+actionSystem.fixLostTyping=true
actionSystem.fixLostTyping.description=Redispatch events, lost between actions and dialog show/close
actionSystem.fixStickyFocusedWindows=true
actionSystem.fixNullFocusedComponent=true