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; }