summaryrefslogtreecommitdiff
path: root/src/game/GameView.cpp
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-08-16 21:03:40 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-08-16 21:03:40 (GMT)
commitedad8f46af6cf2403c2ffa77ecfa138ae1b9f8d9 (patch)
tree94ac1023a0241e27176d63aabee26fd1b876e08b /src/game/GameView.cpp
parentf19c7f62c77f6a3e8f5728e015166b0c625f5f67 (diff)
downloadpowder-edad8f46af6cf2403c2ffa77ecfa138ae1b9f8d9.zip
powder-edad8f46af6cf2403c2ffa77ecfa138ae1b9f8d9.tar.gz
Undo/Snapshots, fixes #118
Diffstat (limited to 'src/game/GameView.cpp')
-rw-r--r--src/game/GameView.cpp22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/game/GameView.cpp b/src/game/GameView.cpp
index af13797..5b6629b 100644
--- a/src/game/GameView.cpp
+++ b/src/game/GameView.cpp
@@ -984,6 +984,8 @@ void GameView::OnMouseDown(int x, int y, unsigned button)
if(button == BUTTON_MIDDLE)
toolIndex = 2;
isMouseDown = true;
+ if(!pointQueue.size())
+ c->HistorySnapshot();
if(drawMode == DrawRect || drawMode == DrawLine)
{
drawPoint1 = ui::Point(x, y);
@@ -1230,9 +1232,16 @@ void GameView::OnKeyPress(int key, Uint16 character, bool shift, bool ctrl, bool
c->ChangeBrush();
break;
case 'z':
- isMouseDown = false;
- zoomCursorFixed = false;
- c->SetZoomEnabled(true);
+ if(ctrl)
+ {
+ c->HistoryRestore();
+ }
+ else
+ {
+ isMouseDown = false;
+ zoomCursorFixed = false;
+ c->SetZoomEnabled(true);
+ }
break;
case '`':
c->ShowConsole();
@@ -1384,8 +1393,11 @@ void GameView::OnKeyRelease(int key, Uint16 character, bool shift, bool ctrl, bo
disableShiftBehaviour();
break;
case 'z':
- if(!zoomCursorFixed && !alt)
- c->SetZoomEnabled(false);
+ if(!ctrl)
+ {
+ if(!zoomCursorFixed && !alt)
+ c->SetZoomEnabled(false);
+ }
break;
}
}