diff --git a/src/gui/qgsmapcanvas.cpp b/src/gui/qgsmapcanvas.cpp index 78215f6fb1a..8eaa18fad08 100644 --- a/src/gui/qgsmapcanvas.cpp +++ b/src/gui/qgsmapcanvas.cpp @@ -285,6 +285,9 @@ QgsMapLayer *QgsMapCanvas::layer( int index ) void QgsMapCanvas::setCurrentLayer( QgsMapLayer *layer ) { + if ( mCurrentLayer == layer ) + return; + mCurrentLayer = layer; emit currentLayerChanged( layer ); } diff --git a/src/gui/qgsmapcanvas.h b/src/gui/qgsmapcanvas.h index 4b40b16a7b4..303c2bf2396 100644 --- a/src/gui/qgsmapcanvas.h +++ b/src/gui/qgsmapcanvas.h @@ -928,7 +928,7 @@ class GUI_EXPORT QgsMapCanvas : public QGraphicsView bool mRenderFlag = true; //! current layer in legend - QgsMapLayer *mCurrentLayer = nullptr; + QPointer< QgsMapLayer > mCurrentLayer; //! graphics scene manages canvas items QGraphicsScene *mScene = nullptr;