diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2014-08-23 15:33:13 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2014-08-23 16:28:27 +0100 |
commit | 12c051d5c673d79c16a3a1478c0977799484ca95 (patch) | |
tree | 5d882b50a510152773200d5cada41613d00477a7 | |
parent | 1bbacf80a9c4e7a259f896064b5cb147c4523f12 (diff) |
sna/dri2: Unhook event from draw list upon client destruction
When the client goes away, we need to free its events. However, we
have to defer the freeing of any pending event (ones currently routed
through the kernel) for those we need to remember to decouple the event
from the Drawable's list before they are freed.
Reported-by: John Lindgren <john.lindgren@aol.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=82979
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r-- | src/sna/sna_dri2.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/sna/sna_dri2.c b/src/sna/sna_dri2.c index 7343ca18..94bfcdab 100644 --- a/src/sna/sna_dri2.c +++ b/src/sna/sna_dri2.c @@ -1392,6 +1392,7 @@ sna_dri2_client_gone(CallbackListPtr *list, void *closure, void *data) assert(event->client == client); if (event->queued) { + sna_dri2_remove_event((WindowPtr)event->draw, event); event->client = NULL; event->draw = NULL; list_del(&event->link); |