mirror of
https://github.com/Orama-Interactive/Pixelorama.git
synced 2025-01-18 17:19:50 +00:00
Add hotkeys to switch between tabs (#1109)
* Added hotkey to switch tab * Linting
This commit is contained in:
parent
597db5d44e
commit
564b199fa9
|
@ -888,6 +888,16 @@ gaussian_blur={
|
||||||
"deadzone": 0.5,
|
"deadzone": 0.5,
|
||||||
"events": []
|
"events": []
|
||||||
}
|
}
|
||||||
|
next_project={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"events": [null, 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":4194306,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
previous_project={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":true,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194306,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
[input_devices]
|
[input_devices]
|
||||||
|
|
||||||
|
|
|
@ -787,6 +787,8 @@ func _initialize_keychain() -> void:
|
||||||
&"open_editor_data_folder": Keychain.InputAction.new("", "Help menu", true),
|
&"open_editor_data_folder": Keychain.InputAction.new("", "Help menu", true),
|
||||||
&"changelog": Keychain.InputAction.new("", "Help menu", true),
|
&"changelog": Keychain.InputAction.new("", "Help menu", true),
|
||||||
&"about_pixelorama": Keychain.InputAction.new("", "Help menu", true),
|
&"about_pixelorama": Keychain.InputAction.new("", "Help menu", true),
|
||||||
|
&"previous_project": Keychain.InputAction.new("", "Canvas"),
|
||||||
|
&"next_project": Keychain.InputAction.new("", "Canvas"),
|
||||||
&"zoom_in": Keychain.InputAction.new("", "Canvas"),
|
&"zoom_in": Keychain.InputAction.new("", "Canvas"),
|
||||||
&"zoom_out": Keychain.InputAction.new("", "Canvas"),
|
&"zoom_out": Keychain.InputAction.new("", "Canvas"),
|
||||||
&"camera_left": Keychain.InputAction.new("", "Canvas"),
|
&"camera_left": Keychain.InputAction.new("", "Canvas"),
|
||||||
|
|
|
@ -4,6 +4,35 @@ extends TabBar
|
||||||
var unsaved_changes_dialog: ConfirmationDialog = Global.control.find_child("UnsavedCanvasDialog")
|
var unsaved_changes_dialog: ConfirmationDialog = Global.control.find_child("UnsavedCanvasDialog")
|
||||||
|
|
||||||
|
|
||||||
|
func _input(_event: InputEvent) -> void:
|
||||||
|
# NOTE: This feature has an unavoidable bug which sometimes causes the undoredo
|
||||||
|
# system to fail, because user is trying to draw while switching project simultaneously.
|
||||||
|
# This is because the current project has changed and the system tries to commit to the
|
||||||
|
# wrong undoredo.
|
||||||
|
var tab_idx = current_tab
|
||||||
|
# If a project is currently worked upon, then don't switch it.
|
||||||
|
# This doesn't stop the bug completely but significantly reduces it's chances
|
||||||
|
# of appearing.
|
||||||
|
if (
|
||||||
|
Input.is_action_pressed("activate_left_tool")
|
||||||
|
or Input.is_action_pressed("activate_right_tool")
|
||||||
|
):
|
||||||
|
return
|
||||||
|
# Due to the bug mentioned above, we will use is_action_just_released
|
||||||
|
# instead of is_action_just_pressed. This won't remove the bug completely
|
||||||
|
# but will significantly reduce it's chancce of appearing.
|
||||||
|
if Input.is_action_just_released(&"next_project", true):
|
||||||
|
tab_idx += 1
|
||||||
|
if tab_idx >= tab_count:
|
||||||
|
tab_idx = 0
|
||||||
|
elif Input.is_action_just_released(&"previous_project", true):
|
||||||
|
tab_idx = current_tab - 1
|
||||||
|
if tab_idx < 0:
|
||||||
|
tab_idx -= 1
|
||||||
|
if tab_idx != current_tab:
|
||||||
|
current_tab = tab_idx
|
||||||
|
|
||||||
|
|
||||||
## Handles closing tab with middle-click
|
## Handles closing tab with middle-click
|
||||||
## Thanks to https://github.com/godotengine/godot/issues/64498#issuecomment-1217992089
|
## Thanks to https://github.com/godotengine/godot/issues/64498#issuecomment-1217992089
|
||||||
func _gui_input(event: InputEvent) -> void:
|
func _gui_input(event: InputEvent) -> void:
|
||||||
|
|
Loading…
Reference in a new issue