diff options
-rw-r--r-- | src/XExtInt.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/XExtInt.c b/src/XExtInt.c index 43738a2..27638bd 100644 --- a/src/XExtInt.c +++ b/src/XExtInt.c @@ -434,7 +434,16 @@ XInputClose( XFree((char *)((XInputData *) info->data)->vers); XFree((char *)info->data); } - return XextRemoveDisplay(xinput_info, dpy); + + if (!XextRemoveDisplay(xinput_info, dpy)) + return 0; + + if (xinput_info->ndisplays == 0) { + XextDestroyExtension(xinput_info); + xinput_info = NULL; + } + + return 1; } static int |