Skip to content
  • David Edmundson's avatar
    Validate surface is valid when sending TextInput leave event · 93fb3260
    David Edmundson authored
    Summary:
    It's possible for the surface to be unbound when we send the leave
    event; we've called Resource::unbind() of Surface, so the Surface has,
    deleteLater called, but it's still a valid object, and the first check
    passes.
    
    We get in this situation because when a surface is destroyed, we're
    handling text input from the same source event.
    
    Sending a nullpointer is a protocol error, and wayland kindly closes the
    connection.
    
    This fixes my constant:
    "Did the Wayland server die" error messages when running clients.
    
    Test Plan:
    Got errors after setting up qt virtual keyboard.
    Had reproducible case.
    Restarted kwin after this patch, now doesn't crash.
    
    Reviewers: #plasma, graesslin
    
    Subscribers: apol, graesslin, plasma-devel, #frameworks
    
    Tags: #plasma_on_wayland, #frameworks
    
    Differential Revision: https://phabricator.kde.org/D5712
    93fb3260