From dcabe83f6d6cb169eba6440018f8b780bbf3d80f Mon Sep 17 00:00:00 2001 From: Art Pinch Date: Wed, 2 Mar 2022 15:31:55 +0300 Subject: [PATCH] PRJ-58 Fix Markdown and JCEF client components couldn't be shrunk --- .../client/web/component/ClientComponent.kt | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/projector-client-web/src/main/kotlin/org/jetbrains/projector/client/web/component/ClientComponent.kt b/projector-client-web/src/main/kotlin/org/jetbrains/projector/client/web/component/ClientComponent.kt index 06319a0c3..df88984af 100644 --- a/projector-client-web/src/main/kotlin/org/jetbrains/projector/client/web/component/ClientComponent.kt +++ b/projector-client-web/src/main/kotlin/org/jetbrains/projector/client/web/component/ClientComponent.kt @@ -25,16 +25,20 @@ package org.jetbrains.projector.client.web.component import kotlinx.browser.document import org.w3c.dom.HTMLIFrameElement +import org.w3c.dom.events.EventListener abstract class ClientComponent( protected val id: Int, ) { + private val documentListeners = mutableMapOf() + val iFrame: HTMLIFrameElement = createIFrame(id) var windowId: Int? = null fun dispose() { + documentListeners.forEach { document.removeEventListener(it.key, it.value) } iFrame.remove() } @@ -60,6 +64,15 @@ abstract class ClientComponent( } contentDocument!!.oncontextmenu = { false } + + documentListeners["mousedown"] = EventListener { + style.asDynamic().pointerEvents = "none" + } + documentListeners["mouseup"] = EventListener { + style.asDynamic().pointerEvents = "auto" + } + + documentListeners.forEach { document.addEventListener(it.key, it.value) } } protected fun setLinkProcessor(linkProcessor: (String) -> Unit) {