diff --git a/TODO b/TODO index 822d42567..7b27800f3 100644 --- a/TODO +++ b/TODO @@ -62,6 +62,8 @@ Andrew Kelley's todo: * look through FL Studio's tools and implement some of them - slice tool for piano roll - when a note is played, show the note as being depressed in the piano roll +- don't end mouse selection when control is released +- mouse cursor isn't updated correctly in selection mode (from resizing note edit area) - recording automation - make knobs easier to tune (less sensitive) diff --git a/src/core/track.cpp b/src/core/track.cpp index 084f4a461..6514345f7 100644 --- a/src/core/track.cpp +++ b/src/core/track.cpp @@ -663,7 +663,7 @@ void trackContentObjectView::mouseMoveEvent( QMouseEvent * _me ) m_trackView->getTrackContainerView()->currentPosition()+ static_cast( x * midiTime::ticksPerTact() / ppt ) ); - if( _me->modifiers() & Qt::ControlModifier + if( ! ( _me->modifiers() & Qt::ControlModifier ) && _me->button() == Qt::NoButton ) { t = t.toNearestTact(); @@ -716,7 +716,7 @@ void trackContentObjectView::mouseMoveEvent( QMouseEvent * _me ) midiTime t = qMax( midiTime::ticksPerTact(), static_cast( _me->x() * midiTime::ticksPerTact() / ppt ) ); - if( _me->modifiers() & Qt::ControlModifier + if( ! ( _me->modifiers() & Qt::ControlModifier ) && _me->button() == Qt::NoButton ) { t = t.toNearestTact(); diff --git a/src/gui/widgets/automatable_button.cpp b/src/gui/widgets/automatable_button.cpp index f09c1b874..146493f23 100644 --- a/src/gui/widgets/automatable_button.cpp +++ b/src/gui/widgets/automatable_button.cpp @@ -115,7 +115,7 @@ void automatableButton::contextMenuEvent( QContextMenuEvent * _me ) void automatableButton::mousePressEvent( QMouseEvent * _me ) { if( _me->button() == Qt::LeftButton && - _me->modifiers() & Qt::ControlModifier ) + ! ( _me->modifiers() & Qt::ControlModifier ) ) { if( isCheckable() ) { diff --git a/src/gui/widgets/automatable_slider.cpp b/src/gui/widgets/automatable_slider.cpp index 7c1d6c525..b8e1f1fe9 100644 --- a/src/gui/widgets/automatable_slider.cpp +++ b/src/gui/widgets/automatable_slider.cpp @@ -76,7 +76,7 @@ void automatableSlider::contextMenuEvent( QContextMenuEvent * _me ) void automatableSlider::mousePressEvent( QMouseEvent * _me ) { if( _me->button() == Qt::LeftButton && - _me->modifiers() & Qt::ControlModifier ) + ! ( _me->modifiers() & Qt::ControlModifier ) ) { m_showStatus = TRUE; QSlider::mousePressEvent( _me ); diff --git a/src/gui/widgets/combobox.cpp b/src/gui/widgets/combobox.cpp index c3b722a22..3110acbfb 100644 --- a/src/gui/widgets/combobox.cpp +++ b/src/gui/widgets/combobox.cpp @@ -114,7 +114,7 @@ void comboBox::contextMenuEvent( QContextMenuEvent * _me ) void comboBox::mousePressEvent( QMouseEvent * _me ) { if( _me->button() == Qt::LeftButton && - _me->modifiers() & Qt::ControlModifier ) + ! ( _me->modifiers() & Qt::ControlModifier ) ) { if( _me->x() > width() - CB_ARROW_BTN_WIDTH ) { diff --git a/src/gui/widgets/fader.cpp b/src/gui/widgets/fader.cpp index 161b4af4f..ce52835d3 100644 --- a/src/gui/widgets/fader.cpp +++ b/src/gui/widgets/fader.cpp @@ -112,7 +112,7 @@ void fader::mouseMoveEvent( QMouseEvent *ev ) void fader::mousePressEvent( QMouseEvent * _me ) { if( _me->button() == Qt::LeftButton && - _me->modifiers() & Qt::ControlModifier ) + ! ( _me->modifiers() & Qt::ControlModifier ) ) { mouseMoveEvent( _me ); _me->accept(); diff --git a/src/gui/widgets/knob.cpp b/src/gui/widgets/knob.cpp index 5eaa1c664..eb1c51156 100644 --- a/src/gui/widgets/knob.cpp +++ b/src/gui/widgets/knob.cpp @@ -439,8 +439,8 @@ void knob::dropEvent( QDropEvent * _de ) void knob::mousePressEvent( QMouseEvent * _me ) { if( _me->button() == Qt::LeftButton && - _me->modifiers() & Qt::ControlModifier && - _me->modifiers() & Qt::ShiftModifier ) + ! ( _me->modifiers() & Qt::ControlModifier ) && + ! ( _me->modifiers() & Qt::ShiftModifier ) ) { model()->prepareJournalEntryFromOldVal(); diff --git a/src/gui/widgets/lcd_spinbox.cpp b/src/gui/widgets/lcd_spinbox.cpp index 7125bc8aa..312096d1b 100644 --- a/src/gui/widgets/lcd_spinbox.cpp +++ b/src/gui/widgets/lcd_spinbox.cpp @@ -285,7 +285,7 @@ void lcdSpinBox::contextMenuEvent( QContextMenuEvent * _me ) void lcdSpinBox::mousePressEvent( QMouseEvent * _me ) { if( _me->button() == Qt::LeftButton && - _me->modifiers() & Qt::ControlModifier && + ! ( _me->modifiers() & Qt::ControlModifier ) && _me->y() < m_cellHeight + 2 ) { m_origMousePos = _me->globalPos();