diff options
author | Jeremy Huddleston <jeremyhu@freedesktop.org> | 2008-04-08 17:02:56 -0700 |
---|---|---|
committer | Jeremy Huddleston <jeremyhu@freedesktop.org> | 2008-04-08 17:03:18 -0700 |
commit | 3f51f493b6daf2464e6c2ba5a924219b88a9e57e (patch) | |
tree | cc906272192effaa60d04c6a43cfb27afa34be76 /miext | |
parent | 08073862f8c4e1219b6459708ffd28e2bc35885f (diff) |
XQuartz: Fix issue where clicking on an X11 window might send that event to an X11 window in another space.
(cherry picked from commit df21312c8b0e9ef0c809bfc57cdf64f27db0d8a7)
(cherry picked from commit 2d4194a8d124e7a9c7cd1b83635ba6957aa4ae1c)
Diffstat (limited to 'miext')
-rw-r--r-- | miext/rootless/rootlessWindow.c | 14 | ||||
-rw-r--r-- | miext/rootless/rootlessWindow.h | 4 |
2 files changed, 9 insertions, 9 deletions
diff --git a/miext/rootless/rootlessWindow.c b/miext/rootless/rootlessWindow.c index 0dad44a99..17fe69085 100644 --- a/miext/rootless/rootlessWindow.c +++ b/miext/rootless/rootlessWindow.c @@ -117,12 +117,10 @@ rootlessHasRoot (ScreenPtr pScreen) } void -RootlessNativeWindowStateChanged (xp_window_id id, unsigned int state) +RootlessNativeWindowStateChanged (WindowPtr pWin, unsigned int state) { - WindowPtr pWin; RootlessWindowRec *winRec; - pWin = xprGetXWindow (id); if (pWin == NULL) return; winRec = WINREC (pWin); @@ -130,7 +128,7 @@ RootlessNativeWindowStateChanged (xp_window_id id, unsigned int state) winRec->is_offscreen = ((state & XP_WINDOW_STATE_OFFSCREEN) != 0); winRec->is_obscured = ((state & XP_WINDOW_STATE_OBSCURED) != 0); - // pWin->rootlessUnhittable = winRec->is_offscreen; + pWin->rootlessUnhittable = winRec->is_offscreen; } void @@ -143,7 +141,7 @@ RootlessNativeWindowMoved (WindowPtr pWin) ClientPtr client; RootlessWindowRec *winRec = WINREC(pWin); - if (xp_get_window_bounds (winRec->wid, &bounds) != Success) return; + if (xp_get_window_bounds ((xp_window_id)winRec->wid, &bounds) != Success) return; sx = dixScreenOrigins[pWin->drawable.pScreen->myNum].x + darwinMainScreenX; sy = dixScreenOrigins[pWin->drawable.pScreen->myNum].y + darwinMainScreenY; @@ -1426,6 +1424,10 @@ RootlessReparentWindow(WindowPtr pWin, WindowPtr pPriorParent) pTopWin = TopLevelParent(pWin); assert(pTopWin != pWin); + + pWin->rootlessUnhittable = FALSE; + + DeleteProperty (pWin, xa_native_window_id ()); if (WINREC(pTopWin) != NULL) { /* We're screwed. */ @@ -1482,7 +1484,7 @@ RootlessFlushWindowColormap (WindowPtr pWin) wc.colormap = RootlessColormapCallback; wc.colormap_data = pWin->drawable.pScreen; - configure_window (winRec->wid, XP_COLORMAP, &wc); + configure_window ((xp_window_id)winRec->wid, XP_COLORMAP, &wc); } /* diff --git a/miext/rootless/rootlessWindow.h b/miext/rootless/rootlessWindow.h index 055589e79..45bc4c202 100644 --- a/miext/rootless/rootlessWindow.h +++ b/miext/rootless/rootlessWindow.h @@ -36,8 +36,6 @@ #include "rootlessCommon.h" -#include <Xplugin.h> - Bool RootlessCreateWindow(WindowPtr pWin); Bool RootlessDestroyWindow(WindowPtr pWin); @@ -57,6 +55,6 @@ void RootlessResizeWindow(WindowPtr pWin, int x, int y, void RootlessReparentWindow(WindowPtr pWin, WindowPtr pPriorParent); void RootlessChangeBorderWidth(WindowPtr pWin, unsigned int width); void RootlessNativeWindowMoved (WindowPtr pWin); -void RootlessNativeWindowStateChanged (xp_window_id id, unsigned int state); +void RootlessNativeWindowStateChanged (WindowPtr pWin, unsigned int state); #endif |