Update wxStaticBitmap in wxMSW on DPI change
Use the appropriately sized bitmap when the resolution changes.
This commit is contained in:
@@ -112,7 +112,9 @@ private:
|
||||
// can we leave it to it)
|
||||
void DoPaintManually(wxPaintEvent& event);
|
||||
|
||||
// event handlers
|
||||
void WXHandleSize(wxSizeEvent& event);
|
||||
void WXHandleDPIChanged(wxDPIChangedEvent& event);
|
||||
|
||||
// return the size of m_icon or the appropriate size of m_bitmapBundle at
|
||||
// the current DPI scaling (may still be invalid of both of them are)
|
||||
|
@@ -45,6 +45,7 @@
|
||||
|
||||
wxBEGIN_EVENT_TABLE(wxStaticBitmap, wxStaticBitmapBase)
|
||||
EVT_SIZE(wxStaticBitmap::WXHandleSize)
|
||||
EVT_DPI_CHANGED(wxStaticBitmap::WXHandleDPIChanged)
|
||||
wxEND_EVENT_TABLE()
|
||||
|
||||
// ===========================================================================
|
||||
@@ -190,6 +191,16 @@ void wxStaticBitmap::WXHandleSize(wxSizeEvent& event)
|
||||
event.Skip();
|
||||
}
|
||||
|
||||
void wxStaticBitmap::WXHandleDPIChanged(wxDPIChangedEvent& event)
|
||||
{
|
||||
// Icons only exist in a single resolution, so don't bother updating in
|
||||
// this case.
|
||||
if ( !m_icon.IsOk() && m_bitmapBundle.IsOk() )
|
||||
DoUpdateImage(wxSize(), false /* not using an icon */);
|
||||
|
||||
event.Skip();
|
||||
}
|
||||
|
||||
void wxStaticBitmap::DoPaintManually(wxPaintEvent& WXUNUSED(event))
|
||||
{
|
||||
wxPaintDC dc(this);
|
||||
|
Reference in New Issue
Block a user