diff options
| author | Manolo Gouy <Manolo> | 2017-07-30 16:21:57 +0000 |
|---|---|---|
| committer | Manolo Gouy <Manolo> | 2017-07-30 16:21:57 +0000 |
| commit | c4e04e4c7f446464ef65382cf10bc13417563b3b (patch) | |
| tree | f012307f02f8fba85f406f533908f63f7b15ea1c /src/Fl_win32.cxx | |
| parent | 5a7a954ebd1005b30bbe48d84e4291c66ad30252 (diff) | |
Improve rescaling when window moved across screens: make sure center stays on new screen.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12367 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/Fl_win32.cxx')
| -rw-r--r-- | src/Fl_win32.cxx | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/Fl_win32.cxx b/src/Fl_win32.cxx index cc58336b1..ebca3c57d 100644 --- a/src/Fl_win32.cxx +++ b/src/Fl_win32.cxx @@ -586,7 +586,8 @@ int Fl_WinAPI_Screen_Driver::get_mouse_unscaled(int &mx, int &my) { POINT p; GetCursorPos(&p); mx = p.x; my = p.y; - return screen_num_unscaled(mx, my); + int screen = screen_num_unscaled(mx, my); + return screen >= 0 ? screen : 0; } int Fl_WinAPI_Screen_Driver::get_mouse(int &x, int &y) { @@ -1460,11 +1461,12 @@ static LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPar if (nx & 0x8000) nx -= 65536; if (ny & 0x8000) ny -= 65536; //fprintf(LOG,"WM_MOVE position(%d,%d) s=%.2f\n",int(nx/scale),int(ny/scale),scale); -// detect when window changes screen +// detect when window centre changes screen Fl_WinAPI_Screen_Driver *sd = (Fl_WinAPI_Screen_Driver*)Fl::screen_driver(); - int news = sd->screen_num_unscaled(nx + window->w()*scale/2, ny + window->h()*scale/2); Fl_WinAPI_Window_Driver *wd = Fl_WinAPI_Window_Driver::driver(window); int olds = wd->screen_num(); + int news = sd->screen_num_unscaled(nx + window->w()*scale/2, ny + window->h()*scale/2); + if (news == -1) news = olds; float s = sd->scale(news); //fprintf(LOG,"WM_MOVE olds=%d(%.2f) news=%d(%.2f) busy=%d\n",olds, sd->scale(olds),news, s, Fl_WinAPI_Window_Driver::data_for_resize_window_between_screens_.busy);fflush(LOG); if (olds != news) { |
