diff --git a/src/gui/game/GameController.cpp b/src/gui/game/GameController.cpp index 1238ea972d..c56b42e297 100644 --- a/src/gui/game/GameController.cpp +++ b/src/gui/game/GameController.cpp @@ -1166,6 +1166,14 @@ void GameController::SetActiveTool(int toolSelection, Tool * tool) ((PropertyTool *)tool)->OpenWindow(gameModel->GetSimulation()); } +void GameController::SetActiveTool(int toolSelection, std::string identifier) +{ + Tool *tool = gameModel->GetToolFromIdentifier(identifier); + if (!tool) + return; + SetActiveTool(toolSelection, tool); +} + void GameController::SetLastTool(Tool * tool) { gameModel->SetLastTool(tool); diff --git a/src/gui/game/GameController.h b/src/gui/game/GameController.h index 79d850449e..48560190dd 100644 --- a/src/gui/game/GameController.h +++ b/src/gui/game/GameController.h @@ -109,6 +109,7 @@ class GameController: public ClientListener void RebuildFavoritesMenu(); Tool * GetActiveTool(int selection); void SetActiveTool(int toolSelection, Tool * tool); + void SetActiveTool(int toolSelection, std::string identifier); void SetLastTool(Tool * tool); int GetReplaceModeFlags(); void SetReplaceModeFlags(int flags); diff --git a/src/gui/game/GameView.cpp b/src/gui/game/GameView.cpp index 5b92dab99e..744ec8bf77 100644 --- a/src/gui/game/GameView.cpp +++ b/src/gui/game/GameView.cpp @@ -1481,7 +1481,15 @@ void GameView::OnKeyPress(int key, Uint16 character, bool shift, bool ctrl, bool break; case 'p': case SDLK_F2: - screenshot(); + if (ctrl) + { + if (shift) + c->SetActiveTool(1, "DEFAULT_UI_PROPERTY"); + else + c->SetActiveTool(0, "DEFAULT_UI_PROPERTY"); + } + else + screenshot(); break; case SDLK_F3: SetDebugHUD(!GetDebugHUD());