Skip to content

Commit 951ad59

Browse files
fix(shot): reset selection index in clearSelected and guard deleteCurrentShape bounds
clearSelected() did not reset m_selectedIndex/-hoveredIndex, causing the blue selection border on mosaic/blur shapes to persist and be saved into the final screenshot. Also add lower bound check in deleteCurrentShape() to prevent crash when m_selectedOrder is -1. bug: https://pms.uniontech.com/bug-view-356629.html
1 parent e5f66dd commit 951ad59

1 file changed

Lines changed: 7 additions & 2 deletions

File tree

src/widgets/shapeswidget.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,14 +164,19 @@ void ShapesWidget::setCurrentShape(QString shapeType)
164164
void ShapesWidget::clearSelected()
165165
{
166166
qCDebug(dsrApp) << "Clearing selected shape";
167-
167+
168168
for (int j = 0; j < m_selectedShape.mainPoints.length(); j++) {
169169
m_selectedShape.mainPoints[j] = QPointF(0, 0);
170+
}
171+
for (int j = 0; j < m_hoveredShape.mainPoints.length(); j++) {
170172
m_hoveredShape.mainPoints[j] = QPointF(0, 0);
171173
}
172174

173175
//qDebug() << "clear selected!!!";
174176
m_isSelected = false;
177+
m_selectedIndex = -1;
178+
m_hoveredIndex = -1;
179+
m_selectedOrder = -1;
175180
m_selectedShape.points.clear();
176181
m_hoveredShape.points.clear();
177182
updateCursorShape();
@@ -2389,7 +2394,7 @@ void ShapesWidget::tapTriggered(QTapGesture *tap)
23892394
void ShapesWidget::deleteCurrentShape()
23902395
{
23912396
qDebug() << "delete shape";
2392-
if (m_selectedOrder < m_shapes.length()) {
2397+
if (m_selectedOrder >= 0 && m_selectedOrder < m_shapes.length()) {
23932398
m_shapes.removeAt(m_selectedOrder);
23942399
} else {
23952400
qWarning() << "Invalid index";

0 commit comments

Comments
 (0)