mirror of
https://github.com/chylex/IntelliJ-Pin-Undocked-Tool-Windows.git
synced 2025-05-24 15:34:08 +02:00
Add delay after registering a click to support some changes in 2024.2
This commit is contained in:
parent
8c4d47fab8
commit
34292c4066
@ -15,7 +15,7 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
intellij {
|
intellij {
|
||||||
version.set("2023.1")
|
version.set("2024.2")
|
||||||
updateSinceUntilBuild.set(false)
|
updateSinceUntilBuild.set(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,15 +1,20 @@
|
|||||||
package com.chylex.intellij.pinundockedtoolwindows.patch
|
package com.chylex.intellij.pinundockedtoolwindows.patch
|
||||||
|
|
||||||
import com.intellij.openapi.actionSystem.AnActionHolder
|
import com.intellij.openapi.actionSystem.AnActionHolder
|
||||||
import com.intellij.openapi.application.ApplicationManager
|
|
||||||
import java.awt.AWTEvent
|
import java.awt.AWTEvent
|
||||||
import java.awt.event.AWTEventListener
|
import java.awt.event.AWTEventListener
|
||||||
import java.awt.event.MouseEvent
|
import java.awt.event.MouseEvent
|
||||||
|
import java.util.Timer
|
||||||
|
import java.util.concurrent.atomic.AtomicInteger
|
||||||
import javax.swing.AbstractButton
|
import javax.swing.AbstractButton
|
||||||
|
import kotlin.concurrent.schedule
|
||||||
|
|
||||||
object AwtClickListener : AWTEventListener {
|
object AwtClickListener : AWTEventListener {
|
||||||
var wasPressingButton = false
|
private val timer = Timer("Pin Undocked Tool Windows Click Timer", true)
|
||||||
private set
|
private val pressingButtonCounter = AtomicInteger(0)
|
||||||
|
|
||||||
|
val wasPressingButton
|
||||||
|
get() = pressingButtonCounter.get() > 0
|
||||||
|
|
||||||
override fun eventDispatched(event: AWTEvent?) {
|
override fun eventDispatched(event: AWTEvent?) {
|
||||||
if (event !is MouseEvent || event.id != MouseEvent.MOUSE_RELEASED) {
|
if (event !is MouseEvent || event.id != MouseEvent.MOUSE_RELEASED) {
|
||||||
@ -18,8 +23,8 @@ object AwtClickListener : AWTEventListener {
|
|||||||
|
|
||||||
val source = event.source
|
val source = event.source
|
||||||
if (source is AbstractButton || source is AnActionHolder) {
|
if (source is AbstractButton || source is AnActionHolder) {
|
||||||
wasPressingButton = true
|
pressingButtonCounter.incrementAndGet()
|
||||||
ApplicationManager.getApplication().invokeLater { wasPressingButton = false }
|
timer.schedule(200L) { pressingButtonCounter.decrementAndGet() }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user