diff --git a/addons/resources_spreadsheet_view/editor_view.tscn b/addons/resources_spreadsheet_view/editor_view.tscn index fc1c6ce..a5623d9 100644 --- a/addons/resources_spreadsheet_view/editor_view.tscn +++ b/addons/resources_spreadsheet_view/editor_view.tscn @@ -419,6 +419,7 @@ layout_mode = 2 [node name="Control" type="Control" parent="."] layout_mode = 2 mouse_filter = 2 +metadata/_edit_lock_ = true [node name="FileDialog" type="FileDialog" parent="Control"] title = "Open" @@ -516,6 +517,7 @@ mouse_filter = 2 script = ExtResource("15_mx6qn") cell_editor_classes = Array[Script]([ExtResource("16_p7n52"), ExtResource("17_sofdw"), ExtResource("18_oeewr"), ExtResource("19_7x44x"), ExtResource("20_swsbn"), ExtResource("21_58wf8"), ExtResource("22_bni8r")]) node_property_editors = NodePath("../HeaderContentSplit/MarginContainer/FooterContentSplit/Footer/PropertyEditors") +metadata/_edit_lock_ = true [connection signal="grid_updated" from="." to="HeaderContentSplit/VBoxContainer/HBoxContainer3/Pages" method="_on_grid_updated"] [connection signal="gui_input" from="." to="InputHandler" method="_gui_input"] diff --git a/addons/resources_spreadsheet_view/main_screen/input_handler.gd b/addons/resources_spreadsheet_view/main_screen/input_handler.gd index 9d170c7..a32dfea 100644 --- a/addons/resources_spreadsheet_view/main_screen/input_handler.gd +++ b/addons/resources_spreadsheet_view/main_screen/input_handler.gd @@ -164,12 +164,16 @@ func _key_specific_action(event : InputEvent): func _move_selection_on_grid(move_h : int, move_v : int): var selected_cells := selection.edited_cells.duplicate() + var child_count := editor_view.node_table_root.get_child_count() + var new_child_index := 0 for i in selected_cells.size(): - selected_cells[i] = editor_view.node_table_root.get_child( + new_child_index = ( selected_cells[i].get_index() + move_h + move_v * editor_view.columns.size() ) + if child_count < new_child_index: continue + selected_cells[i] = editor_view.node_table_root.get_child(new_child_index) editor_view.grab_focus() selection.deselect_all_cells() diff --git a/addons/resources_spreadsheet_view/main_screen/selection_manager.gd b/addons/resources_spreadsheet_view/main_screen/selection_manager.gd index 5f82d90..203ebd3 100644 --- a/addons/resources_spreadsheet_view/main_screen/selection_manager.gd +++ b/addons/resources_spreadsheet_view/main_screen/selection_manager.gd @@ -43,6 +43,9 @@ func _draw(): var font_size := get_theme_font_size("font", "Label") var label_padding_left := 2.0 var newline_char := 10 + if edit_cursor_positions.size() != edited_cells.size(): + return + for i in edited_cells.size(): if edit_cursor_positions[i] >= edited_cells_text[i].length(): continue