Sketcher: Fix element widget repaint delay bug

Related to https://github.com/FreeCAD/FreeCAD/pull/7567#issuecomment-1304724547
This commit is contained in:
Paddle
2022-11-12 14:27:55 +01:00
committed by abdullahtahiriyo
parent 7f104b077b
commit cf383d709d

View File

@@ -843,7 +843,19 @@ void TaskSketcherElements::on_listWidgetElements_itemPressed(QListWidgetItem* it
}
// first update the listwidget. Item is selected if at least one element of the geo is selected.
item->setSelected(item->isLineSelected || item->isStartingPointSelected || item->isEndPointSelected || item->isMidPointSelected);
bool selected = item->isLineSelected || item->isStartingPointSelected || item->isEndPointSelected || item->isMidPointSelected;
{
QSignalBlocker sigblk(ui->listWidgetElements);
if (item->isSelected() && selected) {
item->setSelected(false);// if already selected and changing or adding subelement, ensure selection change is triggered, which ensures timely repaint
item->setSelected(selected);
}
else {
item->setSelected(selected);
}
}
// now the scene
std::stringstream ss;