From 0df5cf7f75567ea8065dbefad41822630fee1078 Mon Sep 17 00:00:00 2001
From: Jon Evans <jon@craftyjon.com>
Date: Tue, 27 Feb 2024 18:50:44 -0500
Subject: [PATCH] Expose grid origin action in more places

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17007
---
 common/tool/grid_menu.cpp           | 13 ++++---------
 pcbnew/menubar_footprint_editor.cpp |  1 +
 pcbnew/menubar_pcb_editor.cpp       |  1 +
 3 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/common/tool/grid_menu.cpp b/common/tool/grid_menu.cpp
index 620ac4c3db..6681781fc8 100644
--- a/common/tool/grid_menu.cpp
+++ b/common/tool/grid_menu.cpp
@@ -39,15 +39,7 @@ GRID_MENU::GRID_MENU( EDA_DRAW_FRAME* aParent ) :
 {
     UpdateTitle();
     SetIcon( BITMAPS::grid_select );
-
-    APP_SETTINGS_BASE* settings = m_parent->config();
-    wxArrayString      gridsList;
-    int                i = ID_POPUP_GRID_START;
-
-    BuildChoiceList( &gridsList, settings, m_parent );
-
-    for( const wxString& grid : gridsList )
-        Append( i++, grid, wxEmptyString, wxITEM_CHECK );
+    update();
 }
 
 
@@ -77,6 +69,9 @@ void GRID_MENU::update()
     while( GetMenuItemCount() > 0 )
         Delete( FindItemByPosition( 0 ) );
 
+    Add( ACTIONS::gridOrigin );
+    AppendSeparator();
+
     for( const wxString& grid : gridsList )
     {
         int idx = i++;
diff --git a/pcbnew/menubar_footprint_editor.cpp b/pcbnew/menubar_footprint_editor.cpp
index 214f88042d..bdf60347a1 100644
--- a/pcbnew/menubar_footprint_editor.cpp
+++ b/pcbnew/menubar_footprint_editor.cpp
@@ -112,6 +112,7 @@ void FOOTPRINT_EDIT_FRAME::doReCreateMenuBar()
     editMenu->Add( PCB_ACTIONS::editTextAndGraphics );
     editMenu->Add( PCB_ACTIONS::defaultPadProperties );
     editMenu->Add( PCB_ACTIONS::enumeratePads );
+    editMenu->Add( ACTIONS::gridOrigin );
 
 
     //-- View menu -------------------------------------------------------
diff --git a/pcbnew/menubar_pcb_editor.cpp b/pcbnew/menubar_pcb_editor.cpp
index 308766f3de..eef1bbb778 100644
--- a/pcbnew/menubar_pcb_editor.cpp
+++ b/pcbnew/menubar_pcb_editor.cpp
@@ -211,6 +211,7 @@ void PCB_EDIT_FRAME::doReCreateMenuBar()
     editMenu->Add( PCB_ACTIONS::editTeardrops );
     editMenu->Add( PCB_ACTIONS::changeFootprints );
     editMenu->Add( PCB_ACTIONS::swapLayers );
+    editMenu->Add( ACTIONS::gridOrigin );
 
     editMenu->AppendSeparator();
     editMenu->Add( PCB_ACTIONS::zoneFillAll );