When several screens, allow creation of window on secondary screen by Fl_Window::Fl_Window(x,y,w,h,title).

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9134 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
Manolo Gouy 2011-10-18 11:46:29 +00:00
parent 3c8a18a575
commit 55b744c225

View File

@ -577,7 +577,21 @@ static void do_timer(CFRunLoopTimerRef timer, void* data)
contentRect:(NSRect)rect
styleMask:(NSUInteger)windowStyle
{
self = [super initWithContentRect:rect styleMask:windowStyle backing:NSBackingStoreBuffered defer:NO];
NSScreen *gd = nil; // gd will point to the screen containing the bottom-left of rect
NSArray *a = [NSScreen screens];
for(NSUInteger i = 0; i < [a count]; i++) {
NSRect r = [[a objectAtIndex:i] frame];
if (rect.origin.x >= r.origin.x && rect.origin.x <= r.origin.x + r.size.width
&& rect.origin.y >= r.origin.y && rect.origin.y <= r.origin.y + r.size.height) {
gd = [a objectAtIndex:i];
rect.origin.x -= r.origin.x; // express rect relatively to gd's origin
rect.origin.y -= r.origin.y;
break;
}
}
// attempt to create the window on screen gd
self = [super initWithContentRect:rect styleMask:windowStyle backing:NSBackingStoreBuffered defer:NO
screen:gd];
if (self) {
w = flw;
containsGLsubwindow = NO;