<div dir="ltr"><div>Hi Daniel,</div><div><br></div><div>I've just looked at the xdg-shell protocol as you said. I was really surprised at the</div><div>amount of features it had, but one part in particular caught my eye:</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><pre class="gmail-code gmail-highlight" lang="xml"><span id="gmail-LC435" lang="xml" class="gmail-line"> <span class="gmail-hljs-tag"><<span class="gmail-hljs-name">request</span> <span class="gmail-hljs-attr">name</span>=<span class="gmail-hljs-string">"set_window_geometry"</span>></span></span>
<span id="gmail-LC436" lang="xml" class="gmail-line"> <span class="gmail-hljs-tag"><<span class="gmail-hljs-name">description</span> <span class="gmail-hljs-attr">summary</span>=<span class="gmail-hljs-string">"set the new window geometry"</span>></span></span>
<span id="gmail-LC437" lang="xml" class="gmail-line"> The window geometry of a surface is its "visible bounds" from the</span>
<span id="gmail-LC438" lang="xml" class="gmail-line"> user's perspective. Client-side decorations often have invisible</span>
<span id="gmail-LC439" lang="xml" class="gmail-line"> portions like drop-shadows which should be ignored for the</span>
<span id="gmail-LC440" lang="xml" class="gmail-line"> purposes of aligning, placing and constraining windows.</span>
<span id="gmail-LC441" lang="xml" class="gmail-line"></span>
<span id="gmail-LC442" lang="xml" class="gmail-line"> The window geometry is double buffered, and will be applied at the</span>
<span id="gmail-LC443" lang="xml" class="gmail-line"> time wl_surface.commit of the corresponding wl_surface is called.</span>
<span id="gmail-LC444" lang="xml" class="gmail-line"></span>
<span id="gmail-LC445" lang="xml" class="gmail-line"> Once the window geometry of the surface is set, it is not possible to</span>
<span id="gmail-LC446" lang="xml" class="gmail-line"> unset it, and it will remain the same until set_window_geometry is</span>
<span id="gmail-LC447" lang="xml" class="gmail-line"> called again, even if a new subsurface or buffer is attached.</span>
<span id="gmail-LC448" lang="xml" class="gmail-line"></span>
<span id="gmail-LC449" lang="xml" class="gmail-line"> If never set, the value is the full bounds of the surface,</span>
<span id="gmail-LC450" lang="xml" class="gmail-line"> including any subsurfaces. This updates dynamically on every</span>
<span id="gmail-LC451" lang="xml" class="gmail-line"> commit. This unset is meant for extremely simple clients.</span>
<span id="gmail-LC452" lang="xml" class="gmail-line"></span>
<span id="gmail-LC453" lang="xml" class="gmail-line"> The arguments are given in the surface-local coordinate space of</span>
<span id="gmail-LC454" lang="xml" class="gmail-line"> the wl_surface associated with this xdg_surface.</span>
<span id="gmail-LC455" lang="xml" class="gmail-line"></span>
<span id="gmail-LC456" lang="xml" class="gmail-line"> The width and height must be greater than zero. Setting an invalid size</span>
<span id="gmail-LC457" lang="xml" class="gmail-line"> will raise an error. When applied, the effective window geometry will be</span>
<span id="gmail-LC458" lang="xml" class="gmail-line"> the set window geometry clamped to the bounding rectangle of the</span>
<span id="gmail-LC459" lang="xml" class="gmail-line"> combined geometry of the surface of the xdg_surface and the associated</span>
<span id="gmail-LC460" lang="xml" class="gmail-line"> subsurfaces.</span>
<span id="gmail-LC461" lang="xml" class="gmail-line"> <span class="gmail-hljs-tag"></<span class="gmail-hljs-name">description</span>></span></span>
<b><span id="gmail-LC462" lang="xml" class="gmail-line"> <span class="gmail-hljs-tag"><<span class="gmail-hljs-name">arg</span> <span class="gmail-hljs-attr">name</span>=<span class="gmail-hljs-string">"x"</span> <span class="gmail-hljs-attr">type</span>=<span class="gmail-hljs-string">"int"</span>/> <-----------------------------------------------</span></span>
<span id="gmail-LC463" lang="xml" class="gmail-line"> <span class="gmail-hljs-tag"><<span class="gmail-hljs-name">arg</span> <span class="gmail-hljs-attr">name</span>=<span class="gmail-hljs-string">"y"</span> <span class="gmail-hljs-attr">type</span>=<span class="gmail-hljs-string">"int"</span>/> <-----------------------------------------------</span></span></b>
<span id="gmail-LC464" lang="xml" class="gmail-line"> <span class="gmail-hljs-tag"><<span class="gmail-hljs-name">arg</span> <span class="gmail-hljs-attr">name</span>=<span class="gmail-hljs-string">"width"</span> <span class="gmail-hljs-attr">type</span>=<span class="gmail-hljs-string">"int"</span>/></span></span>
<span id="gmail-LC465" lang="xml" class="gmail-line"> <span class="gmail-hljs-tag"><<span class="gmail-hljs-name">arg</span> <span class="gmail-hljs-attr">name</span>=<span class="gmail-hljs-string">"height"</span> <span class="gmail-hljs-attr">type</span>=<span class="gmail-hljs-string">"int"</span>/></span></span>
<span id="gmail-LC466" lang="xml" class="gmail-line"> <span class="gmail-hljs-tag"></<span class="gmail-hljs-name">request</span>></span></span></pre></blockquote><div>Doesn't this mean that Wayland already supports this? </div></div>