public static boolean isTooltipRequest(KeyEvent keyEvent) { if (ourTooltipKeysProperty == null) { ourTooltipKeysProperty = Registry.get("ide.forcedShowTooltip"); ourTooltipKeysProperty.addListener( new RegistryValueListener.Adapter() { @Override public void afterValueChanged(RegistryValue value) { updateTooltipRequestKey(value); } }, Disposer.get("ui")); updateTooltipRequestKey(ourTooltipKeysProperty); } if (keyEvent.getID() != KeyEvent.KEY_PRESSED) return false; for (Integer each : ourTooltipKeys) { if ((keyEvent.getModifiers() & each.intValue()) == 0) return false; } for (Integer each : ourOtherTooltipKeys) { if ((keyEvent.getModifiers() & each.intValue()) > 0) return false; } final int code = keyEvent.getKeyCode(); return code == KeyEvent.VK_META || code == KeyEvent.VK_CONTROL || code == KeyEvent.VK_SHIFT || code == KeyEvent.VK_ALT; }