]> 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)
committerLinn Mattsson <linma@cendio.se>
Tue, 22 Oct 2024 10:41:34 +0000 (12:41 +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.

(cherry picked from commit 43ce674dfbd2576fe5b382ad9f87e5beebc72812)

vncviewer/DesktopWindow.cxx

index 7d7ae7c3f482634f0c24ecc66ba1b55fd2008801..33dd2dd02afd537553a1719b9056932917bed80f 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);