Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/Remmina/Remmina.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Louis Dupond <jean-louis@dupond.be>2012-05-08 16:44:16 +0400
committerJean-Louis Dupond <jean-louis@dupond.be>2012-05-08 16:44:16 +0400
commit6aa213afb879bbd00964782d745b300fcc310af9 (patch)
treef9d75ad2dece616e52f4cc0df20124688c7d60df /remmina-plugins/rdp
parentd41cbc9ae5df84628341f2525ff03063340a2ff4 (diff)
Disconnect signal handler after disconnect
Diffstat (limited to 'remmina-plugins/rdp')
-rw-r--r--remmina-plugins/rdp/rdp_event.c10
-rw-r--r--remmina-plugins/rdp/rdp_plugin.h1
2 files changed, 9 insertions, 2 deletions
diff --git a/remmina-plugins/rdp/rdp_event.c b/remmina-plugins/rdp/rdp_event.c
index a936fb1fe..2c050c6a1 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 ff66906b2..08b88911a 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;
};