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

Re: [Ayatana] Criticism of Client Side Window Decorations



On Sun, May 16, 2010 at 10:46 AM, Frederik Nnaji
<frederik.nnaji@xxxxxxxxx> wrote:
> hi sam
>
> On Sun, May 16, 2010 at 03:41, Sam Spilsbury <smspillaz@xxxxxxxxx> wrote:
>>
>> So the window controls are essentially invisible unless you play a
>> hide an seek game with your mouse? I don't understand why you'd want
>> this - and it requires some form of meaningful acceleration within
>> apps, something that I don't think everyone has.
>
> AIUI it has something to do with mouse pointer position relative to the
> window border..
> I don't understand where "acceleration" would fit into this context..

If you want to make the fading smooth, then you will most likely need
some form of graphical accelleration, whether that be EXA, Glitz or
G3D. There is no way to guaruntee that everyone has this.

> You have a point with your cat and mouse game though..
>
>>
>> You cannot do this with client side decorations.
>
> why not? because of the imprecision of the absolute position information?
> that's a WM bug, has nothing to do with CSD.
>

Some window managers have to fake out position information to make
this kind of thing work. Usually this is because they are reparenting
the window (metacity, kwin) or they are a compositing window manager
with input redirection and have to place the window offscreen to
redirect input to it on-screen (Metisse, future versions of compiz).

In any case, there are methods of a client determining it's position
on the root window, however this is inaccurate at best and something
the client shouldn't need to be concerned with.

If you wanted to do separated titlebar handles, there is a lot of work
that needs to go into that, namely the client drawing titlebars in a
separate window and either reparenting that window into itself or
drawing it separately. Which kind of begs the question - why not just
let the window manager do that because it already does. If you let the
window manager do this, then you can guaruntee that the titlebar will
be consistent with the rules the window manager has defined and client
won't all just do their own thing when their titlebar is off-screen.

>>
>> The window manager absolutely depends on the client to not be stupid
>> and to obey rules
>
> Doesn't this mean that we can entrust the client with more then?
> You are arguing against your own position here.

When you have client side decorations, you give more chances for the
client to be stupid and introduce it's own window management
paradigms, drawing the buttons the window manager does not expect to
be drawn, or in extreme cases resizing or moving windows in special
ways when they are grabbed by the titlebar.

Regards,

Sam


-- 
Sam Spilsbury