From 1508fa1e4c94ad3eba4fcc519b931ccaeec578f6 Mon Sep 17 00:00:00 2001 From: Paul Cornett Date: Tue, 23 Feb 2021 10:01:01 -0800 Subject: [PATCH] Use a more accurate width for wxDatePickerCtrlGeneric See #19078 --- src/generic/datectlg.cpp | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/generic/datectlg.cpp b/src/generic/datectlg.cpp index 13ced52052..caa1338350 100644 --- a/src/generic/datectlg.cpp +++ b/src/generic/datectlg.cpp @@ -409,17 +409,12 @@ bool wxDatePickerCtrlGeneric::Destroy() wxSize wxDatePickerCtrlGeneric::DoGetBestSize() const { - // A better solution would be to use a custom text control that would have - // the best size determined by the current date format and let m_combo take - // care of the best size computation, but this isn't easily possible with - // wxComboCtrl currently, so we compute our own best size here instead even - // if this means adding some extra margins to account for text control - // borders, space between it and the button and so on. wxSize size = m_combo->GetButtonSize(); wxTextCtrl* const text = m_combo->GetTextCtrl(); - size.x += text->GetTextExtent(text->GetValue()).x; - size.x += 2*text->GetCharWidth(); // This is the margin mentioned above. + int w; + text->GetTextExtent(text->GetValue(), &w, NULL); + size.x += text->GetSizeFromTextSize(w + 1).x; return size; }