Fix infobar height in Windows HiDPI situations
This commit is contained in:
parent
c1d7fcf587
commit
902913c7dd
|
@ -31,6 +31,10 @@
|
||||||
#include <wx/bmpbuttn.h>
|
#include <wx/bmpbuttn.h>
|
||||||
#include <eda_base_frame.h>
|
#include <eda_base_frame.h>
|
||||||
|
|
||||||
|
#ifdef __WXMSW__
|
||||||
|
#include <gal/dpi_scaling.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
wxDEFINE_EVENT( KIEVT_SHOW_INFOBAR, wxCommandEvent );
|
wxDEFINE_EVENT( KIEVT_SHOW_INFOBAR, wxCommandEvent );
|
||||||
wxDEFINE_EVENT( KIEVT_DISMISS_INFOBAR, wxCommandEvent );
|
wxDEFINE_EVENT( KIEVT_DISMISS_INFOBAR, wxCommandEvent );
|
||||||
|
@ -74,13 +78,21 @@ WX_INFOBAR::WX_INFOBAR( wxWindow* aParent, wxAuiManager* aMgr, wxWindowID aWinid
|
||||||
int sx, sy;
|
int sx, sy;
|
||||||
GetSize( &sx, &sy );
|
GetSize( &sx, &sy );
|
||||||
sy = 1.5 * sy;
|
sy = 1.5 * sy;
|
||||||
SetSize( sx, sy );
|
|
||||||
|
|
||||||
// The bitmap gets cutoff sometimes with the default size, so force it to be the same
|
// The bitmap gets cutoff sometimes with the default size, so force it to be the same
|
||||||
// height as the infobar.
|
// height as the infobar.
|
||||||
wxSizer* sizer = GetSizer();
|
wxSizer* sizer = GetSizer();
|
||||||
wxSize iconSize = wxArtProvider::GetSizeHint( wxART_BUTTON );
|
wxSize iconSize = wxArtProvider::GetSizeHint( wxART_BUTTON );
|
||||||
|
|
||||||
|
#ifdef __WXMSW__
|
||||||
|
DPI_SCALING dpi( nullptr, aParent );
|
||||||
|
iconSize.x *= dpi.GetContentScaleFactor();
|
||||||
|
sx *= dpi.GetContentScaleFactor();
|
||||||
|
sy *= dpi.GetContentScaleFactor();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
SetSize( sx, sy );
|
||||||
|
|
||||||
sizer->SetItemMinSize( (size_t) 0, iconSize.x, sy );
|
sizer->SetItemMinSize( (size_t) 0, iconSize.x, sy );
|
||||||
|
|
||||||
// Forcefully remove all existing buttons added by the wx constructors.
|
// Forcefully remove all existing buttons added by the wx constructors.
|
||||||
|
|
Loading…
Reference in New Issue