From c813c30c34967a36419c505f1f33b1c95f1018eb Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Tue, 11 Nov 2014 01:02:20 +0000 Subject: [PATCH] Fix best size calculation for buttons with bitmaps in wxMSW. Add the bitmap margins to the bitmap size, not the total button size. This fixes the buttons becoming unnecessarily tall as soon as they were assigned even a tiny bitmap. Closes #16536. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78127 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/msw/anybutton.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/msw/anybutton.cpp b/src/msw/anybutton.cpp index 0c1439f32e..dd0431bdd1 100644 --- a/src/msw/anybutton.cpp +++ b/src/msw/anybutton.cpp @@ -519,8 +519,9 @@ void wxAnyButton::AdjustForBitmapSize(wxSize &size) const { wxCHECK_RET( m_imageData, wxT("shouldn't be called if no image") ); - // account for the bitmap size - const wxSize sizeBmp = m_imageData->GetBitmap(State_Normal).GetSize(); + // account for the bitmap size, including the user-specified margins + const wxSize sizeBmp = m_imageData->GetBitmap(State_Normal).GetSize() + + 2*m_imageData->GetBitmapMargins(); const wxDirection dirBmp = m_imageData->GetBitmapPosition(); if ( dirBmp == wxLEFT || dirBmp == wxRIGHT ) { @@ -535,9 +536,6 @@ void wxAnyButton::AdjustForBitmapSize(wxSize &size) const size.x = sizeBmp.x; } - // account for the user-specified margins - size += 2*m_imageData->GetBitmapMargins(); - // and also for the margins we always add internally (unless we have no // border at all in which case the button has exactly the same size as // bitmap and so no margins should be used)