void (@NotNull UserDataHolder holder, boolean value) { ThreadingAssertions.assertEventDispatchThread(); Integer userData = holder.getUserData(MOUSE_TRACKING_DISABLED_COUNT); int count = (userData == null ? 0 : userData) + (value ? 1 : -1); if (count < 0) { LOG.warn(new IllegalStateException("Editor mouse hover popups weren't disabled previously")); count = 0; } holder.putUserData(MOUSE_TRACKING_DISABLED_COUNT, count == 0 ? null : count); if ((userData == null) != (count == 0)) { EditorMouseHoverPopupControl instance = getInstance(); if (instance != null) { instance.listeners.forEach(Runnable::run); } } }