Skip to content

Commit e42d61e

Browse files
author
brushtyler
committedFeb 23, 2011
fix canvas refresh to avoid crashes
git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@15254 c8812cc2-4d05-0410-92ff-de0c093fc19c

File tree

2 files changed

+6
-12
lines changed

2 files changed

+6
-12
lines changed
 

‎src/gui/qgsmapcanvas.cpp

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ QgsMapCanvas::QgsMapCanvas( QWidget * parent, const char *name )
8181
: QGraphicsView( parent )
8282
, mCanvasProperties( new CanvasProperties )
8383
, mPainting( false )
84-
, mLastSize( QSize() )
84+
, mNewSize( QSize() )
8585
{
8686
mScene = new QGraphicsScene();
8787
setScene( mScene );
@@ -945,9 +945,6 @@ void QgsMapCanvas::paintEvent( QPaintEvent *e )
945945
{
946946
if ( mNewSize.isValid() )
947947
{
948-
mLastSize = mNewSize;
949-
mNewSize = QSize();
950-
951948
if ( mPainting || mDrawing )
952949
{
953950
//cancel current render progress
@@ -964,16 +961,15 @@ void QgsMapCanvas::paintEvent( QPaintEvent *e )
964961

965962
mPainting = true;
966963

967-
while ( mLastSize.isValid() )
964+
while ( mNewSize.isValid() )
968965
{
969-
int width = mLastSize.width();
970-
int height = mLastSize.height();
971-
mLastSize = QSize();
966+
QSize lastSize = mNewSize;
967+
mNewSize = QSize();
972968

973969
//set map size before scene size helps keep scene indexes updated properly
974970
// this was the cause of rubberband artifacts
975-
mMap->resize( QSize( width, height ) );
976-
mScene->setSceneRect( QRectF( 0, 0, width, height ) );
971+
mMap->resize( lastSize );
972+
mScene->setSceneRect( QRectF( 0, 0, lastSize.width(), lastSize.height() ) );
977973

978974
// notify canvas items of change
979975
updateCanvasItemPositions();

‎src/gui/qgsmapcanvas.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -463,8 +463,6 @@ class GUI_EXPORT QgsMapCanvas : public QGraphicsView
463463
//! currently in paint event
464464
bool mPainting;
465465

466-
//! size of last resize event
467-
QSize mLastSize;
468466
}; // class QgsMapCanvas
469467

470468

0 commit comments

Comments
 (0)
Please sign in to comment.