Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion audio/drivers/alsa.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -727,7 +727,7 @@ bool AlsaAudio::stop()
for (;i < 4; ++i) {
if (runAlsa == 0)
break;
sleep(1);
usleep(100'000);
}
pthread_cancel(thread);
pthread_join(thread, 0);
Expand Down
3 changes: 3 additions & 0 deletions global/settings/types/preferencekeys.h
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,9 @@
#define PREF_UI_APP_USENEWWIZARD "ui/application/useNewWizard"
#define PREF_UI_APP_BUILD_DATE_ISO "ui/application/build/date/isoFormat"
#define PREF_UI_APP_AUTOHIDE_PALETTES "ui/application/palette/applyAutoHides"
#define PREF_UI_APP_FULLSCREEN_HIDES_MENU "ui/application/hideMenuOnFullscreen"
#define PREF_UI_APP_FULLSCREEN_HIDES_TOOLBARS "ui/application/hideToolbarsOnFullscreen"

#define PREF_UI_PIANO_HIGHLIGHTCOLOR "ui/piano/highlightColor"
#define PREF_UI_PIANO_WHITE_KEYS_COLOR "ui/piano/keys/color/white"
#define PREF_UI_PIANO_BLACK_KEYS_COLOR "ui/piano/keys/color/black"
Expand Down
23 changes: 13 additions & 10 deletions libmscore/cmd.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2425,7 +2425,8 @@ bool Score::processMidiInput()
if (!noteEntryMode()
|| entryMethod == NoteEntryMethod::REALTIME_AUTO
|| entryMethod == NoteEntryMethod::REALTIME_MANUAL) {
int staffIdx = selection().staffStart();
ChordRest* cr = selection().cr();
int staffIdx = cr ? cr->staffIdx() : selection().staffStart();
Part* p;
if (staffIdx < 0 || staffIdx >= nstaves())
p = staff(0)->part();
Expand Down Expand Up @@ -3306,16 +3307,18 @@ void Score::cmdIncDecDuration(int nSteps, bool stepDotted)
pasteStaff(e, selection().startSegment(), selection().staffStart(), scale);
return;
}
if (selection().isList() && selection().elements().size() > 1) {

if (selection().isList()) {
// List - act as if pressing duration toggle (distinct from range based Half/Double
TDuration newDuration(stepDotted
? _is.duration().shiftRetainDots(nSteps, stepDotted)
: _is.duration().shift(nSteps));
_is.duration().shiftRetainDots(nSteps, stepDotted);
_is.setDuration(newDuration);
QSet<ChordRest*> crs = getSelectedChordRests();
for (auto cr : getSelectedChordRests()) {
changeCRlen(cr, newDuration);
auto crs = getSelectedChordRests();
for (auto cr : crs) {
TDuration odt = cr->durationType();
TDuration ndt(stepDotted ? odt.shiftRetainDots(nSteps, stepDotted) : odt.shift(nSteps));
bool isGrace = cr->isChord() && toChord(cr)->isGrace();
if (isGrace)
undoChangeChordRestLen(cr, ndt);
else
changeCRlen(cr, ndt);
}
for (auto cr : crs) {
Element* e = cr;
Expand Down
4 changes: 2 additions & 2 deletions libmscore/element.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -668,10 +668,10 @@ QColor Element::curColor(bool isVisible, QColor normalColor) const
auto sp = ss->spanner();
auto t1 = sp->tick();
auto t2 = sp->tick2();
t2 -= Fraction::fromTicks(1);
t2 -= Fraction::fromTicks(isSlurSegment() ? 0 : 1); // let slurs remain highlighted during the final element duration
if (auto playingElement = ss->score()->getLastCRSequenced()) {
auto pos = playingElement->tick();
marked = (pos >= t1 && pos < t2);
marked = (pos >= t1 && pos <= t2);
}
}
else if (isTextBase()) {
Expand Down
8 changes: 6 additions & 2 deletions libmscore/rendermidi.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2072,8 +2072,12 @@ void renderGlissando(NoteEventList* events, Note *notestart)

Trill* findFirstTrill(Chord *chord)
{
auto spanners = chord->score()->spannerMap().findOverlapping(1+chord->tick().ticks(),
chord->tick().ticks() + chord->actualTicks().ticks() - 1);
auto& spannerMap = chord->score()->spannerMap();
auto tick = chord->tick();
auto duration = chord->ticks(); // originally chord->actualTicks();
auto st = 1 + tick.ticks();
auto et = tick.ticks() + duration.ticks() - 1;
auto spanners = spannerMap.findOverlapping(st, et);
for (auto i : spanners) {
if (i.value->type() != ElementType::TRILL)
continue;
Expand Down
Loading
Loading