diff options
Diffstat (limited to 'src/Fl_grab.cxx')
| -rw-r--r-- | src/Fl_grab.cxx | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/Fl_grab.cxx b/src/Fl_grab.cxx index b16ee536f..b6d49f8a5 100644 --- a/src/Fl_grab.cxx +++ b/src/Fl_grab.cxx @@ -48,7 +48,12 @@ extern HWND fl_capture; #ifdef __APPLE__ // MacOS Carbon does not seem to have a mechanism to grab the mouse pointer -extern WindowRef fl_capture; +#ifdef __APPLE_COCOA__ +extern void MACsetkeywindow(void *nsw); +extern void *fl_capture; +#else +extern Window fl_capture; +#endif #endif void Fl::grab(Fl_Window* win) { @@ -58,8 +63,13 @@ void Fl::grab(Fl_Window* win) { SetActiveWindow(fl_capture = fl_xid(first_window())); SetCapture(fl_capture); #elif defined(__APPLE__) - fl_capture = fl_xid( first_window() ); - SetUserFocusWindow( fl_capture ); +#ifdef __APPLE_COCOA__ + fl_capture = Fl_X::i(first_window())->xid; + MACsetkeywindow(fl_capture); +#else + fl_capture = fl_xid( first_window() ); + SetUserFocusWindow( fl_capture ); +#endif #else XGrabPointer(fl_display, fl_xid(first_window()), @@ -87,7 +97,9 @@ void Fl::grab(Fl_Window* win) { ReleaseCapture(); #elif defined(__APPLE__) fl_capture = 0; +#ifndef __APPLE_COCOA__ SetUserFocusWindow( (WindowRef)kUserFocusAuto ); +#endif #else XUngrabKeyboard(fl_display, fl_event_time); XUngrabPointer(fl_display, fl_event_time); |
