X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Feditor_regions.cc;h=bf13bd5a6596d496a04a199edc2afd5b303a0ec0;hb=b49e3982502f5e483422960dc11be967d7c790f4;hp=8561fbbfb53f99e7274e90408441a889ff5e13f1;hpb=5249f826035c35ae3ea75cbbd2457a0d8a510a79;p=ardour.git diff --git a/gtk2_ardour/editor_regions.cc b/gtk2_ardour/editor_regions.cc index 8561fbbfb5..bf13bd5a65 100644 --- a/gtk2_ardour/editor_regions.cc +++ b/gtk2_ardour/editor_regions.cc @@ -551,6 +551,7 @@ EditorRegions::selection_changed () for (TreeView::Selection::ListHandle_Path::iterator i = rows.begin(); i != rows.end(); ++i) { if ((iter = _model->get_iter (*i))) { + boost::shared_ptr region = (*iter)[_columns.region]; // they could have clicked on a row that is just a placeholder, like "Hidden" @@ -559,18 +560,12 @@ EditorRegions::selection_changed () if (region) { - if (region->automatic()) { - - _display.get_selection()->unselect(*i); - - } else { - _change_connection.block (true); - _editor->set_selected_regionview_from_region_list (region, Selection::Add); - - _change_connection.block (false); - } + _change_connection.block (true); + _editor->set_selected_regionview_from_region_list (region, Selection::Add); + _change_connection.block (false); } } + } } else { _editor->get_selection().clear_regions (); @@ -1120,7 +1115,7 @@ EditorRegions::sorter (TreeModel::iterator a, TreeModel::iterator b) switch (_sort_type) { case ByName: - cmp = strcasecmp (region1->name().c_str(), region2->name().c_str()); + cmp = region1->name().compare(region2->name()); break; case ByLength: @@ -1145,7 +1140,7 @@ EditorRegions::sorter (TreeModel::iterator a, TreeModel::iterator b) break; case BySourceFileName: - cmp = strcasecmp (region1->source()->name().c_str(), region2->source()->name().c_str()); + cmp = region1->source()->name().compare(region2->source()->name()); break; case BySourceFileLength: @@ -1158,9 +1153,9 @@ EditorRegions::sorter (TreeModel::iterator a, TreeModel::iterator b) case BySourceFileFS: if (region1->source()->name() == region2->source()->name()) { - cmp = strcasecmp (region1->name().c_str(), region2->name().c_str()); + cmp = region1->name().compare(region2->name()); } else { - cmp = strcasecmp (region1->source()->name().c_str(), region2->source()->name().c_str()); + cmp = region1->source()->name().compare(region2->source()->name()); } break; } @@ -1238,7 +1233,9 @@ EditorRegions::drag_data_received (const RefPtr& context, if (_editor->convert_drop_to_paths (paths, context, x, y, data, info, time) == 0) { framepos_t pos = 0; - if (Profile->get_sae() || Config->get_only_copy_imported_files()) { + bool copy = ((context->get_actions() & (Gdk::ACTION_COPY | Gdk::ACTION_LINK | Gdk::ACTION_MOVE)) == Gdk::ACTION_COPY); + + if (Profile->get_sae() || Config->get_only_copy_imported_files() || copy) { _editor->do_import (paths, Editing::ImportDistinctFiles, Editing::ImportAsRegion, SrcBest, pos); } else { _editor->do_embed (paths, Editing::ImportDistinctFiles, ImportAsRegion, pos); @@ -1300,7 +1297,7 @@ EditorRegions::name_edit (const std::string& path, const std::string& new_text) if (region) { vector equivalents; - _editor->get_regions_corresponding_to (region, equivalents); + _editor->get_regions_corresponding_to (region, equivalents, false); for (vector::iterator i = equivalents.begin(); i != equivalents.end(); ++i) { if (new_text != (*i)->region()->name()) {