1
0
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:
chylex 2024-08-11 10:49:28 +02:00
parent 8c4d47fab8
commit 34292c4066
Signed by: chylex
GPG Key ID: 4DE42C8F19A80548
2 changed files with 11 additions and 6 deletions
build.gradle.kts
src/main/kotlin/com/chylex/intellij/pinundockedtoolwindows/patch

View File

@ -15,7 +15,7 @@ repositories {
}
intellij {
version.set("2023.1")
version.set("2024.2")
updateSinceUntilBuild.set(false)
}

View File

@ -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() }
}
}
}