From 1e7121c7769383164e0bbf2da5058348f5ba657a Mon Sep 17 00:00:00 2001 From: Paul Cornett Date: Thu, 25 Feb 2016 08:24:44 -0800 Subject: [PATCH] Fix option to load image as HiDPI for GTK3 With GTK3, GetContentScaleFactor() does not return correct result until TLW is realized, so use wxUpdateUIEvent to enable it later --- samples/image/image.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/samples/image/image.cpp b/samples/image/image.cpp index 22d9bf9a43..c5cd562c63 100644 --- a/samples/image/image.cpp +++ b/samples/image/image.cpp @@ -81,6 +81,7 @@ public: void OnNewFrameHiDPI(wxCommandEvent&); void OnImageInfo( wxCommandEvent &event ); void OnThumbnail( wxCommandEvent &event ); + void OnUpdateNewFrameHiDPI(wxUpdateUIEvent&); #ifdef wxHAVE_RAW_BITMAP void OnTestRawBitmap( wxCommandEvent &event ); @@ -649,6 +650,7 @@ wxBEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_MENU(wxID_COPY, MyFrame::OnCopy) EVT_MENU(wxID_PASTE, MyFrame::OnPaste) #endif // wxUSE_CLIPBOARD + EVT_UPDATE_UI(ID_NEW_HIDPI, MyFrame::OnUpdateNewFrameHiDPI) wxEND_EVENT_TABLE() MyFrame::MyFrame() @@ -661,8 +663,7 @@ MyFrame::MyFrame() wxMenu *menuImage = new wxMenu; menuImage->Append( ID_NEW, wxT("&Show any image...\tCtrl-O")); - if (GetContentScaleFactor() > 1) - menuImage->Append(ID_NEW_HIDPI, wxS("Show any image as &HiDPI...\tCtrl-H")); + menuImage->Append(ID_NEW_HIDPI, wxS("Show any image as &HiDPI...\tCtrl-H")); menuImage->Append( ID_INFO, wxT("Show image &information...\tCtrl-I")); #ifdef wxHAVE_RAW_BITMAP menuImage->AppendSeparator(); @@ -777,6 +778,11 @@ void MyFrame::OnNewFrameHiDPI(wxCommandEvent&) new MyImageFrame(this, filename, image, GetContentScaleFactor()); } +void MyFrame::OnUpdateNewFrameHiDPI(wxUpdateUIEvent& event) +{ + event.Enable(GetContentScaleFactor() > 1); +} + void MyFrame::OnImageInfo( wxCommandEvent &WXUNUSED(event) ) { wxImage image;