<div dir="ltr"><span style="font-family:arial,sans-serif;font-size:13.333333969116211px">Thorben,</span> you have to be very careful with your assumptions here if you want <span style="font-family:arial,sans-serif;font-size:13.333333969116211px">Wayland to be agnostic of any particular UI paradigm.</span><div>
<br><div style>Maximize doesn't always mean taking all space. What happens if there are 2-3 monitors with different resolutions? </div><div style>What does fullscreen mean with multiple monitors? If a window is partially visible on both monitors, which one should take the window in a fullscreen mode?</div>
<div style>Minimize doesn't always mean hiding window outputs. What happens if it is minimized into a thumbnail bar in some fancy desktop? </div><div style><br></div><div style>There are plenty of opportunities here to get the protocol wrong.</div>
<div style><br></div><div style>Nick</div><div style><br></div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, May 25, 2013 at 4:09 PM, Thorben <span dir="ltr"><<a href="mailto:thorbenj+freedesktop@eryri.ch" target="_blank">thorbenj+freedesktop@eryri.ch</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi all,<br>
<br>
Resent because I was not on this list, I normally just skim the archive from time to time as this project very much interests me. I can't wait for the day when I can try KDE5 on wayland.<br>
<br>
A couple of things have been bugging me and I thought I might give my thoughts on them. I'll post separate emails as to not mix topics.<br>
<br>
Problem 1 window management.<br>
<br>
There has been a lot of discussion on window management (minimise, maximise, etc) and some attempts at a solutions.<br>
<br>
I had some thoughts on the matter, be chose to stay silent because a) There are people that know about this stuff then I, b) The discussion exploded in April and so I didn't feel I should bring it up again.<br>
<br>
The main issue as it seems to me, is keeping Wayland agnostic of any particular UI paradigm (Desktop, Mobile, Tablet, Car, Fridge, etc) and there is the second issue of not breaking the existing protocol API.<br>
<br>
My idea would be to not mix this concept of "minimise" with other concepts to do with size (such as maximise).<br>
<br>
I would suggest a size state system of:<br>
<br>
 - Windowed (and maybe variances like popup)<br>
 - Maximised (Fills all screen space minus whatever the shell uses)<br>
 - (Maybe vertical and horizontal maximise also being possible states?)<br>
 - Fullscreen (Take all screen space)<br>
<br>
"Minimised" or hidden would better fit in with another state system like window stacking. My idea is that the Homescreen/Desktop/Whatever drawn by the shell is at stacking position 0 and that visible windows are above it. Thus having a positive stacking number; windows that are hidden (minimised) are behind it with a negative stacking number. Obviously the windows size state remains as is.<br>

<br>
This is at the protocol level. How a user sees or drives this is entirely up to the shell. Maybe a taskbar, a window list, a button or a combination there of.<br>
<br>
There is the other issue of, if having a negative stacking number is enough indication to a window that it is hidden. I don't know wayland well enough, maybe that sort of information is not available to clients. In which case there needs to be a notification.<br>

<br>
Whether a hidden (minimised) window chooses to continue updating it's surface should be a clients choice. It can be based on existing mechanism of what is obscured or visible, or whatever. Does a covered window normally repaint covered parts?<br>

<br>
The compositor should not waste any further resources on compositing such windows/surfaces into the final screen image. With the possible of exception of shells that want to 'preview' a hidden window. Like most desktops do, and I am guessing some tablets would like to too.<br>

<br>
So that's my thought, stop try to fit the concept of 'minimised' into the concept of window size. Decouple it entirely from 'maximised'. Shuffle it behind whatever fills the screen when no windows are visible (Desktop, Homescreen, etc).<br>

<br>
<br>
Regards,<br>
<br>
Thorben<br>
______________________________<u></u>_________________<br>
wayland-devel mailing list<br>
<a href="mailto:wayland-devel@lists.freedesktop.org" target="_blank">wayland-devel@lists.<u></u>freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/wayland-devel" target="_blank">http://lists.freedesktop.org/<u></u>mailman/listinfo/wayland-devel</a><br>
</blockquote></div><br></div>