Do not use override redirect - causes windows to appear on all desktops

Enable non-rectangular windows and test with windows media player
This commit is contained in:
David Sundstrom 2012-05-15 10:21:01 -05:00
parent e97a2bc158
commit cfcabaefc2
1 changed files with 7 additions and 10 deletions

View File

@ -230,15 +230,6 @@ void xf_SetWindowStyle(xfInfo* xfi, xfWindow* window, uint32 style, uint32 ex_st
if ((ex_style & WS_EX_TOPMOST) || (ex_style & WS_EX_TOOLWINDOW)) if ((ex_style & WS_EX_TOPMOST) || (ex_style & WS_EX_TOOLWINDOW))
{ {
/*
* These include tool tips, dropdown menus, etc. These won't work
* correctly if the local window manager resizes or moves them.
* Set override redirect to prevent this from occurring.
*/
XSetWindowAttributes attrs;
attrs.override_redirect = True;
XChangeWindowAttributes(xfi->display, window->handle, CWOverrideRedirect, &attrs);
window->is_transient = true; window->is_transient = true;
xf_SetWindowUnlisted(xfi, window); xf_SetWindowUnlisted(xfi, window);
@ -666,6 +657,9 @@ void xf_SetWindowRects(xfInfo* xfi, xfWindow* window, RECTANGLE_16* rects, int n
int i; int i;
XRectangle* xrects; XRectangle* xrects;
if (nrects == 0)
return;
xrects = xmalloc(sizeof(XRectangle) * nrects); xrects = xmalloc(sizeof(XRectangle) * nrects);
for (i = 0; i < nrects; i++) for (i = 0; i < nrects; i++)
@ -688,6 +682,9 @@ void xf_SetWindowVisibilityRects(xfInfo* xfi, xfWindow* window, RECTANGLE_16* re
int i; int i;
XRectangle* xrects; XRectangle* xrects;
if (nrects == 0)
return;
xrects = xmalloc(sizeof(XRectangle) * nrects); xrects = xmalloc(sizeof(XRectangle) * nrects);
for (i = 0; i < nrects; i++) for (i = 0; i < nrects; i++)
@ -699,7 +696,7 @@ void xf_SetWindowVisibilityRects(xfInfo* xfi, xfWindow* window, RECTANGLE_16* re
} }
#ifdef WITH_XEXT #ifdef WITH_XEXT
//XShapeCombineRectangles(xfi->display, window->handle, ShapeBounding, 0, 0, xrects, nrects, ShapeSet, 0); XShapeCombineRectangles(xfi->display, window->handle, ShapeBounding, 0, 0, xrects, nrects, ShapeSet, 0);
#endif #endif
xfree(xrects); xfree(xrects);