diff options
author | B Stack <bgstack15@gmail.com> | 2019-09-17 08:06:14 -0400 |
---|---|---|
committer | B Stack <bgstack15@gmail.com> | 2019-09-17 08:06:14 -0400 |
commit | ca250bf14979d359a82d5baf11ae9587d5605594 (patch) | |
tree | fc3041d022fee1abfc6df2ffd903fd7662b0b0d9 /wx+/dc.h | |
parent | add upstream 10.15 (diff) | |
download | FreeFileSync-ca250bf14979d359a82d5baf11ae9587d5605594.tar.gz FreeFileSync-ca250bf14979d359a82d5baf11ae9587d5605594.tar.bz2 FreeFileSync-ca250bf14979d359a82d5baf11ae9587d5605594.zip |
add upstream 10.16
Diffstat (limited to 'wx+/dc.h')
-rw-r--r-- | wx+/dc.h | 25 |
1 files changed, 14 insertions, 11 deletions
@@ -12,24 +12,25 @@ #include <zen/basic_math.h> #include <wx/dcbuffer.h> //for macro: wxALWAYS_NATIVE_DOUBLE_BUFFER #include <wx/dcscreen.h> + #include <gtk/gtk.h> namespace zen { /* - 1. wxDCClipper does *not* stack: another fix for yet another poor wxWidgets implementation + 1. wxDCClipper does *not* stack: another fix for yet another poor wxWidgets implementation - class RecursiveDcClipper - { - RecursiveDcClipper(wxDC& dc, const wxRect& r) - }; + class RecursiveDcClipper + { + RecursiveDcClipper(wxDC& dc, const wxRect& r) + }; - 2. wxAutoBufferedPaintDC skips one pixel on left side when RTL layout is active: a fix for a poor wxWidgets implementation + 2. wxAutoBufferedPaintDC skips one pixel on left side when RTL layout is active: a fix for a poor wxWidgets implementation - class BufferedPaintDC - { - BufferedPaintDC(wxWindow& wnd, std::unique_ptr<wxBitmap>& buffer) - }; + class BufferedPaintDC + { + BufferedPaintDC(wxWindow& wnd, std::unique_ptr<wxBitmap>& buffer) + }; */ @@ -50,10 +51,12 @@ Standard DPI: inline int fastFromDIP(int d) //like wxWindow::FromDIP (but tied to primary monitor and buffered) { - #ifdef wxHAVE_DPI_INDEPENDENT_PIXELS //pulled from wx/window.h: https://github.com/wxWidgets/wxWidgets/blob/master/include/wx/window.h#L2029 return d; //e.g. macOS, GTK3 #else //https://github.com/wxWidgets/wxWidgets/blob/master/src/common/wincmn.cpp#L2865 + static_assert(GTK_MAJOR_VERSION == 2); + //GTK2 doesn't properly support high DPI: https://freefilesync.org/forum/viewtopic.php?t=6114 + //=> requires general fix at wxWidgets-level assert(wxTheApp); //only call after wxWidgets was initalized! static const int dpiY = wxScreenDC().GetPPI().y; //perf: buffering for calls to ::GetDeviceCaps() needed!? const int defaultDpi = 96; |