From 12b6702394e8e25e9aeb5d0ee33d050e4e220628 Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Tue, 16 Dec 2025 12:16:02 +0100 Subject: [PATCH] =?UTF-8?q?Windows:=20Fix=20"If=20app=20appears=20on=20non?= =?UTF-8?q?-active=20screen=20=E2=80=A6,=20window=20resizes"=20(#259)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Fl_win32.cxx | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) 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);