diff options
-rw-r--r-- | hw/xquartz/X11Application.m | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/hw/xquartz/X11Application.m b/hw/xquartz/X11Application.m index 6e0b16e3b..c1a519436 100644 --- a/hw/xquartz/X11Application.m +++ b/hw/xquartz/X11Application.m @@ -959,6 +959,22 @@ static void send_nsevent(NSEvent *e) { pDev = darwinTabletCurrent; } + if(!quartzServerVisible) { + xp_window_id wid; + + /* Sigh. Need to check that we're really over one of + * our windows. (We need to receive pointer events while + * not in the foreground, and the only way to do that + * right now is to ask for _all_ pointer events..) + */ + + wid = 0; + xp_find_window(pointer_x, pointer_y, 0, &wid); + + if (wid == 0) + return; + } + DarwinSendPointerEvents(pDev, ev_type, ev_button, pointer_x, pointer_y, pressure, tilt_x, tilt_y); |