mirror of
https://github.com/CalcProgrammer1/OpenRGB.git
synced 2026-04-03 22:01:20 -04:00
Don't emit selection update on mouse click event to avoid sending unnecessary events, also only send one type of event per mouse release event. Fix LED box not being updated
This commit is contained in:
@@ -640,6 +640,11 @@ void DeviceView::mouseMoveEvent(QMouseEvent *event)
|
||||
| Update selection |
|
||||
\*---------------------------------------------*/
|
||||
UpdateSelection();
|
||||
|
||||
/*---------------------------------------------*\
|
||||
| Send selection changed signal |
|
||||
\*---------------------------------------------*/
|
||||
emit selectionChanged(-1, -1, selected_leds);
|
||||
}
|
||||
|
||||
/*-------------------------------------------------*\
|
||||
@@ -661,6 +666,7 @@ void DeviceView::mouseReleaseEvent(QMouseEvent* event)
|
||||
| selection rect |
|
||||
\*-------------------------------------------------*/
|
||||
mouse_down = false;
|
||||
bool signal_sent = false;
|
||||
selection_rect = selection_rect.normalized();
|
||||
|
||||
/*-------------------------------------------------*\
|
||||
@@ -703,6 +709,8 @@ void DeviceView::mouseReleaseEvent(QMouseEvent* event)
|
||||
if(rect.contains(event->pos()))
|
||||
{
|
||||
SelectZone(zone_idx, ctrl_down);
|
||||
signal_sent = true;
|
||||
break;
|
||||
}
|
||||
|
||||
/*-----------------------------------------*\
|
||||
@@ -724,11 +732,21 @@ void DeviceView::mouseReleaseEvent(QMouseEvent* event)
|
||||
if(rect.contains(event->pos()))
|
||||
{
|
||||
SelectSegment(zone_idx, segment_idx, ctrl_down);
|
||||
signal_sent = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*-------------------------------------------------*\
|
||||
| Send selection changed signal |
|
||||
\*-------------------------------------------------*/
|
||||
if(!signal_sent)
|
||||
{
|
||||
emit selectionChanged(-1, -1, selected_leds);
|
||||
}
|
||||
|
||||
/*-------------------------------------------------*\
|
||||
| Update UI |
|
||||
\*-------------------------------------------------*/
|
||||
@@ -1404,9 +1422,4 @@ void DeviceView::UpdateSelection()
|
||||
| Update UI |
|
||||
\*-----------------------------------------------------*/
|
||||
update();
|
||||
|
||||
/*-----------------------------------------------------*\
|
||||
| Send selection changed signal |
|
||||
\*-----------------------------------------------------*/
|
||||
emit selectionChanged(-1, -1, selected_leds);
|
||||
}
|
||||
|
||||
@@ -2138,6 +2138,7 @@ void OpenRGBDevicePage::on_DeviceViewBox_selectionChanged(int selected_zone, int
|
||||
MultipleSelected = false;
|
||||
|
||||
SetSelectedZone(true, -1, -1);
|
||||
ui->LEDBox->setCurrentIndex(0);
|
||||
}
|
||||
/*-------------------------------------------------*\
|
||||
| Handle case where a zone or segment is selected |
|
||||
@@ -2151,6 +2152,7 @@ void OpenRGBDevicePage::on_DeviceViewBox_selectionChanged(int selected_zone, int
|
||||
MultipleSelected = false;
|
||||
|
||||
SetSelectedZone(false, selected_zone, selected_segment);
|
||||
ui->LEDBox->setCurrentIndex(0);
|
||||
}
|
||||
/*-------------------------------------------------*\
|
||||
| Handle case where a single LED is selected |
|
||||
|
||||
Reference in New Issue
Block a user