fun dispatchKeyPress()

in platf-w3c/src/jsMain/kotlin/org/jetbrains/letsPlot/platf/w3c/mapping/dom/DomEventUtil.kt [37:63]


    fun dispatchKeyPress(e: KeyboardEvent, handler: (KeyEvent) -> Unit): Boolean {
        val event = toKeyEvent(e)
        handler(event)

        //disable back button
        if (event.key === Key.BACKSPACE) return false

        //disable navigation keys to prevent browser scrolling
        if (event.key === Key.UP || event.key === Key.DOWN || event.key === Key.LEFT || event.key === Key.RIGHT) return false

        //disable space scrolling in case of unhandled space
        if (event.key === Key.SPACE) return false

        //disable shift+arrow selection
        if (event.`is`(KeyStrokeSpecs.SELECT_LEFT) || event.`is`(KeyStrokeSpecs.SELECT_UP)
            || event.`is`(KeyStrokeSpecs.SELECT_RIGHT) || event.`is`(KeyStrokeSpecs.SELECT_DOWN)
        ) {
            return false
        }

        //disable back forward with Ctrl/Cmd + [ / ]
        if (event.`is`(KeyStrokeSpecs.MATCHING_CONSTRUCTS)) return false

        //disable tab navigation
        return if (event.`is`(Key.TAB) || event.`is`(Key.TAB, ModifierKey.SHIFT)) false else !event.isConsumed

    }