summaryrefslogtreecommitdiff
path: root/editor/plugins
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <remi@verschelde.fr>2022-02-16 10:03:24 +0100
committerGitHub <noreply@github.com>2022-02-16 10:03:24 +0100
commit3881bc6ca18763d9b5bd6a04a41e90e41517fce0 (patch)
treed3e3763656b94522b35ddfaeedb49e5e0acf7f1c /editor/plugins
parenta2e540f6172b53540386c1461fce368a8164ac49 (diff)
parent547786650fb22ce75302f68b5bc07128c8e5cf06 (diff)
Merge pull request #58159 from KoBeWi/source_jumper
Diffstat (limited to 'editor/plugins')
-rw-r--r--editor/plugins/tiles/tile_map_editor.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/editor/plugins/tiles/tile_map_editor.cpp b/editor/plugins/tiles/tile_map_editor.cpp
index 5e316bc7f0..1cd9a17cd1 100644
--- a/editor/plugins/tiles/tile_map_editor.cpp
+++ b/editor/plugins/tiles/tile_map_editor.cpp
@@ -1328,15 +1328,30 @@ void TileMapEditorTilesPlugin::_stop_dragging() {
Rect2i rect = Rect2i(tile_map->world_to_map(drag_start_mouse_pos), tile_map->world_to_map(mpos) - tile_map->world_to_map(drag_start_mouse_pos)).abs();
rect.size += Vector2i(1, 1);
+ int picked_source = -1;
TypedArray<Vector2i> coords_array;
for (int x = rect.position.x; x < rect.get_end().x; x++) {
for (int y = rect.position.y; y < rect.get_end().y; y++) {
Vector2i coords = Vector2i(x, y);
- if (tile_map->get_cell_source_id(tile_map_layer, coords) != TileSet::INVALID_SOURCE) {
+
+ int source = tile_map->get_cell_source_id(tile_map_layer, coords);
+ if (source != TileSet::INVALID_SOURCE) {
coords_array.push_back(coords);
+ if (picked_source == -1) {
+ picked_source = source;
+ } else if (picked_source != source) {
+ picked_source = -2;
+ }
}
}
}
+
+ if (picked_source >= 0) {
+ sources_list->set_current(picked_source);
+ sources_list->ensure_current_is_visible();
+ TilesEditorPlugin::get_singleton()->set_sources_lists_current(picked_source);
+ }
+
Ref<TileMapPattern> new_selection_pattern = tile_map->get_pattern(tile_map_layer, coords_array);
if (!new_selection_pattern->is_empty()) {
selection_pattern = new_selection_pattern;