summaryrefslogtreecommitdiff
path: root/miext/rootless/rootlessWindow.c
diff options
context:
space:
mode:
authorJeremy Huddleston <jeremyhu@freedesktop.org>2008-04-08 17:02:56 -0700
committerJeremy Huddleston <jeremyhu@freedesktop.org>2008-04-08 17:03:18 -0700
commit3f51f493b6daf2464e6c2ba5a924219b88a9e57e (patch)
treecc906272192effaa60d04c6a43cfb27afa34be76 /miext/rootless/rootlessWindow.c
parent08073862f8c4e1219b6459708ffd28e2bc35885f (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/rootless/rootlessWindow.c')
-rw-r--r--miext/rootless/rootlessWindow.c14
1 files changed, 8 insertions, 6 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);
}
/*