mirror of
https://github.com/chylex/IntelliJ-Pin-Undocked-Tool-Windows.git
synced 2025-05-11 06:34:04 +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 {
|
||||
version.set("2023.1")
|
||||
version.set("2024.2")
|
||||
updateSinceUntilBuild.set(false)
|
||||
}
|
||||
|
||||
|
@ -1,15 +1,20 @@
|
||||
package com.chylex.intellij.pinundockedtoolwindows.patch
|
||||
|
||||
import com.intellij.openapi.actionSystem.AnActionHolder
|
||||
import com.intellij.openapi.application.ApplicationManager
|
||||
import java.awt.AWTEvent
|
||||
import java.awt.event.AWTEventListener
|
||||
import java.awt.event.MouseEvent
|
||||
import java.util.Timer
|
||||
import java.util.concurrent.atomic.AtomicInteger
|
||||
import javax.swing.AbstractButton
|
||||
import kotlin.concurrent.schedule
|
||||
|
||||
object AwtClickListener : AWTEventListener {
|
||||
var wasPressingButton = false
|
||||
private set
|
||||
private val timer = Timer("Pin Undocked Tool Windows Click Timer", true)
|
||||
private val pressingButtonCounter = AtomicInteger(0)
|
||||
|
||||
val wasPressingButton
|
||||
get() = pressingButtonCounter.get() > 0
|
||||
|
||||
override fun eventDispatched(event: AWTEvent?) {
|
||||
if (event !is MouseEvent || event.id != MouseEvent.MOUSE_RELEASED) {
|
||||
@ -18,8 +23,8 @@ object AwtClickListener : AWTEventListener {
|
||||
|
||||
val source = event.source
|
||||
if (source is AbstractButton || source is AnActionHolder) {
|
||||
wasPressingButton = true
|
||||
ApplicationManager.getApplication().invokeLater { wasPressingButton = false }
|
||||
pressingButtonCounter.incrementAndGet()
|
||||
timer.schedule(200L) { pressingButtonCounter.decrementAndGet() }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user