[evolution] Cut/Copy/Paste in EHTMLEditor shows a runtime warning on the console



commit 92cb1eb6d35dcbbd64b9a4bd3be1aa9c39a28da2
Author: Milan Crha <mcrha redhat com>
Date:   Tue Aug 23 11:52:43 2016 +0200

    Cut/Copy/Paste in EHTMLEditor shows a runtime warning on the console
    
    Do not process clipboard signals in the background GtkTextView,
    which is not mapped and doesn't have clipboard.

 e-util/e-misc-utils.c |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)
---
diff --git a/e-util/e-misc-utils.c b/e-util/e-misc-utils.c
index 960cf87..c26142a 100644
--- a/e-util/e-misc-utils.c
+++ b/e-util/e-misc-utils.c
@@ -3512,6 +3512,13 @@ e_util_save_image_from_clipboard (GtkClipboard *clipboard)
        return uri;
 }
 
+static void
+e_util_stop_signal_emission_cb (gpointer instance,
+                               const gchar *signal_name)
+{
+       g_signal_stop_emission_by_name (instance, signal_name);
+}
+
 /**
  * e_util_check_gtk_bindings_in_key_press_event_cb:
  * @widget: a #GtkWidget, most often a #GtkWindow
@@ -3569,6 +3576,12 @@ e_util_check_gtk_bindings_in_key_press_event_cb (GtkWidget *widget,
 
                /* WebKit uses GtkTextView to process key bindings. Do the same. */
                text_view = gtk_text_view_new ();
+
+               /* Stop emissing for clipboard signals, to not populate the text_view */
+               g_signal_connect (text_view, "copy-clipboard", G_CALLBACK (e_util_stop_signal_emission_cb), 
(gpointer) "copy-clipboard");
+               g_signal_connect (text_view, "cut-clipboard", G_CALLBACK (e_util_stop_signal_emission_cb), 
(gpointer) "cut-clipboard");
+               g_signal_connect (text_view, "paste-clipboard", G_CALLBACK (e_util_stop_signal_emission_cb), 
(gpointer) "paste-clipboard");
+
                may_use = gtk_bindings_activate_event (G_OBJECT (text_view), key_event);
                gtk_widget_destroy (text_view);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]