[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