diff --git a/dialog.cpp b/dialog.cpp index ebc74f330..a3267528a 100644 --- a/dialog.cpp +++ b/dialog.cpp @@ -283,7 +283,16 @@ void Dialog::resizeEvent(QResizeEvent *e) setMask(d->background->mask()); if (d->resizeStartCorner != Dialog::NoCorner && d->view && d->widget) { - d->widget->resize(d->view->size()); + d->widget->setPreferredSize(d->view->size()); + + QGraphicsLayoutItem *layout = d->widget->parentLayoutItem(); + QGraphicsWidget *parentWidget = d->widget->parentWidget(); + + if (layout && parentWidget) { + layout->updateGeometry(); + parentWidget->resize(layout->preferredSize()); + } + d->view->setSceneRect(d->widget->mapToScene(d->widget->boundingRect()).boundingRect()); d->view->centerOn(d->widget); }