diff options
| author | Manolo Gouy <Manolo> | 2015-08-11 11:47:21 +0000 |
|---|---|---|
| committer | Manolo Gouy <Manolo> | 2015-08-11 11:47:21 +0000 |
| commit | 1e6bc1c73aa2a080aa0b50525d4edac1e80f7861 (patch) | |
| tree | 1fec492d0c4da664f57e38b18dd8a25cb884026f /src | |
| parent | e9888e09c59dfde543d97a487c65a4961c7b30bd (diff) | |
Improved Mac OS implementation of Fl_Window::wait_for_expose().
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10828 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src')
| -rw-r--r-- | src/Fl_Window.cxx | 7 | ||||
| -rw-r--r-- | src/Fl_cocoa.mm | 12 |
2 files changed, 10 insertions, 9 deletions
diff --git a/src/Fl_Window.cxx b/src/Fl_Window.cxx index 50bc65e94..134d886de 100644 --- a/src/Fl_Window.cxx +++ b/src/Fl_Window.cxx @@ -401,6 +401,8 @@ void Fl_Window::free_icons() { #endif } + +#ifndef __APPLE__ /** Waits for the window to be displayed after calling show(). @@ -462,14 +464,11 @@ void Fl_Window::free_icons() { void Fl_Window::wait_for_expose() { if (!shown()) return; -#ifdef __APPLE__ - Fl_X::do_wait_for_expose(); -#else while (!i || i->wait_for_expose) { Fl::wait(); } -#endif } +#endif // ! __APPLE__ // // End of "$Id$". diff --git a/src/Fl_cocoa.mm b/src/Fl_cocoa.mm index 9c91a79f8..1c10d659b 100644 --- a/src/Fl_cocoa.mm +++ b/src/Fl_cocoa.mm @@ -3085,11 +3085,13 @@ void Fl_Window::size_range_() { } } -void Fl_X::do_wait_for_expose() -{ // this will make freshly created windows appear on the screen - [NSApp nextEventMatchingMask:NSAnyEventMask untilDate:nil inMode:NSDefaultRunLoopMode dequeue:NO]; - if (fl_mac_os_version >= 101100) { // this extra message seems necessary with 10.11 - [NSApp nextEventMatchingMask:NSAnyEventMask untilDate:nil inMode:NSDefaultRunLoopMode dequeue:NO]; +void Fl_Window::wait_for_expose() +{ + if (shown()) { + // 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]; } } |
