mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-09-29 17:32:17 -07:00
Try something else
Took 17 minutes
This commit is contained in:
parent
37bb1786cd
commit
d458ef7efa
3 changed files with 19 additions and 13 deletions
|
|
@ -129,14 +129,13 @@ void GameView::resizeRubberBand(const QPointF &cursorPoint, int selectedCount)
|
||||||
QPoint cursor = cursorPoint.toPoint();
|
QPoint cursor = cursorPoint.toPoint();
|
||||||
QRect rect = QRect(mapFromScene(selectionOrigin), cursor).normalized();
|
QRect rect = QRect(mapFromScene(selectionOrigin), cursor).normalized();
|
||||||
|
|
||||||
// Explicitly repaint the strip the band just vacated. When the band is a
|
|
||||||
// child widget, the viewport does not reliably receive the exposed region
|
|
||||||
// on all platforms (notably macOS), which would leave stale band pixels on
|
|
||||||
// screen until the next unrelated repaint.
|
|
||||||
const QRect previousGeometry = rubberBand->geometry();
|
|
||||||
rubberBand->setGeometry(rect);
|
rubberBand->setGeometry(rect);
|
||||||
if (viewport()) {
|
if (viewport()) {
|
||||||
viewport()->update(previousGeometry.united(rect));
|
// Repaint the whole viewport rather than just the band's old area: the
|
||||||
|
// vacated strip of a child widget is not reliably invalidated on all
|
||||||
|
// platforms (notably macOS), leaving stale pixels — including black
|
||||||
|
// scene background where the playmat should show — under the selection.
|
||||||
|
viewport()->update();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!SettingsCache::instance().userInterface().getShowDragSelectionCount()) {
|
if (!SettingsCache::instance().userInterface().getShowDragSelectionCount()) {
|
||||||
|
|
@ -180,13 +179,12 @@ void GameView::stopRubberBand()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Same rationale as resizeRubberBand. Make sure the area under the band is
|
// Same rationale as resizeRubberBand: make sure the whole viewport is
|
||||||
// repainted, since some platforms skip the exposed-region update of a
|
// repainted once the band is gone, since some platforms skip the exposed
|
||||||
// hidden child widget.
|
// region update of a hidden child widget.
|
||||||
const QRect bandGeometry = rubberBand->geometry();
|
|
||||||
rubberBand->hide();
|
rubberBand->hide();
|
||||||
if (viewport()) {
|
if (viewport()) {
|
||||||
viewport()->update(bandGeometry);
|
viewport()->update();
|
||||||
}
|
}
|
||||||
dragCountLabel->hide();
|
dragCountLabel->hide();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -124,7 +124,6 @@ void PlayerGraphicsItem::initializeZones()
|
||||||
rfgZoneGraphicsItem->setPos(base + QPointF(0, 2 * h + h2 + 10));
|
rfgZoneGraphicsItem->setPos(base + QPointF(0, 2 * h + h2 + 10));
|
||||||
|
|
||||||
tableZoneGraphicsItem = new TableZone(player->getTableZone(), mirrored, this);
|
tableZoneGraphicsItem = new TableZone(player->getTableZone(), mirrored, this);
|
||||||
connect(tableZoneGraphicsItem, &TableZone::sizeChanged, this, &PlayerGraphicsItem::updateBoundingRect);
|
|
||||||
connect(this, &PlayerGraphicsItem::mirroredChanged, tableZoneGraphicsItem, &TableZone::setMirrored);
|
connect(this, &PlayerGraphicsItem::mirroredChanged, tableZoneGraphicsItem, &TableZone::setMirrored);
|
||||||
|
|
||||||
stackZoneGraphicsItem =
|
stackZoneGraphicsItem =
|
||||||
|
|
|
||||||
|
|
@ -188,8 +188,17 @@ public:
|
||||||
}
|
}
|
||||||
void setWidth(qreal _width)
|
void setWidth(qreal _width)
|
||||||
{
|
{
|
||||||
|
// The width is stored as an int; truncate to match the previous implicit conversion.
|
||||||
|
const int newWidth = static_cast<int>(_width);
|
||||||
|
if (width == newWidth) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
prepareGeometryChange();
|
prepareGeometryChange();
|
||||||
width = _width;
|
width = newWidth;
|
||||||
|
// The parent player item's boundingRect (which clips the playmat painting) is
|
||||||
|
// derived from this zone's size. Without this signal the playmat is cut off at
|
||||||
|
// the stale boundingRect edge whenever the scene is resized wider.
|
||||||
|
emit sizeChanged();
|
||||||
}
|
}
|
||||||
[[nodiscard]] qreal getWidth() const
|
[[nodiscard]] qreal getWidth() const
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue