In v.2.x I could enable/disable touch detection by using CCLayer::setTouchEnabled method.
In v.3 I can’t do that.
I found protected method EventListener::setPaused and made it public. But it appears that Cocos2d-x can change the ‘paused’-flag by itself in EventDispatcher::pauseEventListenersForTarget/resumeEventListenersForTarget.
So I have a proposition: make a public EventListener::setEnabled method which will enable/disable an EventListener. EventListener should work if (!_paused && _enabled) is true.