boolean (int mask, boolean onlyOne, boolean editorChanged) { EDT.assertIsEdt(); boolean result = false; HintManagerImpl.HintInfo[] arr = myHintsStack.toArray(new HintManagerImpl.HintInfo[0]); for (int i = arr.length - 1; i > -1; i--) { HintManagerImpl.HintInfo info = arr[i]; if (!info.hint().isVisible() && !info.hint().vetoesHiding()) { myHintsStack.remove(info); info.hint().hide(); continue; } if ((info.flags() & mask) != 0 || editorChanged && !info.reviveOnEditorChange()) { myHintsStack.remove(info); info.hint().hide(); if ((mask & HintManager.HIDE_BY_ESCAPE) == 0 || (info.flags() & HintManager.DONT_CONSUME_ESCAPE) == 0) { result = true; if (onlyOne) { break; } } } } if (myHintsStack.isEmpty()) { updateLastEditor(null); } return result; }