Re: [PATCH v3] xdg-shell: use case to change the app ID at runtime

2019-07-17 Thread Jan-Marek Glogowski
Am 15.07.19 um 16:20 schrieb glo...@fbihome.de:
> From: Jan-Marek Glogowski 
> 
> LibreOffice is one big binary with explicit brandings for different
> application modules. This is represented in X11 by a different
> WM_CLASS setting for a window. The WM_CLASS is changed based on the
> loaded document at runtime. As a result LibreOffice already offers
> multiple desktop files with different icons, StartupWMClass
> entries and application names.
> 
> This amendment of the set_app_id request just explicitly specifies
> the use case to change a surfaces' app ID at runtime, so a compositor
> implementor is made aware of it. Just as the WM_CLASS, a change of
> the app ID should result in an update of the propertes of a surface
> depending on the app ID, like the window icon specified in the
> desktop file or a re-grouping of the surfaces in a task manager.

Signed-off-by: Jan-Marek Glogowski 
___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Re: [PATCH wayland-protocols v2] xdg-output: make xdg_output.description mutable

2019-07-17 Thread Jonas Ådahl
On Wed, Jul 17, 2019 at 08:25:59AM +, Simon Ser wrote:
> The output description is a human-readable text describing the output. Unlike
> the name which uniquely identifies the output, it's intended to be displayed 
> to
> the user.
> 
> It might be desirable for a compositor to update an output's description. For
> instance, when only one output is plugged in, it's not necessary to dump make,
> model, serial and connector to the description, something like "Dell U2717D" 
> is
> enough. However when two identical outputs are plugged in it's necessary to 
> add
> e.g. the connector type to tell them apart ("Dell U2717D on HDMI"). See [1] 
> for
> a discussion about this.
> 
> This commit bumps xdg_output's version to allow compositors to update the
> property.
> 
> [1]: https://github.com/swaywm/wlroots/issues/1623
> 
> Signed-off-by: Simon Ser 

Thanks for the rebase.

Reviewed-by: Jonas Ådahl 


Jonas

> ---
> 
> The version isn't bumped because this has already been done in the previous
> patch.
> 
> Changes in v2: rebased on top of HEAD
> 
>  unstable/xdg-output/xdg-output-unstable-v1.xml | 8 +---
>  1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/unstable/xdg-output/xdg-output-unstable-v1.xml 
> b/unstable/xdg-output/xdg-output-unstable-v1.xml
> index 9efb7a40417b..fe3a70aab0d2 100644
> --- a/unstable/xdg-output/xdg-output-unstable-v1.xml
> +++ b/unstable/xdg-output/xdg-output-unstable-v1.xml
> @@ -206,10 +206,12 @@
>   output via :1'.
> 
>   The description event is sent after creating an xdg_output (see
> - xdg_output_manager.get_xdg_output). This event is only sent once per
> + xdg_output_manager.get_xdg_output) and whenever the description
> + changes. The description is optional, and may not be sent at all.
> +
> + For objects of version 2 and lower, this event is only sent once per
>   xdg_output, and the description does not change over the lifetime of
> - the wl_output global. The description is optional, and may not be sent
> - at all.
> + the wl_output global.
>
>
>  
> --
> 2.22.0
> 
> 
> ___
> wayland-devel mailing list
> wayland-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/wayland-devel
___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Re: [PATCH v3] xdg-shell: use case to change the app ID at runtime

2019-07-17 Thread Jonas Ådahl
On Mon, Jul 15, 2019 at 04:20:10PM +0200, glo...@fbihome.de wrote:
> From: Jan-Marek Glogowski 
> 
> LibreOffice is one big binary with explicit brandings for different
> application modules. This is represented in X11 by a different
> WM_CLASS setting for a window. The WM_CLASS is changed based on the
> loaded document at runtime. As a result LibreOffice already offers
> multiple desktop files with different icons, StartupWMClass
> entries and application names.
> 
> This amendment of the set_app_id request just explicitly specifies
> the use case to change a surfaces' app ID at runtime, so a compositor
> implementor is made aware of it. Just as the WM_CLASS, a change of
> the app ID should result in an update of the propertes of a surface
> depending on the app ID, like the window icon specified in the
> desktop file or a re-grouping of the surfaces in a task manager.

Just noted this is missing Signed-off-by. Mind if I help you add it?


Jonas

> ---
>  stable/xdg-shell/xdg-shell.xml | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/stable/xdg-shell/xdg-shell.xml b/stable/xdg-shell/xdg-shell.xml
> index 2e420c6..3a87a9e 100644
> --- a/stable/xdg-shell/xdg-shell.xml
> +++ b/stable/xdg-shell/xdg-shell.xml
> @@ -604,6 +604,9 @@
>   For example, "org.freedesktop.FooViewer" where the .desktop file is
>   "org.freedesktop.FooViewer.desktop".
>  
> + Like other properties, a set_app_id request can be sent after the
> + xdg_toplevel has been mapped to update the property.
> +
>   See the desktop-entry specification [0] for more details on
>   application identifiers and how they relate to well-known D-Bus
>   names and .desktop files.
> -- 
> 2.20.1
> 
___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Re: [PATCH v3] xdg-shell: use case to change the app ID at runtime

2019-07-17 Thread Simon Ser
On Monday, July 15, 2019 5:20 PM,  wrote:
> From: Jan-Marek Glogowski glo...@fbihome.de
>
> LibreOffice is one big binary with explicit brandings for different
> application modules. This is represented in X11 by a different
> WM_CLASS setting for a window. The WM_CLASS is changed based on the
> loaded document at runtime. As a result LibreOffice already offers
> multiple desktop files with different icons, StartupWMClass
> entries and application names.
>
> This amendment of the set_app_id request just explicitly specifies
> the use case to change a surfaces' app ID at runtime, so a compositor
> implementor is made aware of it. Just as the WM_CLASS, a change of
> the app ID should result in an update of the propertes of a surface
> depending on the app ID, like the window icon specified in the
> desktop file or a re-grouping of the surfaces in a task manager.

This LGTM.

Reviewed-by: Simon Ser 

Thanks!
___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Re: [PATCH wayland-protocols v3] pointer-gestures: add a release request

2019-07-17 Thread Jonas Ådahl
On Mon, Jan 28, 2019 at 10:05:55AM +, Simon Ser wrote:
> This allows clients to destroy a gesture object before they disconnect.
> 
> The request isn't named "destroy", as this would conflict with
> wayland-scanner's auto-generated destructor (which just destroys the
> client-side object without sending any request).
> 
> Signed-off-by: Simon Ser 
> Reviewed-by: Jonas Ådahl 

Just saw this one never landed; but taken care of now!


Jonas

> ---
> 
> Changes from v2 to v3: added a version separator
> 
>  .../pointer-gestures-unstable-v1.xml  | 15 ---
>  1 file changed, 12 insertions(+), 3 deletions(-)
> 
> diff --git a/unstable/pointer-gestures/pointer-gestures-unstable-v1.xml 
> b/unstable/pointer-gestures/pointer-gestures-unstable-v1.xml
> index 5b7132c..59502ac 100644
> --- a/unstable/pointer-gestures/pointer-gestures-unstable-v1.xml
> +++ b/unstable/pointer-gestures/pointer-gestures-unstable-v1.xml
> @@ -1,7 +1,7 @@
>  
>  
>  
> -  
> +  
>  
>A global interface to provide semantic touchpad gestures for a given
>pointer.
> @@ -37,9 +37,18 @@
>
>
>  
> +
> +
> +
> +
> +  
> + Destroy the pointer gesture object. Swipe and pinch objects created via 
> this
> + gesture object remain valid.
> +  
> +
>
>  
> -  
> +  
>  
>A swipe gesture object notifies a client about a multi-finger swipe
>gesture detected on an indirect input device such as a touchpad.
> @@ -102,7 +111,7 @@
>  
>
>  
> -  
> +  
>  
>A pinch gesture object notifies a client about a multi-finger pinch
>gesture detected on an indirect input device such as a touchpad.
> -- 
> 2.20.1
> 
> 
___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

[PATCH wayland-protocols v2] xdg-output: make xdg_output.description mutable

2019-07-17 Thread Simon Ser
The output description is a human-readable text describing the output. Unlike
the name which uniquely identifies the output, it's intended to be displayed to
the user.

It might be desirable for a compositor to update an output's description. For
instance, when only one output is plugged in, it's not necessary to dump make,
model, serial and connector to the description, something like "Dell U2717D" is
enough. However when two identical outputs are plugged in it's necessary to add
e.g. the connector type to tell them apart ("Dell U2717D on HDMI"). See [1] for
a discussion about this.

This commit bumps xdg_output's version to allow compositors to update the
property.

[1]: https://github.com/swaywm/wlroots/issues/1623

Signed-off-by: Simon Ser 
---

The version isn't bumped because this has already been done in the previous
patch.

Changes in v2: rebased on top of HEAD

 unstable/xdg-output/xdg-output-unstable-v1.xml | 8 +---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/unstable/xdg-output/xdg-output-unstable-v1.xml 
b/unstable/xdg-output/xdg-output-unstable-v1.xml
index 9efb7a40417b..fe3a70aab0d2 100644
--- a/unstable/xdg-output/xdg-output-unstable-v1.xml
+++ b/unstable/xdg-output/xdg-output-unstable-v1.xml
@@ -206,10 +206,12 @@
output via :1'.

The description event is sent after creating an xdg_output (see
-   xdg_output_manager.get_xdg_output). This event is only sent once per
+   xdg_output_manager.get_xdg_output) and whenever the description
+   changes. The description is optional, and may not be sent at all.
+
+   For objects of version 2 and lower, this event is only sent once per
xdg_output, and the description does not change over the lifetime of
-   the wl_output global. The description is optional, and may not be sent
-   at all.
+   the wl_output global.
   
   
 
--
2.22.0


___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Re: [PATCH v3] xdg-shell: use case to change the app ID at runtime

2019-07-17 Thread Jonas Ådahl
On Mon, Jul 15, 2019 at 04:20:10PM +0200, glo...@fbihome.de wrote:
> From: Jan-Marek Glogowski 
> 
> LibreOffice is one big binary with explicit brandings for different
> application modules. This is represented in X11 by a different
> WM_CLASS setting for a window. The WM_CLASS is changed based on the
> loaded document at runtime. As a result LibreOffice already offers
> multiple desktop files with different icons, StartupWMClass
> entries and application names.
> 
> This amendment of the set_app_id request just explicitly specifies
> the use case to change a surfaces' app ID at runtime, so a compositor
> implementor is made aware of it. Just as the WM_CLASS, a change of
> the app ID should result in an update of the propertes of a surface
> depending on the app ID, like the window icon specified in the
> desktop file or a re-grouping of the surfaces in a task manager.

Reviewed-by: Jonas Ådahl 


Jonas

> ---
>  stable/xdg-shell/xdg-shell.xml | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/stable/xdg-shell/xdg-shell.xml b/stable/xdg-shell/xdg-shell.xml
> index 2e420c6..3a87a9e 100644
> --- a/stable/xdg-shell/xdg-shell.xml
> +++ b/stable/xdg-shell/xdg-shell.xml
> @@ -604,6 +604,9 @@
>   For example, "org.freedesktop.FooViewer" where the .desktop file is
>   "org.freedesktop.FooViewer.desktop".
>  
> + Like other properties, a set_app_id request can be sent after the
> + xdg_toplevel has been mapped to update the property.
> +
>   See the desktop-entry specification [0] for more details on
>   application identifiers and how they relate to well-known D-Bus
>   names and .desktop files.
> -- 
> 2.20.1
> 
___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Re: [PATCH wayland-protocols] xdg-output: make xdg_output.description mutable

2019-07-17 Thread Jonas Ådahl
On Sat, Apr 27, 2019 at 08:16:04AM +, Simon Ser wrote:
> The output description is a human-readable text describing the output. Unlike
> the name which uniquely identifies the output, it's intended to be displayed 
> to
> the user.
> 
> It might be desirable for a compositor to update an output's description. For
> instance, when only one output is plugged in, it's not necessary to dump make,
> model, serial and connector to the description, something like "Dell U2717D" 
> is
> enough. However when two identical outputs are plugged in it's necessary to 
> add
> e.g. the connector type to tell them apart ("Dell U2717D on HDMI"). See [1] 
> for
> a discussion about this.
> 
> This commit bumps xdg_output's version to allow compositors to update the
> property.

Seems fine to me. Want to rebase on top of the deprecation of
xdg_output.done?


Jonas

> 
> [1]: https://github.com/swaywm/wlroots/issues/1623
> 
> Signed-off-by: Simon Ser 
> ---
>  unstable/xdg-output/xdg-output-unstable-v1.xml | 12 +++-
>  1 file changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/unstable/xdg-output/xdg-output-unstable-v1.xml 
> b/unstable/xdg-output/xdg-output-unstable-v1.xml
> index ccbfe1c..86216a7 100644
> --- a/unstable/xdg-output/xdg-output-unstable-v1.xml
> +++ b/unstable/xdg-output/xdg-output-unstable-v1.xml
> @@ -54,7 +54,7 @@
>  reset.
>
> 
> -  
> +  
>  
>A global factory interface for xdg_output objects.
>  
> @@ -77,7 +77,7 @@
>  
>
> 
> -  
> +  
>  
>An xdg_output describes part of the compositor geometry.
> 
> @@ -197,10 +197,12 @@
>   output via :1'.
> 
>   The description event is sent after creating an xdg_output (see
> - xdg_output_manager.get_xdg_output). This event is only sent once per
> + xdg_output_manager.get_xdg_output) and whenever the description
> + changes. The description is optional, and may not be sent at all.
> +
> + For objects of version 2 and lower, this event is only sent once per
>   xdg_output, and the description does not change over the lifetime of
> - the wl_output global. The description is optional, and may not be sent
> - at all.
> + the wl_output global.
>
>
>  
> --
> 2.21.0
> 
> 
> ___
> wayland-devel mailing list
> wayland-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/wayland-devel
___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Re: [PATCH wayland-protocols v3] xdg-output: deprecate the xdg_output.done event

2019-07-17 Thread Jonas Ådahl
On Fri, Jul 12, 2019 at 03:42:52PM +, Simon Ser wrote:
> This commit makes it so a wl_output.done event is guaranteed to be sent with a
> xdg_output.done event.
> 
> This protocol change has been discussed in a recent xorg-devel discussions 
> [1].
> 
> First let's recap why a change is needed: Xwayland listens to both wl_output 
> and
> xdg_output changes. When an output's properties change, Xwayland expects to
> receive both a wl_output.done event and an xdg_output.done event. If that's 
> not
> the case, Xwayland doesn't update its state (so old state is still exposed to
> X11 clients).
> 
> Most of the time, both objects will be updated at the same time (e.g. the
> current mode is changed, so both wl_output.mode and xdg_output.logical_size 
> are
> sent) so this won't be an issue. However in some situations only one of
> wl_output or xdg_output changes. For instance:
> 
> - The mode is changed at the same time as the scale, resulting in the same
>   logical_size.
> - The compositor doesn't expose the outputs' position via wl_output, so 
> whenever
>   the position changes only xdg_output is updated.
> 
> Both KDE [2] and wlroots [3] have experienced this issue.
> 
> For this reason, I'd like to update the xdg-output protocol to make it 
> mandatory
> to always send a wl_output.done event after xdg_output changes. This 
> effectively
> makes wl_output.done atomically apply all output state (including the state of
> add-on objects like xdg_output). This approach is pretty similar to
> wl_surface.commit: this request will atomically apply surface state including
> the state of e.g. the xdg_surface object tied to the wl_surface.
> 
> To update the protocol to reflect this new requirement we can either:
> 
> - **Bump xdg_output version**. The current protocol doesn't specify that
>   wl_output.done must be sent, adding this new requirement would be a breaking
>   change. We need to fix Xwayland for the current xdg_output version (maybe 
> make
>   it non-atomic for the current version, atomic for the new one?). Should we
>   deprecate xdg_output.done in the new version?
> - **Don't bump xdg_output version**. This clarifies what is expected in 
> practice
>   by Xwayland, a major xdg_output consumer, and what is currently implemented 
> by
>   all compositors.
> 
> There's one issue with the "don't bump" approach: indeed in practice 
> compositors
> always send wl_output.done and xdg_output.done in pairs, however the ordering
> between those two events is not guaranteed. This means some compositors might
> send this sequence:
> 
> wl_output.geometry(…)
> wl_output.done()
> xdg_output.logical_position(…)
> xdg_output.done()
> 
> In this case the wl_output.done event fails to atomically apply the xdg_output
> state.
> 
> For this reason, I think bumping the version is a better approach.
> 
> This commit also deprecates xdg_output.done, which doesn't have any purpose
> anymore.
> 
> [1]: https://lists.x.org/archives/xorg-devel/2019-April/058148.html
> [2]: https://phabricator.kde.org/D19253
> [3]: https://github.com/swaywm/sway/issues/4064
> 
> Signed-off-by: Simon Ser 
> Reviewed-by: Olivier Fourdan 

Lets go with this!

Reviewed-by: Jonas Ådahl 


Jonas

> ---
> 
> Changes from v2 to v3: in xdg_output's description, mention wl_output.done is
> guaranteed to be sent only from version 3.
> 
>  unstable/xdg-output/xdg-output-unstable-v1.xml | 13 +++--
>  1 file changed, 11 insertions(+), 2 deletions(-)
> 
> diff --git a/unstable/xdg-output/xdg-output-unstable-v1.xml 
> b/unstable/xdg-output/xdg-output-unstable-v1.xml
> index ccbfe1c9a955..9efb7a40417b 100644
> --- a/unstable/xdg-output/xdg-output-unstable-v1.xml
> +++ b/unstable/xdg-output/xdg-output-unstable-v1.xml
> @@ -54,7 +54,7 @@
>  reset.
>
> 
> -  
> +  
>  
>A global factory interface for xdg_output objects.
>  
> @@ -77,12 +77,17 @@
>  
>
> 
> -  
> +  
>  
>An xdg_output describes part of the compositor geometry.
> 
>This typically corresponds to a monitor that displays part of the
>compositor space.
> +
> +  For objects version 3 onwards, after all xdg_output properties have 
> been
> +  sent (when the object is created and when properties are updated), a
> +  wl_output.done event is sent. This allows changes to the output
> +  properties to be seen as atomic, even if they happen via multiple 
> events.
>  
> 
>  
> @@ -157,6 +162,10 @@
> 
>   This allows changes to the xdg_output properties to be seen as
>   atomic, even if they happen via multiple events.
> +
> + For objects version 3 onwards, this event is deprecated. Compositors
> + are not required to send it anymore and must send wl_output.done
> + instead.
>
>  
> 
> --
> 2.22.0
> 
> 
> ___
> wayland-devel mailing list
> wayland-devel@lists.freedesktop.org
>