@@ -646,7 +646,14 @@ void MulticolorModelDialog::build_ui()
646646 count_btn->SetMinSize (wxSize (FromDIP (56 ), FromDIP (36 )));
647647 count_btn->SetMaxSize (wxSize (FromDIP (56 ), FromDIP (36 )));
648648 count_btn->Enable (count <= max_selectable_color_count);
649- count_btn->Bind (wxEVT_BUTTON, [this , count](wxCommandEvent &) { set_pending_color_count (count, true ); });
649+ count_btn->Bind (wxEVT_BUTTON, [this , count](wxCommandEvent &) {
650+ set_pending_color_count (count, true );
651+ if (m_color_count_input != nullptr ) {
652+ wxTextCtrl *text_ctrl = m_color_count_input->GetTextCtrl ();
653+ text_ctrl->SetFocus ();
654+ text_ctrl->SelectAll ();
655+ }
656+ });
650657 m_color_count_buttons.emplace_back (count, count_btn);
651658 count_buttons_sizer->Add (count_btn, 0 , wxRIGHT, FromDIP (10 ));
652659 }
@@ -669,6 +676,19 @@ void MulticolorModelDialog::build_ui()
669676 if (!m_updating_color_count_controls)
670677 set_pending_color_count (m_color_count_input->GetValue (), true );
671678 });
679+ wxTextCtrl *color_count_text_ctrl = m_color_count_input->GetTextCtrl ();
680+ color_count_text_ctrl->Bind (wxEVT_TEXT, [this , color_count_text_ctrl](wxCommandEvent &) {
681+ if (m_updating_color_count_controls)
682+ return ;
683+
684+ long value = 0 ;
685+ if (!color_count_text_ctrl->GetValue ().ToLong (&value))
686+ return ;
687+ if (value < m_color_count_input->GetMin () || value > m_color_count_input->GetMax ())
688+ return ;
689+
690+ set_pending_color_count (static_cast <int >(value), true );
691+ });
672692 count_input_sizer->Add (m_color_count_slider, 1 , wxALIGN_CENTER_VERTICAL | wxRIGHT, FromDIP (10 ));
673693 count_input_sizer->Add (m_color_count_input, 0 , wxALIGN_CENTER_VERTICAL);
674694 settings_sizer->Add (count_input_sizer, 0 , wxEXPAND | wxBOTTOM, FromDIP (14 ));
@@ -986,6 +1006,13 @@ void MulticolorModelDialog::apply_pending_color_count(bool force)
9861006 if (m_preview_mode == PreviewMode::Quantized)
9871007 m_canvas->set_model (m_result.quantized_model );
9881008 refresh_quantization_controls ();
1009+ if (m_color_count_input != nullptr ) {
1010+ wxTextCtrl *text_ctrl = m_color_count_input->GetTextCtrl ();
1011+ text_ctrl->CallAfter ([text_ctrl]() {
1012+ text_ctrl->SetFocus ();
1013+ text_ctrl->SelectAll ();
1014+ });
1015+ }
9891016}
9901017
9911018void MulticolorModelDialog::auto_quantize ()
0 commit comments