fix: Linux moving window jitter

This commit is contained in:
hstyi
2025-04-14 13:22:01 +08:00
committed by hstyi
parent e1c4e9312d
commit deb2a0151e

View File

@@ -63,10 +63,9 @@ class TermoraFrame : JFrame(), DataProvider {
} }
override fun mouseDragged(e: MouseEvent) { override fun mouseDragged(e: MouseEvent) {
val mouseLayer = getMouseLayer() ?: return
getMouseMotionListener()?.mouseDragged( getMouseMotionListener()?.mouseDragged(
MouseEvent( MouseEvent(
mouseLayer, e.component,
e.id, e.id,
e.`when`, e.`when`,
e.modifiersEx, e.modifiersEx,
@@ -87,13 +86,6 @@ class TermoraFrame : JFrame(), DataProvider {
return getHandler() as? MouseMotionListener return getHandler() as? MouseMotionListener
} }
private fun getMouseLayer(): JComponent? {
val titlePane = getTitlePane() ?: return null
val handlerField = titlePane.javaClass.getDeclaredField("mouseLayer") ?: return null
handlerField.isAccessible = true
return handlerField.get(titlePane) as? JComponent
}
private fun getHandler(): Any? { private fun getHandler(): Any? {
val titlePane = getTitlePane() ?: return null val titlePane = getTitlePane() ?: return null
val handlerField = titlePane.javaClass.getDeclaredField("handler") ?: return null val handlerField = titlePane.javaClass.getDeclaredField("handler") ?: return null