diff options
| author | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2020-02-09 11:17:49 +0100 |
|---|---|---|
| committer | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2020-02-09 11:17:49 +0100 |
| commit | 707b81b626bb7f11b2fbb3908d31195cb75199e3 (patch) | |
| tree | 1aa305390f2e566f9bfddcae1f4e1fa281b876ed /src | |
| parent | 85256b908fca6450ccf3aee11139b01825f01bc1 (diff) | |
Restore macOS capacity to turn window fullscreen encompassing several screens.
Diffstat (limited to 'src')
| -rw-r--r-- | src/Fl_cocoa.mm | 21 |
1 files changed, 19 insertions, 2 deletions
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 |
