diff options
| author | Simon 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) |
| commit | edad8f46af6cf2403c2ffa77ecfa138ae1b9f8d9 (patch) | |
| tree | 94ac1023a0241e27176d63aabee26fd1b876e08b /src/game/GameView.cpp | |
| parent | f19c7f62c77f6a3e8f5728e015166b0c625f5f67 (diff) | |
| download | powder-edad8f46af6cf2403c2ffa77ecfa138ae1b9f8d9.zip powder-edad8f46af6cf2403c2ffa77ecfa138ae1b9f8d9.tar.gz | |
Undo/Snapshots, fixes #118
Diffstat (limited to 'src/game/GameView.cpp')
| -rw-r--r-- | src/game/GameView.cpp | 22 |
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; } } |
