From 707b81b626bb7f11b2fbb3908d31195cb75199e3 Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Sun, 9 Feb 2020 11:17:49 +0100 Subject: Restore macOS capacity to turn window fullscreen encompassing several screens. --- src/Fl_cocoa.mm | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/Fl_cocoa.mm b/src/Fl_cocoa.mm index e669cbb21..5d789f032 100644 --- a/src/Fl_cocoa.mm +++ b/src/Fl_cocoa.mm @@ -3163,8 +3163,25 @@ void Fl_Cocoa_Window_Driver::fullscreen_on() { FLWindow *nswin = fl_xid(pWindow); [nswin setStyleMask:NSBorderlessWindowMask]; // 10.6 [nswin setLevel:NSStatusWindowLevel]; - int X,Y,W,H; - Fl::screen_xywh(X, Y, W, H, x(), y(), w(), h()); + int sx, sy, sw, sh, X, Y, W, H; + int top = fullscreen_screen_top(); + int bottom = fullscreen_screen_bottom(); + int left = fullscreen_screen_left(); + int right = fullscreen_screen_right(); + if ((top < 0) || (bottom < 0) || (left < 0) || (right < 0)) { + top = Fl::screen_num(x(), y(), w(), h()); + bottom = top; + left = top; + right = top; + } + Fl::screen_xywh(sx, sy, sw, sh, top); + Y = sy; + Fl::screen_xywh(sx, sy, sw, sh, bottom); + H = sy + sh - Y; + Fl::screen_xywh(sx, sy, sw, sh, left); + X = sx; + Fl::screen_xywh(sx, sy, sw, sh, right); + W = sx + sw - X; pWindow->resize(X, Y, W, H); } else #endif -- cgit v1.2.3