diff options
author | Stijn Buys <ingar@osirion.org> | 2012-02-23 21:47:29 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2012-02-23 21:47:29 +0000 |
commit | 2413b21baf332133a3aeb0a45bc934d9feafb85d (patch) | |
tree | 9ea841f7845d7ee27ac5f6d5e9268de7f3703f80 /src/mapwidget.cc | |
parent | e6347f3747a746151f1f67c7a508c5e2fc9091a8 (diff) |
Prevent the map from freezing by not drawing or updating if it becomes smaller than 16x16 pixels.
Diffstat (limited to 'src/mapwidget.cc')
-rw-r--r-- | src/mapwidget.cc | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/mapwidget.cc b/src/mapwidget.cc index b855040..d2c5676 100644 --- a/src/mapwidget.cc +++ b/src/mapwidget.cc @@ -31,6 +31,8 @@ MapWidget::MapWidget(QWidget *parent) : QWidget(parent) dragstart_x = 0; dragstart_y = 0; + is_dragging = false; + setFocusPolicy(Qt::ClickFocus); } @@ -97,6 +99,9 @@ void MapWidget::mouseMoveEvent(QMouseEvent *event) void MapWidget::resizeChildren() { + if ((width() < 16) || (height() < 16)) + return; + const float scale = (float) width() / (float) (mapwidget_zoom * 256); for (int i = 0; i < mapwidget_enties.size(); ++i) { @@ -178,6 +183,9 @@ void MapWidget::resizeEvent(QResizeEvent *event) void MapWidget::paintEvent(QPaintEvent *event) { + if ((width() < 16) || (height() < 16)) + return; + const QColor gridlinecolor(0, 0, 128); const QColor axislinecolor(128, 0, 0); @@ -229,8 +237,6 @@ void MapWidget::paintEvent(QPaintEvent *event) painter.drawLine(0, y, width(), y); y += gridsize; } - - QWidget::paintEvent(event); } EntityWidget *MapWidget::addEntity() |