diff --git a/common/tool/grid_menu.cpp b/common/tool/grid_menu.cpp index e6c064e2d4..25979f9878 100644 --- a/common/tool/grid_menu.cpp +++ b/common/tool/grid_menu.cpp @@ -3,7 +3,7 @@ * * Copyright (C) 2015 CERN * @author Maciej Suminski - * Copyright (C) 2015-2017 KiCad Developers, see AUTHORS.txt for contributors. + * Copyright (C) 2015-2018 KiCad Developers, see AUTHORS.txt for contributors. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -51,6 +51,13 @@ GRID_MENU::GRID_MENU( EDA_DRAW_FRAME* aParent ) : m_parent( aParent ) } +CONTEXT_MENU* GRID_MENU::Clone() const +{ + // Just return a fresh menu. This keeps the units up-to-date. + return create(); +} + + OPT_TOOL_EVENT GRID_MENU::eventHandler( const wxMenuEvent& aEvent ) { OPT_TOOL_EVENT event( ACTIONS::gridPreset.MakeEvent() ); diff --git a/include/tool/context_menu.h b/include/tool/context_menu.h index cdbc33576a..f58bab55fe 100644 --- a/include/tool/context_menu.h +++ b/include/tool/context_menu.h @@ -142,7 +142,7 @@ public: /** * Creates a deep, recursive copy of this CONTEXT_MENU. */ - CONTEXT_MENU* Clone() const; + virtual CONTEXT_MENU* Clone() const; protected: ///> Returns an instance of this class. It has to be overridden in inheriting classes. diff --git a/include/tool/grid_menu.h b/include/tool/grid_menu.h index 1067303ee1..18d2bbee6c 100644 --- a/include/tool/grid_menu.h +++ b/include/tool/grid_menu.h @@ -34,6 +34,8 @@ class GRID_MENU : public CONTEXT_MENU public: GRID_MENU( EDA_DRAW_FRAME* aParent ); + CONTEXT_MENU* Clone() const override; + private: CONTEXT_MENU* create() const override {