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:
@@ -60,6 +60,25 @@ func _process(_delta):
|
|||||||
else:
|
else:
|
||||||
close_button.add_theme_stylebox_override("normal", CLOSE_BUTTON_NORMAL)
|
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:
|
func set_title(title: String) -> void:
|
||||||
button.text = title
|
button.text = title
|
||||||
button.set_meta("original_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_ease(Tween.EASE_IN)
|
||||||
close_tween.set_trans(Tween.TRANS_CUBIC)
|
close_tween.set_trans(Tween.TRANS_CUBIC)
|
||||||
|
|
||||||
close_tween.parallel().tween_property(self, "custom_minimum_size:x", 0.0, 0.15)
|
animate_tab_close(close_tween)
|
||||||
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)
|
|
||||||
|
|
||||||
await close_tween.finished
|
await close_tween.finished
|
||||||
tab_closed.emit()
|
tab_closed.emit()
|
||||||
|
|||||||
@@ -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)
|
"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)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user