summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2020-02-09 11:17:49 +0100
committerManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2020-02-09 11:17:49 +0100
commit707b81b626bb7f11b2fbb3908d31195cb75199e3 (patch)
tree1aa305390f2e566f9bfddcae1f4e1fa281b876ed /src
parent85256b908fca6450ccf3aee11139b01825f01bc1 (diff)
Restore macOS capacity to turn window fullscreen encompassing several screens.
Diffstat (limited to 'src')
-rw-r--r--src/Fl_cocoa.mm21
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