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

Re: [Ayatana] Allowing windows to move past launchers



On Fri, Dec 10, 2010 at 1:33 AM, Mark Shuttleworth <mark@xxxxxxxxxx> wrote:
> On 09/12/10 10:59, Didier Roche wrote:
>> Le jeudi 09 décembre 2010 à 18:55 +0800, Sam Spilsbury a écrit :
>>> Hi,
>>>
>>> I was doing some work on the snap windows plugin for compiz and I was
>>> wondering if it is the correct behaviour design wise to allow windows
>>> to move underneath the launcher and the panel. Currently we have it so
>>> that windows snap to the launcher but the user can move the window
>>> past the launcher if they "move hard enough" but I was wondering if we
>>> should even allow windows to move past these panels in the first
>>> place.
>>>
>>> Let me know what you all think.
>> We should just perhaps agree on the snap value? I mean, we want to avoid
>> false positive on intellihide but still enabling people to have
>> intellihide :)
>
> In the intellihide, moving the window against the launcher should kick
> the launcher out immediately, as it currently does. I think Sam's
> referring more to the case where the launcher is locked in place, not
> intellihide.

I was thinking something like this (warning: coder's POV, it gets a
bit technical).

Bit of lingo here since I tend to use it regularly:
-> strut: A property called _NET_WM_STRUT_PARTIAL that docks,
launchers, etc place on windows to "reserve" an area of the screen.
Windows don't get placed there and they cannot maximize over it.
-> placement: where the window is positioned on open.


My idea was this:

1) On the intellihide case:

-> We don't set the strut property, which means that windows can
implicitly get placed underneath the launcher (this can be overridden
in the unityshell plugin)
-> On maximisation the launcher is going to go away anyway, since the
window will be covering it
-> When moving a window near the launcher, if it goes close then the
launcher will go away (intellihide)
-> When resizing a window, if the resize border touches the launcher,
it goes away, easy

2) On the "fixed launcher" case:

-> We set the strut property, so no implicit incorrect placement
-> On maximization the window does not cover the launcher
-> Windows cannot be resized underneath the launcher
-> Windows cannot be moved underneath the launcher.

The reason for the fourth one is because we have the window buttons on
the left - we do not want to have to obscure them  in the case that we
move a window.

>
> Mark
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~ayatana
> Post to     : ayatana@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~ayatana
> More help   : https://help.launchpad.net/ListHelp
>
>



-- 
Sam Spilsbury