<div class="gmail_quote">On Fri, Sep 28, 2012 at 2:30 PM, Bill Spitzak <span dir="ltr"><<a href="mailto:spitzak@gmail.com" target="_blank">spitzak@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Also need to handle maximized-vertically and maximized-horizontally.<br>
<br>
I know it isn't liked but I want to push my recommendation again:<br>
<br>
The shell knows how thick the "edges" are of a window. This is the shadows and *also* the part that you are removing for your "maximized decorations" (please look carefully at how most X window managers do "maximize" and you will see it is more than the "shadow"). The client would tell the shell this information the same way it says the opaque and input areas.<br>

<br>
When a window is maximized the shell tells the client to make it *larger* than the screen such that the area inside the "edges" fills the screen. It then clips this to the screen (ie the edges and shadows do not appear on an adjacent output).<br>

<br>
This will handle clients that force the size to be smaller than maximized, and allow maximize horizontally/vertically to work. It will also allow "snap to the inside edge" on output sides and windows to each other, which allows more efficient screen usage, and is supported by some X window managers. Also allows the 3-edge-removed display that Windows 7 does when you half-screen-maximize a window. And it will work with really stupid clients, as long as they report the edges.<br>

<br>
However the client should be able to know that the edges are clipped, for a few reasons:<br>
<br>
 1. So it does not waste time rendering them<br>
<br>
 2. So it can avoid using image buffer memory for them<br>
<br>
 3. So it does not draw any controls out there that it assumes the user can see.<br>
<br>
 4. It can produce better graphics than a simple clip. For instance if there is some shading in the corner to make it look round, this can be disabled if one edge is clipped.<br>
<br>
 5. It may want to disable resizing on the clipped edges, though I believe the way Wayland is being done this can be entirely decided by the shell.<br>
<br>
 6. This information, if provided even when not clipped, can be used to position pop-up menus so they do not go off-screen. This is necessary if you don't want an xy position of windows sent to clients.<br>
<br>
Therefore the shell can tell a client "I want you to act like you are this size but only this area is needed" in the resize request. Conversely in the resize notify, the client can say "act like the surface is this size, but this sub-rectangle is what the image buffer actually is.<br>

<br>
This is not compatible, but the shell can detect "old" clients because they do not specify the edges and alter the requests.<br>
<br>
My feeling is that fullscreen is such a special case that it should remain a flag like it is now. The alternative of the client saying what the "contents" area (ie without the titlebar) and the shell resizing it larger, would be consistent, but does not look necessary to me.<br>
<br></blockquote><div><br><br>I don't really understand why you're trying to push this idea without any code to demonstrate your concept. You can't say how you think it should be and expect someone else to implement the features you're suggesting. What you're talking about here is relatively minor details that don't really matter much at this point. This patch is only a first step toward the goal of trying to get 'normal' expected behaviour from weston. Snapping, horizontal/vertical maximize, edge/content adjustments can be done by anyone willing to write the code to do it. Since you sound interested and seem to know what you want, I encourage you to submit a patch set.<br>
<br><br>Thanks,<br><br>Scott<br></div></div><br>