GNOME Bugzilla – Bug 310080
metacity should support the opacity hint [PATCH]
Last modified: 2006-04-25 18:24:41 UTC
metacity's compositor should draw windows that set the opacity property with the right transparency level. The patch that follows depends on first applying the "do not generate buffer_picture all the time" patch from #309152, and the code is fast only if the other patch from that bug is also applied. ("do not draw on idle, just on timeout")
Created attachment 48993 [details] [review] support the opacity hint for some reason the frame is the receiver, so I had to add a direct call from display.c for some other unknown reason, an XSelectInput is necessary on MapNotify (taken from xcompmgr.c)
Created attachment 49074 [details] [review] also allow non-toplevel windows The last patch didn't take into account non-toplevel windows (for which there's a meta_compositor_window but not a meta_window). This one takes both into account, and handles both cases of frame_was_receiver. One problem left is that the window appears for a split second when the opacity hint is set to 0 before the window is mapped (shouldn't appear at all). Will try to fix that.
Created attachment 49088 [details] [review] also allow non-toplevel-windows This one actually compiles, sorry about that, when I test-compiled the last one the composite support was not enabled.
Created attachment 49097 [details] [review] last patch, I promise ;) Fixes the problem described on comment #2 by moving the XSelectInput() call to process_create() and forwarding the opacity property set on the inner window (if any) to our frame, also on process_create(). this time, all compiled and tested. Honest!
Reassigning to the compositor component so that Soeren can find these easier. (Note that the version of compositor.[ch] in HEAD will likely just be blown away in favor of the work Soeren has been doing on the branch)
The OPACITY hint is not in the EWMH, so I won't support in metacity. Also I don't think the OPACITY hint really makes sense as more than a really short-sighted fix, so I intend to fight it if it comes up on the wm-spec list.