mirror of
https://github.com/brl/mutter.git
synced 2024-11-25 01:20:42 -05:00
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:
parent
a88f44ea64
commit
6ac67f80a6
16
ChangeLog
16
ChangeLog
@ -1,3 +1,19 @@
|
||||
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.
|
||||
|
||||
2003-11-15 Rob Adams <readams@readams.net>
|
||||
|
||||
* src/window.c (update_net_wm_type): don't set window->type_atom
|
||||
|
13
src/frame.c
13
src/frame.c
@ -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);
|
||||
|
17
src/ui.c
17
src/ui.c
@ -154,7 +154,8 @@ meta_ui_get_frame_geometry (MetaUI *ui,
|
||||
|
||||
Window
|
||||
meta_ui_create_frame_window (MetaUI *ui,
|
||||
Display *xdisplay,
|
||||
Display *xdisplay,
|
||||
Visual *xvisual,
|
||||
gint x,
|
||||
gint y,
|
||||
gint width,
|
||||
@ -166,12 +167,22 @@ meta_ui_create_frame_window (MetaUI *ui,
|
||||
GdkWindowAttr attrs;
|
||||
gint attributes_mask;
|
||||
GdkWindow *window;
|
||||
GdkVisual *visual;
|
||||
GdkColormap *cmap = gdk_screen_get_default_colormap (screen);
|
||||
|
||||
/* Default depth/visual handles clients with weird visuals; they can
|
||||
* always be children of the root depth/visual obviously, but
|
||||
* e.g. DRI games can't be children of a parent that has the same
|
||||
* visual as the client.
|
||||
*/
|
||||
if (!xvisual)
|
||||
visual = gdk_screen_get_system_visual (screen);
|
||||
else
|
||||
{
|
||||
visual = gdk_x11_screen_lookup_visual (screen,
|
||||
XVisualIDFromVisual (xvisual));
|
||||
cmap = gdk_colormap_new (visual, FALSE);
|
||||
}
|
||||
|
||||
attrs.title = NULL;
|
||||
|
||||
@ -185,8 +196,8 @@ meta_ui_create_frame_window (MetaUI *ui,
|
||||
attrs.x = x;
|
||||
attrs.y = y;
|
||||
attrs.wclass = GDK_INPUT_OUTPUT;
|
||||
attrs.visual = gdk_screen_get_system_visual (screen);
|
||||
attrs.colormap = gdk_screen_get_default_colormap (screen);
|
||||
attrs.visual = visual;
|
||||
attrs.colormap = cmap;
|
||||
attrs.window_type = GDK_WINDOW_CHILD;
|
||||
attrs.cursor = NULL;
|
||||
attrs.wmclass_name = NULL;
|
||||
|
Loading…
Reference in New Issue
Block a user