{
bool allMonitors = !strcasecmp(fullScreenMode, "all");
bool selectedMonitors = !strcasecmp(fullScreenMode, "selected");
+ int top, bottom, left, right;
if (not selectedMonitors and not allMonitors) {
- int n = Fl::screen_num(x(), y(), w(), h());
- fullscreen_screens(n, n, n, n);
+ top = bottom = left = right = Fl::screen_num(x(), y(), w(), h());
} else {
- int top, bottom, left, right;
int top_y, bottom_y, left_x, right_x;
int sx, sy, sw, sh;
}
}
- fullscreen_screens(top, bottom, left, right);
}
+#ifdef __APPLE__
+ // This is a workaround for a bug in FLTK, see: https://github.com/fltk/fltk/pull/277
+ int savedLevel;
+ savedLevel = cocoa_get_level(this);
+#endif
+ fullscreen_screens(top, bottom, left, right);
+#ifdef __APPLE__
+ // This is a workaround for a bug in FLTK, see: https://github.com/fltk/fltk/pull/277
+ cocoa_set_level(this, savedLevel);
+#endif
if (!fullscreen_active())
fullscreen();
static bool captured = false;
+int cocoa_get_level(Fl_Window *win)
+{
+ NSWindow *nsw;
+ nsw = (NSWindow*)fl_xid(win);
+ return [nsw level];
+}
+
+void cocoa_set_level(Fl_Window *win, int level)
+{
+ NSWindow *nsw;
+ nsw = (NSWindow*)fl_xid(win);
+ [nsw setLevel:level];
+}
+
int cocoa_capture_displays(Fl_Window *win)
{
NSWindow *nsw;