diff --git a/src/Fl_win32.cxx b/src/Fl_win32.cxx index e7539737f..8202b8019 100644 --- a/src/Fl_win32.cxx +++ b/src/Fl_win32.cxx @@ -2168,9 +2168,14 @@ void Fl_WinAPI_Window_Driver::makeWindow() { Fl_Window *hint = Fl::first_window(); if (hint) { nscreen = Fl_Window_Driver::driver(hint->top_window())->screen_num(); - } else { - int mx, my; - nscreen = Fl::screen_driver()->get_mouse(mx, my); + } else if (Fl::screen_driver()->screen_count() > 1 ) { + // put the new window on same screen as mouse + int mx, my, X, Y, W, H; + nscreen = Fl::screen_driver()->get_mouse(mx, my); + Fl::screen_xywh(X, Y, W, H, nscreen); + if (mx + w->w() >= X + W) mx = X + W - w->w(); + if (my + w->h() >= Y + H) my = Y + H - w->h(); + w->position(mx, my); } } Fl_Window_Driver::driver(w)->screen_num(nscreen);