Fix crash introduced by clipboard support (#827756)
parent
8a5eb05ef5
commit
75c2aae559
@ -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
|
||||
|
Loading…
Reference in new issue