From 708bdc2167e37f74dcca2bc0a751f5add08ca4a7 Mon Sep 17 00:00:00 2001 From: Mike Williams Date: Thu, 29 Jan 2026 19:40:31 -0500 Subject: [PATCH] create array: disable the dialog, don't hide it Hidden dialogs on GTK won't accept changes to their values. Fixes: https://gitlab.com/kicad/code/kicad/-/issues/21639 --- pcbnew/dialogs/dialog_create_array.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/pcbnew/dialogs/dialog_create_array.cpp b/pcbnew/dialogs/dialog_create_array.cpp index 1410b9c449..0c908bb9e7 100644 --- a/pcbnew/dialogs/dialog_create_array.cpp +++ b/pcbnew/dialogs/dialog_create_array.cpp @@ -257,8 +257,9 @@ void DIALOG_CREATE_ARRAY::OnSelectCenterButton( wxCommandEvent& event ) PCB_PICKER_TOOL* pickerTool = toolMgr->GetTool(); wxCHECK( pickerTool, /* void */ ); - // Hide, but do not close, the dialog - Hide(); + // Keep the dialog visible, but disable while picking. + // Hiding the dialog on GTK causes the controls to not accept their new values + Disable(); if( event.GetEventObject() == m_btnSelectCenterItem ) { @@ -325,7 +326,7 @@ void DIALOG_CREATE_ARRAY::UpdatePickedItem( const EDA_ITEM* aItem ) m_vCentre.SetValue( aItem->GetPosition().y ); } - Show( true ); + Enable( true ); } @@ -337,7 +338,7 @@ void DIALOG_CREATE_ARRAY::UpdatePickedPoint( const std::optional& aPoi m_vCentre.SetValue( aPoint->y ); } - Show( true ); + Enable( true ); }