[balsa] Various: Connect to the "key-pressed" signal
- From: Peter Bloomfield <peterb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [balsa] Various: Connect to the "key-pressed" signal
- Date: Mon, 1 Jun 2020 19:55:33 +0000 (UTC)
commit d725a787ce00aaaa65e9c2476ed64e3a57ad4765
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date: Mon Jun 1 15:51:55 2020 -0400
Various: Connect to the "key-pressed" signal
Connect to the "key-pressed" signal of a GtkEventControllerKey instead
of the "key-press-event" widget signal.
* src/balsa-message.c (bm_header_tl_buttons), (balsa_message_init):
* src/balsa-mime-widget-message.c (bm_header_widget_new):
* src/balsa-mime-widget-text.c (balsa_mime_widget_new_text),
(bm_widget_new_html):
* src/balsa-mime-widget-callbacks.c
(balsa_mime_widget_key_pressed): rename and new signature;
* src/balsa-mime-widget-callbacks.h: ditto.
ChangeLog | 14 ++++++++++++++
src/balsa-message.c | 16 ++++++++++++----
src/balsa-mime-widget-callbacks.c | 18 +++++++++++-------
src/balsa-mime-widget-callbacks.h | 7 +++++--
src/balsa-mime-widget-message.c | 7 +++++--
src/balsa-mime-widget-text.c | 15 +++++++++------
6 files changed, 56 insertions(+), 21 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index de04026a6..759ed47ff 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2020-06-01 Peter Bloomfield <pbloomfield bellsouth net>
+
+ Various: Connect to the "key-pressed" signal of a
+ GtkEventControllerKey instead of the "key-press-event" widget
+ signal.
+
+ * src/balsa-message.c (bm_header_tl_buttons), (balsa_message_init):
+ * src/balsa-mime-widget-message.c (bm_header_widget_new):
+ * src/balsa-mime-widget-text.c (balsa_mime_widget_new_text),
+ (bm_widget_new_html):
+ * src/balsa-mime-widget-callbacks.c
+ (balsa_mime_widget_key_pressed): rename and new signature;
+ * src/balsa-mime-widget-callbacks.h: ditto.
+
2020-06-01 Peter Bloomfield <pbloomfield bellsouth net>
balsa-mblist: Connect to the "pressed" signal of a
diff --git a/src/balsa-message.c b/src/balsa-message.c
index d418c379b..82c1ae49f 100644
--- a/src/balsa-message.c
+++ b/src/balsa-message.c
@@ -252,6 +252,7 @@ bm_header_tl_buttons(BalsaMessage * balsa_message)
{
GPtrArray *array;
GtkWidget *button;
+ GtkEventController *key_controller;
array = g_ptr_array_new();
@@ -269,8 +270,11 @@ bm_header_tl_buttons(BalsaMessage * balsa_message)
gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
g_signal_connect(button, "clicked",
G_CALLBACK(balsa_headers_attachments_popup), balsa_message);
- g_signal_connect(button, "key_press_event",
- G_CALLBACK(balsa_mime_widget_key_press_event), balsa_message);
+
+ key_controller = gtk_event_controller_key_new(button);
+ g_signal_connect(key_controller, "key-pressed",
+ G_CALLBACK(balsa_mime_widget_key_pressed), balsa_message);
+
g_ptr_array_add(array, button);
g_ptr_array_add(array, NULL);
@@ -642,6 +646,7 @@ balsa_message_init(BalsaMessage * balsa_message)
GtkTreeStore *model;
GtkCellRenderer *renderer;
GtkTreeSelection *selection;
+ GtkEventController *key_controller;
balsa_message->switcher = gtk_stack_switcher_new();
gtk_box_pack_start(GTK_BOX(balsa_message), balsa_message->switcher, FALSE, FALSE, 0);
@@ -662,8 +667,11 @@ balsa_message_init(BalsaMessage * balsa_message)
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
- g_signal_connect(scroll, "key_press_event",
- G_CALLBACK(balsa_mime_widget_key_press_event), balsa_message);
+
+ key_controller = gtk_event_controller_key_new(scroll);
+ g_signal_connect(key_controller, "key-pressed",
+ G_CALLBACK(balsa_mime_widget_key_pressed), balsa_message);
+
gtk_box_pack_start(GTK_BOX(vbox), scroll, TRUE, TRUE, 0);
/* Widget to hold headers */
diff --git a/src/balsa-mime-widget-callbacks.c b/src/balsa-mime-widget-callbacks.c
index f67699706..0bc2c1aec 100644
--- a/src/balsa-mime-widget-callbacks.c
+++ b/src/balsa-mime-widget-callbacks.c
@@ -193,10 +193,14 @@ scroll_change(GtkAdjustment * adj, gint diff, BalsaMessage * bm)
gtk_adjustment_set_value(adj, MIN(value, upper));
}
-gint
-balsa_mime_widget_key_press_event(GtkWidget * widget, GdkEventKey * event,
- BalsaMessage * bm)
+gboolean
+balsa_mime_widget_key_pressed(GtkEventControllerKey *controller,
+ guint keyval,
+ guint keycode,
+ GdkModifierType state,
+ gpointer user_data)
{
+ BalsaMessage *bm = user_data;
GtkAdjustment *adj;
int page_adjust;
@@ -207,7 +211,7 @@ balsa_mime_widget_key_press_event(GtkWidget * widget, GdkEventKey * event,
(gtk_adjustment_get_page_size(adj) * balsa_app.pgdown_percent) /
100 : gtk_adjustment_get_page_increment(adj);
- switch (event->keyval) {
+ switch (keyval) {
case GDK_KEY_Up:
scroll_change(adj, -gtk_adjustment_get_step_increment(adj), NULL);
break;
@@ -221,19 +225,19 @@ balsa_mime_widget_key_press_event(GtkWidget * widget, GdkEventKey * event,
scroll_change(adj, page_adjust, NULL);
break;
case GDK_KEY_Home:
- if (event->state & GDK_CONTROL_MASK)
+ if (state & GDK_CONTROL_MASK)
scroll_change(adj, -gtk_adjustment_get_value(adj), NULL);
else
return FALSE;
break;
case GDK_KEY_End:
- if (event->state & GDK_CONTROL_MASK)
+ if (state & GDK_CONTROL_MASK)
scroll_change(adj, gtk_adjustment_get_upper(adj), NULL);
else
return FALSE;
break;
case GDK_KEY_F10:
- if (event->state & GDK_SHIFT_MASK) {
+ if (state & GDK_SHIFT_MASK) {
GtkWidget *current_widget = balsa_message_current_part_widget(bm);
if (current_widget) {
diff --git a/src/balsa-mime-widget-callbacks.h b/src/balsa-mime-widget-callbacks.h
index 5e0a82454..db97ac619 100644
--- a/src/balsa-mime-widget-callbacks.h
+++ b/src/balsa-mime-widget-callbacks.h
@@ -30,8 +30,11 @@ G_BEGIN_DECLS
void balsa_mime_widget_ctx_menu_cb(GtkWidget * menu_item, LibBalsaMessageBody * mime_body);
void balsa_mime_widget_ctx_menu_save(GtkWidget * parent_widget,
LibBalsaMessageBody * mime_body);
-gint balsa_mime_widget_key_press_event(GtkWidget * widget, GdkEventKey * event,
- BalsaMessage * bm);
+gboolean balsa_mime_widget_key_pressed(GtkEventControllerKey *controller,
+ guint keyval,
+ guint keycode,
+ GdkModifierType state,
+ gpointer user_data);
gint balsa_mime_widget_limit_focus(GtkWidget * widget, GdkEventFocus * event, BalsaMessage * bm);
gint balsa_mime_widget_unlimit_focus(GtkWidget * widget, GdkEventFocus * event, BalsaMessage * bm);
diff --git a/src/balsa-mime-widget-message.c b/src/balsa-mime-widget-message.c
index f4162e4c9..bfc8c2fc4 100644
--- a/src/balsa-mime-widget-message.c
+++ b/src/balsa-mime-widget-message.c
@@ -481,6 +481,7 @@ bm_header_widget_new(BalsaMessage * bm, GtkWidget * const * buttons)
#endif /* GTK_INFO_BAR_WRAPPING_IS_BROKEN */
GtkWidget *action_area;
GtkWidget *widget;
+ GtkEventController *key_controller;
grid = gtk_grid_new();
gtk_grid_set_column_spacing(GTK_GRID(grid), 12);
@@ -490,8 +491,10 @@ bm_header_widget_new(BalsaMessage * bm, GtkWidget * const * buttons)
G_CALLBACK(balsa_mime_widget_limit_focus), bm);
g_signal_connect(grid, "focus_out_event",
G_CALLBACK(balsa_mime_widget_unlimit_focus), bm);
- g_signal_connect(grid, "key_press_event",
- G_CALLBACK(balsa_mime_widget_key_press_event), bm);
+
+ key_controller = gtk_event_controller_key_new(grid);
+ g_signal_connect(key_controller, "key-pressed",
+ G_CALLBACK(balsa_mime_widget_key_pressed), bm);
#ifdef GTK_INFO_BAR_WRAPPING_IS_BROKEN
hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
diff --git a/src/balsa-mime-widget-text.c b/src/balsa-mime-widget-text.c
index 71a616538..793f77e46 100644
--- a/src/balsa-mime-widget-text.c
+++ b/src/balsa-mime-widget-text.c
@@ -187,6 +187,7 @@ balsa_mime_widget_new_text(BalsaMessage * bm, LibBalsaMessageBody * mime_body,
gboolean is_text_plain;
GtkWidget *widget;
GtkTextView *text_view;
+ GtkEventController *key_controller;
g_return_val_if_fail(mime_body != NULL, NULL);
g_return_val_if_fail(content_type != NULL, NULL);
@@ -258,9 +259,10 @@ balsa_mime_widget_new_text(BalsaMessage * bm, LibBalsaMessageBody * mime_body,
is_text_plain);
g_free(ptr);
- g_signal_connect(widget, "key_press_event",
- G_CALLBACK(balsa_mime_widget_key_press_event),
- (gpointer) bm);
+ key_controller = gtk_event_controller_key_new(libbalsa_html_get_view_widget(widget));
+ g_signal_connect(key_controller, "key-pressed",
+ G_CALLBACK(balsa_mime_widget_key_pressed), bm);
+
g_signal_connect(widget, "populate-popup",
G_CALLBACK(text_view_populate_popup), mwt);
g_signal_connect_after(widget, "realize",
@@ -1157,6 +1159,7 @@ bm_widget_new_html(BalsaMessage * bm, LibBalsaMessageBody * mime_body)
BalsaMimeWidget *mw = g_object_new(BALSA_TYPE_MIME_WIDGET, NULL);
GtkWidget *widget;
GtkWidget *popup_menu;
+ GtkEventController *key_controller;
widget =
libbalsa_html_new(mime_body,
@@ -1166,9 +1169,9 @@ bm_widget_new_html(BalsaMessage * bm, LibBalsaMessageBody * mime_body)
g_object_set_data(G_OBJECT(widget), "mime-body", mime_body);
- g_signal_connect(libbalsa_html_get_view_widget(widget),
- "key_press_event",
- G_CALLBACK(balsa_mime_widget_key_press_event), bm);
+ key_controller = gtk_event_controller_key_new(libbalsa_html_get_view_widget(widget));
+ g_signal_connect(key_controller, "key-pressed",
+ G_CALLBACK(balsa_mime_widget_key_pressed), 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]