Merge pull request #4 from weeniemount/main

feat: make it so pressing the scroll wheel on a tab closes it
This commit is contained in:
Face
2025-09-25 19:40:11 +03:00
committed by GitHub
2 changed files with 25 additions and 4 deletions

View File

@@ -60,6 +60,25 @@ func _process(_delta):
else:
close_button.add_theme_stylebox_override("normal", CLOSE_BUTTON_NORMAL)
func _input(event):
# make sure we are hovering over the tab
if mouse_over_tab and event.is_action_pressed("CloseTabMouse"):
var close_tween = create_tween()
close_tween.set_ease(Tween.EASE_IN)
close_tween.set_trans(Tween.TRANS_CUBIC)
animate_tab_close(close_tween)
await close_tween.finished
tab_closed.emit()
queue_free()
func animate_tab_close(tween: Tween) -> void:
tween.parallel().tween_property(self, "custom_minimum_size:x", 0.0, 0.15)
tween.parallel().tween_property(self, "size:x", 0.0, 0.15)
tween.parallel().tween_property(button, "custom_minimum_size:x", 0.0, 0.15)
tween.parallel().tween_property(button, "size:x", 0.0, 0.15)
func set_title(title: String) -> void:
button.text = title
button.set_meta("original_text", title)
@@ -231,10 +250,7 @@ func _on_close_button_pressed() -> void:
close_tween.set_ease(Tween.EASE_IN)
close_tween.set_trans(Tween.TRANS_CUBIC)
close_tween.parallel().tween_property(self, "custom_minimum_size:x", 0.0, 0.15)
close_tween.parallel().tween_property(self, "size:x", 0.0, 0.15)
close_tween.parallel().tween_property(button, "custom_minimum_size:x", 0.0, 0.15)
close_tween.parallel().tween_property(button, "size:x", 0.0, 0.15)
animate_tab_close(close_tween)
await close_tween.finished
tab_closed.emit()

View File

@@ -85,3 +85,8 @@ ReloadPage={
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":true,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":82,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
CloseTabMouse={
"deadzone": 0.2,
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":4,"position":Vector2(134, 20),"global_position":Vector2(143, 68),"factor":1.0,"button_index":3,"canceled":false,"pressed":true,"double_click":false,"script":null)
]
}