diff options
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 |
