From e37006f259776aa797c5b2ea82dad1925516bb04 Mon Sep 17 00:00:00 2001 From: Manolo Gouy Date: Mon, 31 Oct 2011 19:44:55 +0000 Subject: Fix STR #2759: Fl_Window::hotspot() now positions a new window correctly on a secondary display. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9163 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/Fl_Window_hotspot.cxx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/Fl_Window_hotspot.cxx b/src/Fl_Window_hotspot.cxx index bbb5d6a15..626ad8885 100644 --- a/src/Fl_Window_hotspot.cxx +++ b/src/Fl_Window_hotspot.cxx @@ -32,7 +32,7 @@ void Fl_Window::hotspot(int X, int Y, int offscreen) { // stays on the screen, if possible. if (!offscreen) { int scr_x, scr_y, scr_w, scr_h; - Fl::screen_xywh(scr_x, scr_y, scr_w, scr_h); + Fl::screen_work_area(scr_x, scr_y, scr_w, scr_h); int top = 0; int left = 0; @@ -64,10 +64,10 @@ void Fl_Window::hotspot(int X, int Y, int offscreen) { #endif } // now insure contents are on-screen (more important than border): - if (X+w()+right > scr_w-scr_x) X = scr_w-scr_x-right-w(); - if (X-left < scr_x) X = left; - if (Y+h()+bottom > scr_h-scr_y) Y = scr_h-scr_y-bottom-h(); - if (Y-top < scr_y) Y = top; + if (X+w()+right > scr_w+scr_x) X = scr_w+scr_x-right-w(); + if (X-left < scr_x) X = left + scr_x; + if (Y+h()+bottom > scr_h+scr_y) Y = scr_h+scr_y-bottom-h(); + if (Y-top < scr_y) Y = top + scr_y; // make sure that we will force this position if (X==x()) x(X-1); } -- cgit v1.2.3