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
This commit is contained in:
parent
87d28f5eab
commit
0e404ab7d7
@ -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
|
HDC hdc = GetDC(NULL); // get unit correspondance between .01 mm and screen pixels
|
||||||
int hmm = GetDeviceCaps(hdc, HORZSIZE);
|
int hmm = GetDeviceCaps(hdc, HORZSIZE);
|
||||||
int hdots = GetDeviceCaps(hdc, HORZRES);
|
int hdots = GetDeviceCaps(hdc, HORZRES);
|
||||||
int vmm = GetDeviceCaps(hdc, VERTSIZE);
|
|
||||||
int vdots = GetDeviceCaps(hdc, VERTRES);
|
|
||||||
ReleaseDC(NULL, hdc);
|
ReleaseDC(NULL, hdc);
|
||||||
float factorw = (100.f * hmm) / hdots;
|
float factor = (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 scaling = Fl_WinAPI_Screen_Driver::desktop_scaling_factor();
|
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};
|
RECT rect = {0, 0, width, height};
|
||||||
Fl_Offscreen off = fl_create_offscreen(width, height);
|
Fl_Offscreen off = fl_create_offscreen(width, height);
|
||||||
fl_begin_offscreen(off);
|
fl_begin_offscreen(off);
|
||||||
|
Loading…
Reference in New Issue
Block a user