Re: pseudo transparency
- From: Sasha Vasko <sasha aftercode net>
- To: Olivier Chapuis <olivier chapuis free fr>
- Cc: wm-spec-list gnome org
- Subject: Re: pseudo transparency
- Date: Fri, 11 Jan 2002 16:42:11 -0600
Olivier Chapuis wrote:
On Fri, Jan 11, 2002 at 10:16:48AM -0600, Sasha Vasko wrote:
<snip>
set by the window manager. It seems to me that this leads to
a bad hack. So I suggest to add a new window state:
_NET_WM_STATE_PARENTRELATIVE_BACKGROUND indicates that the window
use the ParentRelative pixmap for its background. The window manager
should set the frame window(s) background accordingly.
The problem is that some window managers may not be able to set frame's 
background to ParentRelative. For example window manager may need to use 
frame's window to actually draw some decorations on it, or draw 
interwidget spacing with some specific color. Therefore in addition to 
the property on client window - there needs to be a property set by 
window manager that informs everybody that it could actually support it, 
so that application can choose alternative method.
The _NET_SUPPORTED atom indicate which _NET_WM_STATE states the wm
can support. So just adding _NET_WM_STATE_PARENTRELATIVE_BACKGROUND to
the list of the net wm state will provide the information needed.
Nope, that won't work. when atom is not in _NET_SUPPORTED it only means 
that window manager does not know how to set frame to ParentRelative for 
windows that desire it. Typical fall back in that case on the part of 
the app will be to try and set frame's background themselves. What we 
need is the property that would tell apps to stay away from messing with 
frame's background altogether. Something like:
_NET_FRAME_BACKGROUND_PROTECTED
About the E method. Here there is a de facto standard which
uses the ESETROOT_PMAP_ID and the _XROOTPMAP_ID atoms. Maybe,
<snip>
The more flexible approach would be to use X Selections. WM-client 
protocol in this case would be something like :
<snip>
Do you think such (interesting) methods would be fast enough
to allow window move?
It will no be slower and maybe even faster then what E method. But thing 
is that you don't want windows to referesh their background too often. 
It adds way too much CPU load, and slows down interactive actions to a 
crawl. CPU load will be similar in both cases, but since what I propose 
allows for root image to be already in clients memory - you avoid 
additional processing involved in transfering XImage from Pixmap in 
order to be tinted.
This method does something more important - it protects shared resource 
from possible misuse by the apps. For example with E method, app may go 
and destroy root pixmap, causing everything else to die horrible death.
In fact my comment on the E method was just a query:
I think that we need something that allows the wm and
applications to know when a set root program change the
background (as monitoring the _XROOTPMAP_ID) and this
independently of the transparency method used.
E method generates tons of PropertyNotify messages and apps wake up 
regardless of their need for Root background. With the selections 
approach you can send messages only to apps that are interested in root 
background.
Olivier
Sasha
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]