bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#9181: 24.0.50; Alpha transparency no longer works


From: David De La Harpe Golden
Subject: bug#9181: 24.0.50; Alpha transparency no longer works
Date: Fri, 29 Jul 2011 00:07:47 +0100
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.18) Gecko/20110626 Icedove/3.1.11

On 28/07/11 19:16, Luka Novsak wrote:
> Yes, I'm running xcompmgr; alpha transparency is working fine in other
> applications.
>
> I've noticed a peculiar detail--this problem does not occur when
> running X without a window manager, say if I only run xcompmgr and
> emacs in my X session. I've tried this with multiple window managers,
> so it doesn't seem to be the fault of either one.

Oh yeah... xcompmgr only looks for _NET_WM_WINDOW_OPACITY on truly toplevel (i.e. direct children of root window) windows. It's working when there's no window manager, because then emacs' window is a direct child of the root window. But in a typical window manager case, emacs' window is of course reparented under the window manager's frame window, so emacs setting the property on its own window (with the other _NET_WM properties) doesn't work for xcompmgr. It may be working for your other apps depending on how you or they set their opacity (using "transset" will set the property on the window manager frame, for example).

However, note that the current code _does_ work when using now-typical combined compositing window managers rather than xcompmgr (hence my works-for-me), because they, as a matter of current practice, _do_ look for the property on the application windows they're managing, which makes sense really, reasonable place for it with all the other similar properties.

*** So why _was_ it working? emacs used to special-case in xterm.c/x_set_frame_alpha() that set the property on the parent window of the emacs window rather than the emacs window itself [1], it got removed in trunk rev 104095 to fix bug #8608 (Jan cc'd)

I for one am not at all sure restoring it is the right thing to do, it seems problematic. Emacs doesn't notionally "own" the window manager frame around it, and some reparenting window managers could actually use more than one level of window between the root and the app window too anyway. (I don't think reparenting window managers actually do typically copy the property up in practice as suggested under #8608, either, I'm afraid. That would be rather unique handling of the property AFAIK)

So maybe setting the property in both places (either optionally or always) is the best we can do, at least if we want to support xcompmgr.








reply via email to

[Prev in Thread] Current Thread [Next in Thread]