[balsa] compose window: Connect to the "pressed" signal
- From: Peter Bloomfield <peterb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [balsa] compose window: Connect to the "pressed" signal
- Date: Sat, 6 Jun 2020 14:35:37 +0000 (UTC)
commit a5fd6830c88f4e19f3e5cf0087b57f1e1f712add
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date: Sat Jun 6 10:34:32 2020 -0400
compose window: Connect to the "pressed" signal
Connect to the "pressed" signal of a GtkGestureMultiPress instead of the
"button-press-event" widget signal.
* src/sendmsg-window.c (attachment_button_press_cb), (sw_attachment_list):
ChangeLog | 9 +++++++++
src/sendmsg-window.c | 40 +++++++++++++++++++++++++++-------------
2 files changed, 36 insertions(+), 13 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index f05c11cda..d31e6a972 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2020-06-06 Peter Bloomfield <pbloomfield bellsouth net>
+
+ compose window: Connect to the "pressed" signal of a
+ GtkGestureMultiPress instead of the "button-press-event" widget
+ signal.
+
+ * src/sendmsg-window.c (attachment_button_press_cb),
+ (sw_attachment_list):
+
2020-06-05 Peter Bloomfield <pbloomfield bellsouth net>
mime-widget-text: Use bmwt_html_ prefix
diff --git a/src/sendmsg-window.c b/src/sendmsg-window.c
index 52ce56127..9d840c627 100644
--- a/src/sendmsg-window.c
+++ b/src/sendmsg-window.c
@@ -2401,19 +2401,31 @@ create_from_entry(GtkWidget * grid, BalsaSendmsg * bsmsg)
create_email_or_string_entry(bsmsg, grid, _("F_rom:"), 0, bsmsg->from);
}
-static gboolean
-attachment_button_press_cb(GtkWidget * widget, GdkEventButton * event,
- gpointer data)
+static void
+attachment_button_press_cb(GtkGestureMultiPress *multi_press,
+ gint n_press,
+ gdouble x,
+ gdouble y,
+ gpointer user_data)
{
- GtkTreeView *tree_view = GTK_TREE_VIEW(widget);
+ GtkTreeView *tree_view = user_data;
+ GtkGesture *gesture;
+ const GdkEvent *event;
GtkTreePath *path;
+ gint bx, by;
- g_return_val_if_fail(event, FALSE);
- if (!gdk_event_triggers_context_menu((GdkEvent *) event)
- || event->window != gtk_tree_view_get_bin_window(tree_view))
- return FALSE;
+ gesture = GTK_GESTURE(multi_press);
+ event = gtk_gesture_get_last_event(gesture, gtk_gesture_get_last_updated_sequence(gesture));
+
+ if (!gdk_event_triggers_context_menu(event) ||
+ gdk_event_get_window(event) != gtk_tree_view_get_bin_window(tree_view)) {
+ return;
+ }
+
+ gtk_tree_view_convert_widget_to_bin_window_coords(tree_view, (gint) x, (gint) y,
+ &bx, &by);
- if (gtk_tree_view_get_path_at_pos(tree_view, event->x, event->y,
+ if (gtk_tree_view_get_path_at_pos(tree_view, bx, by,
&path, NULL, NULL, NULL)) {
GtkTreeIter iter;
GtkTreeSelection * selection =
@@ -2438,8 +2450,6 @@ attachment_button_press_cb(GtkWidget * widget, GdkEventButton * event,
}
gtk_tree_path_free(path);
}
-
- return TRUE;
}
@@ -2588,6 +2598,7 @@ sw_attachment_list(BalsaSendmsg *bsmsg)
GtkTreeView *view;
GtkTreeViewColumn *column;
GtkWidget *frame;
+ GtkGesture *gesture;
grid = gtk_grid_new();
gtk_grid_set_row_spacing(GTK_GRID(grid), 6);
@@ -2670,8 +2681,11 @@ sw_attachment_list(BalsaSendmsg *bsmsg)
GTK_SELECTION_SINGLE);
g_signal_connect(view, "popup-menu",
G_CALLBACK(attachment_popup_cb), NULL);
- g_signal_connect(view, "button_press_event",
- G_CALLBACK(attachment_button_press_cb), NULL);
+
+ gesture = gtk_gesture_multi_press_new(tree_view);
+ gtk_gesture_single_set_button(GTK_GESTURE_SINGLE(gesture), 0);
+ g_signal_connect(gesture, "pressed",
+ G_CALLBACK(attachment_button_press_cb), view);
g_signal_connect(bsmsg->window, "drag_data_received",
G_CALLBACK(attachments_add), bsmsg);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]