diff --git a/src/gui/qgsmapcanvas.cpp b/src/gui/qgsmapcanvas.cpp index f471c3fd77b..a5ca9c903b4 100644 --- a/src/gui/qgsmapcanvas.cpp +++ b/src/gui/qgsmapcanvas.cpp @@ -901,16 +901,20 @@ bool QgsMapCanvas::setReferencedExtent( const QgsReferencedRectangle &extent ) void QgsMapCanvas::setCenter( const QgsPointXY ¢er ) { - QgsRectangle r = mapSettings().extent(); - double x = center.x(); - double y = center.y(); - setExtent( - QgsRectangle( - x - r.width() / 2.0, y - r.height() / 2.0, - x + r.width() / 2.0, y + r.height() / 2.0 - ), - true + const QgsRectangle r = mapSettings().extent(); + const double x = center.x(); + const double y = center.y(); + const QgsRectangle rect( + x - r.width() / 2.0, y - r.height() / 2.0, + x + r.width() / 2.0, y + r.height() / 2.0 ); + if ( ! rect.isEmpty() ) + { + setExtent( + rect, + true + ); + } } // setCenter QgsPointXY QgsMapCanvas::center() const