extends Node # Time to wait before seeing preview (in seconds) @export var time_to_preview : float = 0.3 @export var preview_indicator : Control @export var preview_popup : Popup @export var preview_rect : Control @onready var mouse_in : bool = false @onready var time_in : float = 0. func _ready() -> void: preview_indicator.mouse_entered.connect(func () -> void: mouse_in = true; time_in = 0.) preview_indicator.mouse_exited.connect(func() -> void: mouse_in = false; preview_popup.hide()) preview_rect.draw.connect(_on_preview_draw) func _on_preview_draw() -> void: pass # Draw your custom tooltip here. func _process(delta : float) -> void: if mouse_in: time_in += delta if time_in > time_to_preview: preview_popup.position = get_viewport().get_mouse_position() # COMPUTE TOOLTIP SIZE HERE and not in the Drawing function preview_popup.show() mouse_in = false
or share this direct link: