mirror of
https://github.com/lihop/godot-xterm.git
synced 2024-11-22 09:40:25 +01:00
Add next/previous tab shortcuts
This commit is contained in:
parent
97e07093b2
commit
de7980c077
5 changed files with 41 additions and 0 deletions
|
@ -68,10 +68,16 @@ func _input(event):
|
||||||
if not has_focus():
|
if not has_focus():
|
||||||
return
|
return
|
||||||
|
|
||||||
|
# Ignore some input that is used by shortcuts.
|
||||||
|
# TODO: Figure out how to handle this properly as the user might set their
|
||||||
|
# own custom shortcuts.
|
||||||
if event is InputEventKey:
|
if event is InputEventKey:
|
||||||
if event.shift:
|
if event.shift:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
if event.control and event.scancode == KEY_PAGEUP or event.scancode == KEY_PAGEDOWN:
|
||||||
|
return
|
||||||
|
|
||||||
# We need to handle many input events otherwise keys such as TAB, ctrl, etc.
|
# We need to handle many input events otherwise keys such as TAB, ctrl, etc.
|
||||||
# will trigger editor shortcuts when using them in the terminal.
|
# will trigger editor shortcuts when using them in the terminal.
|
||||||
if event is InputEventKey:
|
if event is InputEventKey:
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
[gd_resource type="ShortCut" load_steps=2 format=2]
|
||||||
|
|
||||||
|
[sub_resource type="InputEventKey" id=1]
|
||||||
|
control = true
|
||||||
|
command = true
|
||||||
|
pressed = true
|
||||||
|
scancode = 16777235
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
shortcut = SubResource( 1 )
|
|
@ -0,0 +1,10 @@
|
||||||
|
[gd_resource type="ShortCut" load_steps=2 format=2]
|
||||||
|
|
||||||
|
[sub_resource type="InputEventKey" id=1]
|
||||||
|
control = true
|
||||||
|
command = true
|
||||||
|
pressed = true
|
||||||
|
scancode = 16777236
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
shortcut = SubResource( 1 )
|
|
@ -17,6 +17,9 @@ export (ShortCut) var kill_terminal_shortcut = preload("./default_kill_terminal_
|
||||||
export (ShortCut) var copy_shortcut = preload("./default_copy_shortcut.tres")
|
export (ShortCut) var copy_shortcut = preload("./default_copy_shortcut.tres")
|
||||||
export (ShortCut) var paste_shortcut = preload("./default_paste_shortcut.tres")
|
export (ShortCut) var paste_shortcut = preload("./default_paste_shortcut.tres")
|
||||||
|
|
||||||
|
export (ShortCut) var next_tab_shortcut = preload("./default_tab_right_shortcut.tres")
|
||||||
|
export (ShortCut) var previous_tab_shortcut = preload("./default_tab_left_shortcut.tres")
|
||||||
|
|
||||||
### Scroll settings ###
|
### Scroll settings ###
|
||||||
|
|
||||||
# The maximum amount of lines the terminal keeps in its buffer.
|
# The maximum amount of lines the terminal keeps in its buffer.
|
||||||
|
|
|
@ -193,6 +193,18 @@ func _input(event: InputEvent) -> void:
|
||||||
get_tree().set_input_as_handled()
|
get_tree().set_input_as_handled()
|
||||||
_on_TerminalPopupMenu_id_pressed(TerminalPopupMenuOptions.PASTE)
|
_on_TerminalPopupMenu_id_pressed(TerminalPopupMenuOptions.PASTE)
|
||||||
|
|
||||||
|
# Next tab.
|
||||||
|
if _settings.next_tab_shortcut and _settings.next_tab_shortcut.shortcut:
|
||||||
|
if event.shortcut_match(_settings.next_tab_shortcut.shortcut):
|
||||||
|
get_tree().set_input_as_handled()
|
||||||
|
tabs.current_tab = min(tabs.current_tab + 1, tabs.get_tab_count() - 1)
|
||||||
|
|
||||||
|
# Previous tab.
|
||||||
|
if _settings.previous_tab_shortcut and _settings.previous_tab_shortcut.shortcut:
|
||||||
|
if event.shortcut_match(_settings.previous_tab_shortcut.shortcut):
|
||||||
|
get_tree().set_input_as_handled()
|
||||||
|
tabs.current_tab = max(tabs.current_tab - 1, 0)
|
||||||
|
|
||||||
|
|
||||||
func _on_TabContainer_gui_input(event):
|
func _on_TabContainer_gui_input(event):
|
||||||
if event is InputEventMouseButton and event.button_index == BUTTON_RIGHT:
|
if event is InputEventMouseButton and event.button_index == BUTTON_RIGHT:
|
||||||
|
|
Loading…
Reference in a new issue