From 0e404ab7d738de85f4f4023d2eb32a9b6ab1a854 Mon Sep 17 00:00:00 2001 From: Manolo Gouy Date: Sun, 28 Aug 2016 15:37:45 +0000 Subject: [PATCH] Fix slight mis-scaling when pasting Enhanced metafile from clipboard git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11904 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/Fl_win32.cxx | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/Fl_win32.cxx b/src/Fl_win32.cxx index f0229919f..ba68ec0ac 100644 --- a/src/Fl_win32.cxx +++ b/src/Fl_win32.cxx @@ -763,14 +763,11 @@ void Fl_WinAPI_System_Driver::paste(Fl_Widget &receiver, int clipboard, const ch HDC hdc = GetDC(NULL); // get unit correspondance between .01 mm and screen pixels int hmm = GetDeviceCaps(hdc, HORZSIZE); int hdots = GetDeviceCaps(hdc, HORZRES); - int vmm = GetDeviceCaps(hdc, VERTSIZE); - int vdots = GetDeviceCaps(hdc, VERTRES); ReleaseDC(NULL, hdc); - float factorw = (100.f * hmm) / hdots; - float factorh = (100.f * vmm) / vdots + 0.5f; - width = (int)(width/factorw); height = (int)(height/factorh); // convert to screen pixel unit + float factor = (100.f * hmm) / hdots; float scaling = Fl_WinAPI_Screen_Driver::desktop_scaling_factor(); - width *= scaling; height *= scaling; + width = int(width * scaling / factor); // convert to screen pixel unit + height = int(height * scaling / factor); RECT rect = {0, 0, width, height}; Fl_Offscreen off = fl_create_offscreen(width, height); fl_begin_offscreen(off);