[balsa/wip/gtk4: 290/351] application-helpers: New function to block accels



commit f8264ec528831c71db001a37c9b4f94aaea33b39
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date:   Thu Apr 26 09:49:20 2018 -0400

    application-helpers: New function to block accels
    
    which is needed to get the "find-in-message" bar to work. Key-presses
    are interpreted as accelerators before we see them in the
    "key-press-event" handler.

 libbalsa/application-helpers.c |   12 ++++++++++++
 libbalsa/application-helpers.h |    3 +++
 2 files changed, 15 insertions(+), 0 deletions(-)
---
diff --git a/libbalsa/application-helpers.c b/libbalsa/application-helpers.c
index 619ed35..129ef54 100644
--- a/libbalsa/application-helpers.c
+++ b/libbalsa/application-helpers.c
@@ -49,6 +49,11 @@ accel_activate(GtkAccelGroup * accel_group,
                gpointer        user_data)
 {
     AccelInfo *info = user_data;
+    gboolean block_accels;
+
+    block_accels = GPOINTER_TO_INT(g_object_get_data(acceleratable, "block-accels"));
+    if (block_accels)
+        return FALSE;
 
     g_action_activate(info->action, info->parameter);
 
@@ -216,6 +221,13 @@ libbalsa_window_set_accels(GtkApplicationWindow * window,
     g_object_unref(accel_group);
 }
 
+void
+libbalsa_window_block_accels(GtkApplicationWindow * window,
+                             gboolean               block)
+{
+    g_object_set_data(G_OBJECT(window), "block-accels", GINT_TO_POINTER(!!block));
+}
+
 /*
  * libbalsa_window_add_accelerator
  *
diff --git a/libbalsa/application-helpers.h b/libbalsa/application-helpers.h
index a460a0a..4d5223e 100644
--- a/libbalsa/application-helpers.h
+++ b/libbalsa/application-helpers.h
@@ -41,6 +41,9 @@ GtkWidget *libbalsa_window_get_menu_bar(GtkApplicationWindow * window,
 void libbalsa_window_set_accels        (GtkApplicationWindow * window,
                                         GMenuModel           * menu_model);
 
+void libbalsa_window_block_accels      (GtkApplicationWindow * window,
+                                        gboolean               block);
+
 void libbalsa_window_add_accelerator   (GtkApplicationWindow * window,
                                         const gchar          * accel,
                                         const gchar          * action_name);


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