The current specified behavior does not allow a null surface in either of
these events.  However, if the client calls wl_surface.destroy while the
surface has focus then the leave handler will get a null surface anyway
because the proxy corresponding to the wl_surface no longer exists.  This
change makes this edge-case explicit and allows the server to avoid sending
an event with an argument it knows the client has destroyed.

Signed-off-by: Jason Ekstrand <[email protected]>
---
 protocol/wayland.xml | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/protocol/wayland.xml b/protocol/wayland.xml
index 3d4ec9b..faa284e 100644
--- a/protocol/wayland.xml
+++ b/protocol/wayland.xml
@@ -1313,13 +1313,14 @@
     <event name="leave">
       <description summary="leave event">
        Notification that this seat's pointer is no longer focused on
-       a certain surface.
+       a certain surface.  The surface parameter may be null if the
+       surface has been destroyed.
 
        The leave notification is sent before the enter notification
        for the new focus.
       </description>
       <arg name="serial" type="uint"/>
-      <arg name="surface" type="object" interface="wl_surface"/>
+      <arg name="surface" type="object" interface="wl_surface" 
allow-null="true"/>
     </event>
 
     <event name="motion">
@@ -1430,13 +1431,14 @@
     <event name="leave">
       <description summary="leave event">
        Notification that this seat's keyboard focus is no longer on
-       a certain surface.
+       a certain surface.  The surface parameter may be null if the
+       surface has been destroyed.
 
        The leave notification is sent before the enter notification
        for the new focus.
       </description>
       <arg name="serial" type="uint"/>
-      <arg name="surface" type="object" interface="wl_surface"/>
+      <arg name="surface" type="object" interface="wl_surface" 
allow-null="true"/>
     </event>
 
     <enum name="key_state">
-- 
1.8.1.4

_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to