diff options
Diffstat (limited to 'network/remmina/patches/20120506.patch')
-rw-r--r-- | network/remmina/patches/20120506.patch | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/network/remmina/patches/20120506.patch b/network/remmina/patches/20120506.patch new file mode 100644 index 0000000000..dc4ae33310 --- /dev/null +++ b/network/remmina/patches/20120506.patch @@ -0,0 +1,53 @@ +From c1ef3a162622942d7c556c5a4352e626c7bcb28f Mon Sep 17 00:00:00 2001 +From: Jean-Louis Dupond <jean-louis@dupond.be> +Date: Tue, 8 May 2012 14:44:16 +0200 +Subject: [PATCH] Disconnect signal handler after disconnect + +--- + remmina-plugins/rdp/rdp_event.c | 10 ++++++++-- + remmina-plugins/rdp/rdp_plugin.h | 1 + + 2 files changed, 9 insertions(+), 2 deletions(-) + +diff --git a/remmina-plugins/rdp/rdp_event.c b/remmina-plugins/rdp/rdp_event.c +index a936fb1..2c050c6 100644 +--- a/remmina-plugins/rdp/rdp_event.c ++++ b/remmina-plugins/rdp/rdp_event.c +@@ -523,8 +523,7 @@ void remmina_rdp_event_init(RemminaProtocolWidget* gp) + if (!remmina_plugin_service->file_get_int(remminafile, "disableclipboard", FALSE)) + { + clipboard = gtk_widget_get_clipboard(rfi->drawing_area, GDK_SELECTION_CLIPBOARD); +- g_signal_connect(clipboard, "owner-change", +- G_CALLBACK(remmina_rdp_event_on_clipboard), gp); ++ rfi->clipboard_handler = g_signal_connect(clipboard, "owner-change", G_CALLBACK(remmina_rdp_event_on_clipboard), gp); + } + + rfi->pressed_keys = g_array_new(FALSE, TRUE, sizeof (gint)); +@@ -575,6 +574,13 @@ void remmina_rdp_event_uninit(RemminaProtocolWidget* gp) + + rfi = GET_DATA(gp); + ++ ++ /* unregister the clipboard monitor */ ++ if (rfi->clipboard_handler) ++ { ++ g_signal_handler_disconnect(G_OBJECT(gtk_widget_get_clipboard(rfi->drawing_area, GDK_SELECTION_CLIPBOARD)), rfi->clipboard_handler); ++ rfi->clipboard_handler = NULL; ++ } + if (rfi->scale_handler) + { + g_source_remove(rfi->scale_handler); +diff --git a/remmina-plugins/rdp/rdp_plugin.h b/remmina-plugins/rdp/rdp_plugin.h +index ff66906..08b8891 100644 +--- a/remmina-plugins/rdp/rdp_plugin.h ++++ b/remmina-plugins/rdp/rdp_plugin.h +@@ -134,6 +134,7 @@ struct rf_context + GAsyncQueue* event_queue; + gint event_pipe[2]; + ++ gint clipboard_handler; + gint clipboard_wait; + uint32 requested_format; + }; +-- +1.7.10 + |