PY-76779 [Jupyter] Fix switch scroll owner on mouse click

(cherry picked from commit 47cd88d43e3b3ea1caef8be1f92048e875fe44b3)

GitOrigin-RevId: 585900b8c3164e8d9ae6ad5cda19b2ef48e2f6bc
This commit is contained in:
Anton Efimchuk
2024-10-31 14:23:36 +01:00
committed by intellij-monorepo-bot
parent 4cf18ceb87
commit bbec8974b1

View File

@@ -16,6 +16,7 @@ import com.intellij.openapi.editor.ex.util.EditorScrollingPositionKeeper
import com.intellij.openapi.editor.impl.EditorImpl
import com.intellij.openapi.util.Disposer
import com.intellij.openapi.util.use
import com.intellij.ui.ComponentUtil
import java.awt.BorderLayout
import java.awt.Component
import java.awt.GraphicsEnvironment
@@ -24,9 +25,7 @@ import java.awt.event.InputEvent
import java.awt.event.MouseEvent
import java.awt.event.MouseWheelEvent
import java.util.concurrent.atomic.AtomicBoolean
import javax.swing.JPanel
import javax.swing.JViewport
import javax.swing.SwingUtilities
import javax.swing.*
import kotlin.math.max
import kotlin.math.min
@@ -103,7 +102,11 @@ class DecoratedEditor private constructor(
}
else if (event is MouseEvent) {
if (event.id == MouseEvent.MOUSE_CLICKED || event.id == MouseEvent.MOUSE_RELEASED || event.id == MouseEvent.MOUSE_PRESSED) {
nestedScrollingSupport.processMouseEvent(event, editor.scrollPane)
ComponentUtil.getParentOfType(JScrollPane::class.java, (event.component as? JComponent)
?.findComponentAt(event.point))
?.let { scrollPane ->
nestedScrollingSupport.processMouseEvent(event, scrollPane)
}
}
else if (event.id == MouseEvent.MOUSE_MOVED) {
nestedScrollingSupport.processMouseMotionEvent(event)