mirror of
https://github.com/fltk/fltk.git
synced 2026-05-30 21:25:30 +08:00
Fix minor default in Fl_Window::wait_for_expose() under Mac OS.
If the exposed window contains a sub-window the sub-window can disappear after having been drawn. This can be seen with the device demo completed with a wait_for_expose() call just after the main window show(). The fix applies wait_for_expose() recursively for all subwindows. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@11352 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
+12
-6
@@ -649,6 +649,7 @@ void Fl::remove_timeout(Fl_Timeout_Handler cb, void* data)
|
|||||||
- (void)recursivelySendToSubwindows:(SEL)sel;
|
- (void)recursivelySendToSubwindows:(SEL)sel;
|
||||||
- (void)setSubwindowFrame;
|
- (void)setSubwindowFrame;
|
||||||
- (void)checkSubwindowFrame;
|
- (void)checkSubwindowFrame;
|
||||||
|
- (void)waitForExpose;
|
||||||
- (NSRect)constrainFrameRect:(NSRect)frameRect toScreen:(NSScreen *)screen;
|
- (NSRect)constrainFrameRect:(NSRect)frameRect toScreen:(NSScreen *)screen;
|
||||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
|
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
|
||||||
- (NSPoint)convertBaseToScreen:(NSPoint)aPoint;
|
- (NSPoint)convertBaseToScreen:(NSPoint)aPoint;
|
||||||
@@ -769,6 +770,16 @@ void Fl::remove_timeout(Fl_Timeout_Handler cb, void* data)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-(void)waitForExpose
|
||||||
|
{
|
||||||
|
if ([self getFl_Window]->shown()) {
|
||||||
|
// this makes freshly created windows appear on the screen, if they are not there already
|
||||||
|
NSModalSession session = [NSApp beginModalSessionForWindow:self];
|
||||||
|
[NSApp runModalSession:session];
|
||||||
|
[NSApp endModalSession:session];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* With Mac OS 10.11 the green window button makes window fullscreen (covers system menu bar and dock).
|
/* With Mac OS 10.11 the green window button makes window fullscreen (covers system menu bar and dock).
|
||||||
When there are subwindows, they are by default constrained not to cover the menu bar
|
When there are subwindows, they are by default constrained not to cover the menu bar
|
||||||
(this is arguably a Mac OS bug).
|
(this is arguably a Mac OS bug).
|
||||||
@@ -3130,12 +3141,7 @@ void Fl_Window::size_range_() {
|
|||||||
|
|
||||||
void Fl_Window::wait_for_expose()
|
void Fl_Window::wait_for_expose()
|
||||||
{
|
{
|
||||||
if (shown()) {
|
[fl_xid(this) recursivelySendToSubwindows:@selector(waitForExpose)];
|
||||||
// this makes freshly created windows appear on the screen, if they are not there already
|
|
||||||
NSModalSession session = [NSApp beginModalSessionForWindow:i->xid];
|
|
||||||
[NSApp runModalSession:session];
|
|
||||||
[NSApp endModalSession:session];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
Reference in New Issue
Block a user