signal mouse_exited doesn't emit while mouse button_down

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By slacke

I want a button that have interaction like this

Button down > Button up > Do something
Button down > Move outside button area > Button up > Doesn’t do anything

so i create a code

extends TextureButton

var hovering = false
var exited = false

func _ready():
	self.connect("button_down", self, "Button_Down")
	self.connect("button_up", self, "Button_Up")
	self.connect("mouse_entered", self, "Mouse_Entered")
	self.connect("mouse_exited", self, "Mouse_Exited")
func Mouse_Entered():
	print("mouse enter")

func Mouse_Exited():
	hovering = false
	exited = true
	print("mouse exit")

func Button_Down():
	exited = false
	print("down")

func Button_Up():
	if not exited:
		print("up")
        #do something
		Interact()

func Interact():
	print("Interact")

when I
Button down > Move out > Button up
the result is:

down
up
interact
exit

Interact() still trigger
seem like mouse_exited doesn’t trigger when mouse button down

is there anyway to fix this ?