xdg-shell: add enums for tiled window state to toplevel configure

Submitted by Mike Blumenkrantz on April 10, 2018, 1:05 p.m.

Details

Message ID 20180410130528.11155-1-zmike@osg.samsung.com
State New
Series "xdg-shell: add enums for tiled window state to toplevel configure"
Headers show

Commit Message

Mike Blumenkrantz April 10, 2018, 1:05 p.m.
this adds implementation from a related discussion long ago in which
it was decided that it would be useful for clients to know if/where their
windows were tiled so that various behaviors and visuals could be modified
to improve UX

a window which is e.g., tiled on the right side of the screen would set the
right|top|bottom tiled states in configure

Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>

Changes since v1: added since=2 to enum members
---
 stable/xdg-shell/xdg-shell.xml | 34 +++++++++++++++++++++++++++++-----
 1 file changed, 29 insertions(+), 5 deletions(-)

Patch hide | download patch | download mbox

diff --git a/stable/xdg-shell/xdg-shell.xml b/stable/xdg-shell/xdg-shell.xml
index d524ea9..629b983 100644
--- a/stable/xdg-shell/xdg-shell.xml
+++ b/stable/xdg-shell/xdg-shell.xml
@@ -29,7 +29,7 @@ 
     DEALINGS IN THE SOFTWARE.
   </copyright>
 
-  <interface name="xdg_wm_base" version="1">
+  <interface name="xdg_wm_base" version="2">
     <description summary="create desktop-style surfaces">
       The xdg_wm_base interface is exposed as a global object enabling clients
       to turn their wl_surfaces into windows in a desktop environment. It
@@ -115,7 +115,7 @@ 
     </event>
   </interface>
 
-  <interface name="xdg_positioner" version="1">
+  <interface name="xdg_positioner" version="2">
     <description summary="child surface positioner">
       The xdg_positioner provides a collection of rules for the placement of a
       child surface relative to a parent surface. Rules can be defined to ensure
@@ -359,7 +359,7 @@ 
     </request>
   </interface>
 
-  <interface name="xdg_surface" version="1">
+  <interface name="xdg_surface" version="2">
     <description summary="desktop user interface surface base interface">
       An interface that may be implemented by a wl_surface, for
       implementations that provide a desktop-style user interface.
@@ -528,7 +528,7 @@ 
     </event>
   </interface>
 
-  <interface name="xdg_toplevel" version="1">
+  <interface name="xdg_toplevel" version="2">
     <description summary="toplevel surface">
       This interface defines an xdg_surface role which allows a surface to,
       among other things, set window-like properties such as maximize,
@@ -750,6 +750,30 @@ 
 	  keyboard or pointer focus.
 	</description>
       </entry>
+      <entry name="tiled_left" value="5" since="2" summary="the surface is now tiled">
+	<description summary="the surface is now tiled">
+	  The window is currently in a tiled layout and the left edge is considered to be
+	  adjacent to another part of the tiling grid.
+	</description>
+      </entry>
+      <entry name="tiled_right" value="6" since="2" summary="the surface is now tiled">
+	<description summary="the surface is now tiled">
+	  The window is currently in a tiled layout and the right edge is considered to be
+	  adjacent to another part of the tiling grid.
+	</description>
+      </entry>
+      <entry name="tiled_top" value="7" since="2" summary="the surface is now tiled">
+	<description summary="the surface is now tiled">
+	  The window is currently in a tiled layout and the top edge is considered to be
+	  adjacent to another part of the tiling grid.
+	</description>
+      </entry>
+      <entry name="tiled_bottom" value="8" since="2" summary="the surface is now tiled">
+	<description summary="the surface is now tiled">
+	  The window is currently in a tiled layout and the bottom edge is considered to be
+	  adjacent to another part of the tiling grid.
+	</description>
+      </entry>
     </enum>
 
     <request name="set_max_size">
@@ -989,7 +1013,7 @@ 
     </event>
   </interface>
 
-  <interface name="xdg_popup" version="1">
+  <interface name="xdg_popup" version="2">
     <description summary="short-lived, popup surfaces for menus">
       A popup surface is a short-lived, temporary surface. It can be used to
       implement for example menus, popovers, tooltips and other similar user

Comments

Jonas Ådahl April 13, 2018, 1:53 p.m.
On Tue, Apr 10, 2018 at 09:05:28AM -0400, Mike Blumenkrantz wrote:
> this adds implementation from a related discussion long ago in which
> it was decided that it would be useful for clients to know if/where their
> windows were tiled so that various behaviors and visuals could be modified
> to improve UX
> 
> a window which is e.g., tiled on the right side of the screen would set the
> right|top|bottom tiled states in configure
> 
> Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>

Looks good to me. I'll have a look about adding the other thing missing
to make the gtk_shell tiling stuff obsolete. I have one comment below
inline. With that fixed, this is

Reviewed-by: Jonas Ådahl <jadahl@gmail.com>


> 
> Changes since v1: added since=2 to enum members
> ---
>  stable/xdg-shell/xdg-shell.xml | 34 +++++++++++++++++++++++++++++-----
>  1 file changed, 29 insertions(+), 5 deletions(-)
> 
> diff --git a/stable/xdg-shell/xdg-shell.xml b/stable/xdg-shell/xdg-shell.xml
> index d524ea9..629b983 100644
> --- a/stable/xdg-shell/xdg-shell.xml
> +++ b/stable/xdg-shell/xdg-shell.xml
> @@ -29,7 +29,7 @@
>      DEALINGS IN THE SOFTWARE.
>    </copyright>
>  
> -  <interface name="xdg_wm_base" version="1">
> +  <interface name="xdg_wm_base" version="2">
>      <description summary="create desktop-style surfaces">
>        The xdg_wm_base interface is exposed as a global object enabling clients
>        to turn their wl_surfaces into windows in a desktop environment. It
> @@ -115,7 +115,7 @@
>      </event>
>    </interface>
>  
> -  <interface name="xdg_positioner" version="1">
> +  <interface name="xdg_positioner" version="2">
>      <description summary="child surface positioner">
>        The xdg_positioner provides a collection of rules for the placement of a
>        child surface relative to a parent surface. Rules can be defined to ensure
> @@ -359,7 +359,7 @@
>      </request>
>    </interface>
>  
> -  <interface name="xdg_surface" version="1">
> +  <interface name="xdg_surface" version="2">
>      <description summary="desktop user interface surface base interface">
>        An interface that may be implemented by a wl_surface, for
>        implementations that provide a desktop-style user interface.
> @@ -528,7 +528,7 @@
>      </event>
>    </interface>
>  
> -  <interface name="xdg_toplevel" version="1">
> +  <interface name="xdg_toplevel" version="2">
>      <description summary="toplevel surface">
>        This interface defines an xdg_surface role which allows a surface to,
>        among other things, set window-like properties such as maximize,
> @@ -750,6 +750,30 @@
>  	  keyboard or pointer focus.
>  	</description>
>        </entry>
> +      <entry name="tiled_left" value="5" since="2" summary="the surface is now tiled">
> +	<description summary="the surface is now tiled">

I think the summary attribute should only go in the description element.
I also just noticed they are all the same. Might not need the "now" as
well, since the state might change, but not necessarily the tiled-ness.


Jonas

> +	  The window is currently in a tiled layout and the left edge is considered to be
> +	  adjacent to another part of the tiling grid.
> +	</description>
> +      </entry>
> +      <entry name="tiled_right" value="6" since="2" summary="the surface is now tiled">
> +	<description summary="the surface is now tiled">
> +	  The window is currently in a tiled layout and the right edge is considered to be
> +	  adjacent to another part of the tiling grid.
> +	</description>
> +      </entry>
> +      <entry name="tiled_top" value="7" since="2" summary="the surface is now tiled">
> +	<description summary="the surface is now tiled">
> +	  The window is currently in a tiled layout and the top edge is considered to be
> +	  adjacent to another part of the tiling grid.
> +	</description>
> +      </entry>
> +      <entry name="tiled_bottom" value="8" since="2" summary="the surface is now tiled">
> +	<description summary="the surface is now tiled">
> +	  The window is currently in a tiled layout and the bottom edge is considered to be
> +	  adjacent to another part of the tiling grid.
> +	</description>
> +      </entry>
>      </enum>
>  
>      <request name="set_max_size">
> @@ -989,7 +1013,7 @@
>      </event>
>    </interface>
>  
> -  <interface name="xdg_popup" version="1">
> +  <interface name="xdg_popup" version="2">
>      <description summary="short-lived, popup surfaces for menus">
>        A popup surface is a short-lived, temporary surface. It can be used to
>        implement for example menus, popovers, tooltips and other similar user
> -- 
> 2.14.3
> 
> _______________________________________________
> wayland-devel mailing list
> wayland-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/wayland-devel