Inherit visual from frame window so that metacity will work with the new

2003-11-15  Rob Adams  <readams@readams.net>

	Inherit visual from frame window so that metacity will work with
	the new compositing manager extension work by Keith on
	freedesktop.org, so that ARGB windows can be full
	alpha-transparent without a metacity frame getting drawn in the
	background.  In the long term, we need to actually set alpha
	values when drawing the frame so that it will really work; this is
	a stopgap solution.  Patch from Keith Packard; see Bug 126875.

	* src/frame.c (meta_window_ensure_frame): pass client visual to
	frame.

	* src/ui.[ch] (meta_ui_create_frame_window): add new xvisual
	parameter and use it to create new window.
This commit is contained in:
Rob Adams
2003-11-16 04:19:18 +00:00
committed by Rob Adams
parent a88f44ea64
commit 6ac67f80a6
4 changed files with 42 additions and 7 deletions

View File

@ -39,6 +39,7 @@ meta_window_ensure_frame (MetaWindow *window)
{
MetaFrame *frame;
XSetWindowAttributes attrs;
Visual *visual;
if (window->frame)
return;
@ -78,10 +79,16 @@ meta_window_ensure_frame (MetaWindow *window)
* visual as the client.
*/
visual = 0;
/* XXX special case for depth 32 windows (assumed to be ARGB) */
if (window->depth == 32)
visual = window->xvisual;
frame->xwindow = meta_ui_create_frame_window (window->screen->ui,
window->display->xdisplay,
frame->rect.x,
frame->rect.y,
window->display->xdisplay,
visual,
frame->rect.x,
frame->rect.y,
frame->rect.width,
frame->rect.height,
frame->window->screen->number);