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
This commit is contained in:
@@ -81,6 +81,7 @@ public:
|
|||||||
void OnNewFrameHiDPI(wxCommandEvent&);
|
void OnNewFrameHiDPI(wxCommandEvent&);
|
||||||
void OnImageInfo( wxCommandEvent &event );
|
void OnImageInfo( wxCommandEvent &event );
|
||||||
void OnThumbnail( wxCommandEvent &event );
|
void OnThumbnail( wxCommandEvent &event );
|
||||||
|
void OnUpdateNewFrameHiDPI(wxUpdateUIEvent&);
|
||||||
|
|
||||||
#ifdef wxHAVE_RAW_BITMAP
|
#ifdef wxHAVE_RAW_BITMAP
|
||||||
void OnTestRawBitmap( wxCommandEvent &event );
|
void OnTestRawBitmap( wxCommandEvent &event );
|
||||||
@@ -649,6 +650,7 @@ wxBEGIN_EVENT_TABLE(MyFrame, wxFrame)
|
|||||||
EVT_MENU(wxID_COPY, MyFrame::OnCopy)
|
EVT_MENU(wxID_COPY, MyFrame::OnCopy)
|
||||||
EVT_MENU(wxID_PASTE, MyFrame::OnPaste)
|
EVT_MENU(wxID_PASTE, MyFrame::OnPaste)
|
||||||
#endif // wxUSE_CLIPBOARD
|
#endif // wxUSE_CLIPBOARD
|
||||||
|
EVT_UPDATE_UI(ID_NEW_HIDPI, MyFrame::OnUpdateNewFrameHiDPI)
|
||||||
wxEND_EVENT_TABLE()
|
wxEND_EVENT_TABLE()
|
||||||
|
|
||||||
MyFrame::MyFrame()
|
MyFrame::MyFrame()
|
||||||
@@ -661,7 +663,6 @@ MyFrame::MyFrame()
|
|||||||
|
|
||||||
wxMenu *menuImage = new wxMenu;
|
wxMenu *menuImage = new wxMenu;
|
||||||
menuImage->Append( ID_NEW, wxT("&Show any image...\tCtrl-O"));
|
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"));
|
menuImage->Append( ID_INFO, wxT("Show image &information...\tCtrl-I"));
|
||||||
#ifdef wxHAVE_RAW_BITMAP
|
#ifdef wxHAVE_RAW_BITMAP
|
||||||
@@ -777,6 +778,11 @@ void MyFrame::OnNewFrameHiDPI(wxCommandEvent&)
|
|||||||
new MyImageFrame(this, filename, image, GetContentScaleFactor());
|
new MyImageFrame(this, filename, image, GetContentScaleFactor());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MyFrame::OnUpdateNewFrameHiDPI(wxUpdateUIEvent& event)
|
||||||
|
{
|
||||||
|
event.Enable(GetContentScaleFactor() > 1);
|
||||||
|
}
|
||||||
|
|
||||||
void MyFrame::OnImageInfo( wxCommandEvent &WXUNUSED(event) )
|
void MyFrame::OnImageInfo( wxCommandEvent &WXUNUSED(event) )
|
||||||
{
|
{
|
||||||
wxImage image;
|
wxImage image;
|
||||||
|
Reference in New Issue
Block a user