Blob Blame History Raw
diff --git a/src/rcw.c b/src/rcw.c
index 6f3cb2f18b615185c073fa4fc269804822e1b5df..94cf0d6f87f4ad5c2ffce8083e09ffef030b3c1c 100644
--- a/src/rcw.c
+++ b/src/rcw.c
@@ -3398,6 +3398,10 @@ void rco_closewin(RemminaProtocolWidget *gp)
 		}
 	}
 	if (cnnobj) {
+		if (REMMINA_IS_SCROLLED_VIEWPORT(cnnobj->scrolled_container)) {
+			REMMINA_DEBUG("deleting motion");
+			remmina_scrolled_viewport_remove_motion(REMMINA_SCROLLED_VIEWPORT(cnnobj->scrolled_container));
+		}
 		cnnobj->remmina_file = NULL;
 		g_free(cnnobj);
 		gp->cnnobj = NULL;
diff --git a/src/remmina_scrolled_viewport.c b/src/remmina_scrolled_viewport.c
index 44056519df2ab2430782183c6f820fe5e184cfd2..f42ec99ec20515974673df4090eb2a8becf368dd 100644
--- a/src/remmina_scrolled_viewport.c
+++ b/src/remmina_scrolled_viewport.c
@@ -38,6 +38,7 @@
 #include "config.h"
 #include "remmina_scrolled_viewport.h"
 #include "remmina_pref.h"
+#include "remmina_log.h"
 #include "remmina/remmina_trace_calls.h"
 
 G_DEFINE_TYPE( RemminaScrolledViewport, remmina_scrolled_viewport, GTK_TYPE_EVENT_BOX)
@@ -156,6 +157,10 @@ static gboolean remmina_scrolled_viewport_leave(GtkWidget *widget, GdkEventCross
 {
 	TRACE_CALL(__func__);
 	RemminaScrolledViewport *gsv = REMMINA_SCROLLED_VIEWPORT(widget);
+        if (gsv->viewport_motion_handler) {
+           REMMINA_DEBUG("cleaning motion ...");
+           remmina_scrolled_viewport_remove_motion(gsv);
+        }
 	gsv->viewport_motion_handler = g_timeout_add(20, remmina_scrolled_viewport_motion_timeout, gsv);
 	return FALSE;
 }