]> source.dussan.org Git - tigervnc.git/commitdiff
Explicitly clean up grabs on disconnect
authorPierre Ossman <ossman@cendio.se>
Mon, 23 Sep 2024 14:17:39 +0000 (16:17 +0200)
committerPierre Ossman <ossman@cendio.se>
Mon, 23 Sep 2024 14:17:39 +0000 (16:17 +0200)
They are not automatically cleaned up with the window on Windows, and we
might want to reconnect so we cannot rely on the process cleanup either.

vncviewer/DesktopWindow.cxx

index 2d3637815cc90c7657c5f49aea7f3c4c3c097044..584debd1e2fde9f7e5a9a0a902061504358a5cb2 100644 (file)
@@ -245,6 +245,11 @@ DesktopWindow::DesktopWindow(int w, int h, const char *name,
 
 DesktopWindow::~DesktopWindow()
 {
+  // Don't leave any dangling grabs as they are not automatically
+  // cleaned up on all platforms
+  ungrabPointer();
+  ungrabKeyboard();
+
   // Unregister all timeouts in case they get a change tro trigger
   // again later when this object is already gone.
   Fl::remove_timeout(handleGrab, this);