[balsa/wip/gtk4: 293/351] balsa-message et al: Use GtkEventControllerKey



commit 11d680e4ac18c6b4704443ae87718bc697849546
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date:   Thu Apr 26 12:14:14 2018 -0400

    balsa-message et al: Use GtkEventControllerKey
    
    …to catch more key presses, instead of connecting to
    GtkWidget::key-press-event, which will go away some day.
    
    Also move a controller from BalsaMessage to BalsaMimeWidgetText, where
    it is actually used.

 src/balsa-message.c          |    1 -
 src/balsa-message.h          |    1 -
 src/balsa-mime-widget-text.c |   11 +++++++----
 3 files changed, 7 insertions(+), 6 deletions(-)
---
diff --git a/src/balsa-message.c b/src/balsa-message.c
index 9324e26..c61a7eb 100644
--- a/src/balsa-message.c
+++ b/src/balsa-message.c
@@ -842,7 +842,6 @@ balsa_message_destroy(GObject * object)
     g_clear_object(&bm->scroll_key_controller);
     g_clear_object(&bm->button_key_controller);
     g_clear_object(&bm->header_key_controller);
-    g_clear_object(&bm->text_key_controller);
     g_clear_object(&bm->find_key_controller);
 
 #ifdef HAVE_HTML_WIDGET
diff --git a/src/balsa-message.h b/src/balsa-message.h
index 4ef5ff5..684c90f 100644
--- a/src/balsa-message.h
+++ b/src/balsa-message.h
@@ -104,7 +104,6 @@ struct _BalsaMessage {
         GtkEventController *scroll_key_controller;
         GtkEventController *button_key_controller;
         GtkEventController *header_key_controller;
-        GtkEventController *text_key_controller;
         GtkEventController *find_key_controller;
 };
 
diff --git a/src/balsa-mime-widget-text.c b/src/balsa-mime-widget-text.c
index a1bafcf..4d5ba61 100644
--- a/src/balsa-mime-widget-text.c
+++ b/src/balsa-mime-widget-text.c
@@ -151,6 +151,7 @@ struct _BalsaMimeWidgetText {
     LibBalsaMessageBody *mime_body;
     GtkGesture          *gesture;
     GtkEventController  *motion_controller;
+    GtkEventController  *key_controller;
     GList               *cite_bar_list;
     gint                 cite_bar_dimension;
     gint                 phrase_hl;
@@ -166,6 +167,7 @@ balsa_mime_widget_text_dispose(GObject * object) {
 
     g_clear_object(&mwt->gesture);
     g_clear_object(&mwt->motion_controller);
+    g_clear_object(&mwt->key_controller);
 
     G_OBJECT_CLASS(balsa_mime_widget_text_parent_class)->dispose(object);
 }
@@ -305,8 +307,8 @@ balsa_mime_widget_new_text(BalsaMessage * bm, LibBalsaMessageBody * mime_body,
               )
        libbalsa_wrap_string(ptr, balsa_app.browse_wrap_length);
 
-    bm->text_key_controller = gtk_event_controller_key_new(widget);
-    g_signal_connect(bm->text_key_controller, "key-pressed",
+    mwt->key_controller = gtk_event_controller_key_new(widget);
+    g_signal_connect(mwt->key_controller, "key-pressed",
                     G_CALLBACK(balsa_mime_widget_key_press_event), bm);
 
     mwt->mime_body = mime_body;
@@ -1216,8 +1218,9 @@ bm_widget_new_html(BalsaMessage * bm, LibBalsaMessageBody * mime_body)
                           (LibBalsaHtmlCallback) handle_url);
     g_object_set_data(G_OBJECT(widget), "mime-body", mime_body);
 
-    g_signal_connect(libbalsa_html_get_view_widget(widget),
-                     "key_press_event",
+    mwt->key_controller =
+        gtk_event_controller_key_new(libbalsa_html_get_view_widget(widget));
+    g_signal_connect(mwt->key_controller, "key-pressed",
                      G_CALLBACK(balsa_mime_widget_key_press_event), bm);
     if ((popup_menu = libbalsa_html_popup_menu_widget(widget)) != NULL) {
         g_object_set_data(G_OBJECT(popup_menu), "balsa-message", bm);


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