From a7e415974aff9717258a5720977a1efb303327aa Mon Sep 17 00:00:00 2001 From: apricot2012 Date: Thu, 25 Mar 2021 02:29:25 -0700 Subject: [PATCH] Fix Issue with Shift Selecting Across Staffs Assert enforces ending staffidx to be higher than starting staffidx. This code reverses the two indexes if they don't satisfy idx2 >= idx1. --- src/libmscore/score.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/libmscore/score.cpp b/src/libmscore/score.cpp index 6d4e611041..10a2f20d84 100644 --- a/src/libmscore/score.cpp +++ b/src/libmscore/score.cpp @@ -3407,6 +3407,12 @@ void Score::selectRange(Element* e, int staffIdx) if (selectedElement && e->type() == selectedElement->type()) { int idx1 = selectedElement->staffIdx(); int idx2 = e->staffIdx(); + if (idx2 < idx1) { + int temp = idx1; + idx1 = idx2; + idx2 = temp; + } + if (idx1 >= 0 && idx2 >= 0) { Fraction t1 = selectedElement->tick(); Fraction t2 = e->tick();