[Panel-devel] [PATCH] Plasma::More work on extender (and others)

Zack Rusin zack at kde.org
Thu Jul 12 16:38:45 CEST 2007


On Thursday 12 July 2007 10:21:42 am Aaron J. Seigo wrote:
> the next big hurdle to tackle will be how to do this in a top level
> window... we'll want an implementation of a top level window that supports
> being shaped if composite is available that can grow in response to the
> contents... IOW, a panel window ;) that's the easy part, really; the harder
> part will be how to manage creating new top-levels when items are dragged
> in/out.

to be honest i don't think this is a particularly good idea. making something 
like this to work smoothly is virtually impossible. 

from a technical perspective: shaped windows have tons of problems in the 
current implementation. you'll end up bogging the server down.
what xshape does it creates millions and millions of little rectangles that 
clip mask out the input and the window itself. manipulating them in real-time 
is just not going to happen. i had this lofty plan once of making xshape use 
xrender masks to clip-out the input but that never happened. so your option 
is using rectangular window on top. which has many other problems, the main 
one that you'll hit is that resizing on a composited desktop is not the best 
operation to perform. 
not even mentioning that it's impossible to split window in a middle of an 
operation. 

come to think of it maybe i misunderstood the concept of extenders. maybe i 
just need to see how the following scenario would work:
- i'm typing an email.
- extender pops up with four boxes,
- i'm interested in only one, i detach one and put it above my mail the rest 
is hidden underneath.

now since there's clear disconnection between the window the extender came 
from and where it's currently i'm assuming you'll either try to create 
another window and somehow move the extender to that new window or just 
disallow placing extenders in a different plane from its parent, which imho 
would defeat the purpose of letting people disconnect them. 
so you're looking at ability of splitting windows while seemingly moving 
contents between them (you'll need nice dbus interfaces to be able to 
communicate that kind of information between windows)... i don't see how one 
can make this work without making this a window manager functionality. (the 
above described problem is not the only one, but in the middle of typing i 
just got bogged down by the sheer number of problems with this approach so i 
kinda gave up =) )

z


More information about the Panel-devel mailing list