[balsa/wip/gtk4: 316/351] Port to new GtkGesture/GtkEventController API
- From: Peter Bloomfield <peterb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [balsa/wip/gtk4: 316/351] Port to new GtkGesture/GtkEventController API
- Date: Wed, 23 May 2018 21:43:32 +0000 (UTC)
commit 3c72609637577037fbf80be317402554d22b2c1f
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date: Tue May 1 12:23:57 2018 -0400
Port to new GtkGesture/GtkEventController API
We no longer need to unref them.
libbalsa/address-view.c | 11 +++++----
src/ab-main.c | 11 ++++-----
src/balsa-index.c | 12 ++++++----
src/balsa-index.h | 2 -
src/balsa-mblist.c | 20 ++++-------------
src/balsa-mblist.h | 2 -
src/balsa-message.c | 38 ++++++++++++++++++++++-------------
src/balsa-message.h | 4 ---
src/balsa-mime-widget-image.c | 15 +++++++------
src/balsa-mime-widget-message.c | 7 ++++-
src/balsa-mime-widget-text.c | 42 +++++++++++++-------------------------
src/sendmsg-window.c | 5 +--
src/sendmsg-window.h | 2 -
13 files changed, 77 insertions(+), 94 deletions(-)
---
diff --git a/libbalsa/address-view.c b/libbalsa/address-view.c
index f09b0b3..ae6ef61 100644
--- a/libbalsa/address-view.c
+++ b/libbalsa/address-view.c
@@ -53,8 +53,6 @@ struct _LibBalsaAddressView {
gchar *domain;
- GtkEventController *key_controller;
-
/*
* Ephemera
*/
@@ -87,7 +85,6 @@ libbalsa_address_view_finalize(GObject * object)
LibBalsaAddressView *address_view = LIBBALSA_ADDRESS_VIEW(object);
g_free(address_view->domain);
- g_object_unref(address_view->key_controller);
G_OBJECT_CLASS(libbalsa_address_view_parent_class)->finalize(object);
}
@@ -501,6 +498,7 @@ lbav_insert_row(LibBalsaAddressView * address_view, gint row,
GtkWidget *entry;
GtkEntryCompletion *completion;
GtkListStore *store;
+ GtkEventController *controller;
gtk_grid_insert_row(grid, row);
@@ -557,9 +555,12 @@ lbav_insert_row(LibBalsaAddressView * address_view, gint row,
G_CALLBACK(lbav_entry_activated), address_view);
g_signal_connect(entry, "changed",
G_CALLBACK(lbav_entry_changed_cb), address_view);
- address_view->key_controller = gtk_event_controller_key_new(entry);
- g_signal_connect(address_view->key_controller, "key-pressed",
+
+ controller = gtk_event_controller_key_new();
+ g_signal_connect(controller, "key-pressed",
G_CALLBACK(lbav_key_pressed_cb), address_view);
+ gtk_widget_add_controller(entry, controller);
+
g_signal_connect(entry, "insert-text",
G_CALLBACK(lbav_insert_text_cb), address_view);
g_signal_connect_after(entry, "notify::has-focus",
diff --git a/src/ab-main.c b/src/ab-main.c
index 0e53cce..e9ef165 100644
--- a/src/ab-main.c
+++ b/src/ab-main.c
@@ -68,16 +68,12 @@ struct ABMainWindow {
LibBalsaAddress *displayed_address;
GMenu *file_menu;
-
- GtkEventController *key_controller;
} contacts_app;
static void
bab_cleanup(void)
{
- g_object_unref(contacts_app.key_controller);
-
gtk_main_quit();
}
@@ -956,6 +952,7 @@ bab_window_new(GtkApplication * application)
GtkWidget *scroll;
GtkWidget *browse_widget;
GtkWidget *edit_widget;
+ GtkEventController *controller;
contacts_app.window =
GTK_WINDOW(wnd = gtk_application_window_new(application));
@@ -1003,9 +1000,11 @@ bab_window_new(GtkApplication * application)
g_signal_connect(G_OBJECT(find_entry), "changed",
G_CALLBACK(balsa_ab_window_find), ab);
*/
- contacts_app.key_controller = gtk_event_controller_key_new(wnd);
- g_signal_connect(contacts_app.key_controller, "key-pressed",
+ controller = gtk_event_controller_key_new();
+ g_signal_connect(controller, "key-pressed",
G_CALLBACK(ew_key_pressed), &contacts_app);
+ gtk_widget_add_controller(wnd, controller);
+
gtk_window_set_default_size(GTK_WINDOW(wnd), 500, 400);
gtk_widget_show(wnd);
diff --git a/src/balsa-index.c b/src/balsa-index.c
index c317d46..558b1b6 100644
--- a/src/balsa-index.c
+++ b/src/balsa-index.c
@@ -210,7 +210,6 @@ bndx_destroy(GObject * obj)
g_clear_pointer(&index->filter_string, g_free);
g_clear_object(&index->popup_menu);
- g_clear_object(&index->gesture);
G_OBJECT_CLASS(balsa_index_parent_class)->dispose(obj);
}
@@ -259,12 +258,14 @@ bndx_string_width(const gchar * text)
static void
balsa_index_init(BalsaIndex * index)
{
+ GtkWidget *widget = GTK_WIDGET(index);
GtkTreeView *tree_view = GTK_TREE_VIEW(index);
GtkTreeSelection *selection = gtk_tree_view_get_selection(tree_view);
GtkCellRenderer *renderer;
GtkTreeViewColumn *column;
GdkContentFormats *formats;
GtkGesture *gesture;
+ GtkEventController *controller;
#if defined(TREE_VIEW_FIXED_HEIGHT)
gtk_tree_view_set_fixed_height_mode(tree_view, TRUE);
@@ -393,14 +394,15 @@ balsa_index_init(BalsaIndex * index)
/* we want to handle button presses to pop up context menus if
* necessary */
- index->gesture = gesture = gtk_gesture_multi_press_new(GTK_WIDGET(index));
+ gesture = gtk_gesture_multi_press_new();
gtk_gesture_single_set_button(GTK_GESTURE_SINGLE(gesture), 0);
g_signal_connect(gesture, "pressed",
G_CALLBACK(bndx_gesture_pressed_cb), NULL);
/* We need to claim the event sequence before GtkTreeView gets it,
* so we jump in at the capture phase: */
- gtk_event_controller_set_propagation_phase(GTK_EVENT_CONTROLLER(gesture),
- GTK_PHASE_CAPTURE);
+ controller = GTK_EVENT_CONTROLLER(gesture);
+ gtk_event_controller_set_propagation_phase(controller, GTK_PHASE_CAPTURE);
+ gtk_widget_add_controller(widget, controller);
g_signal_connect(tree_view, "row-activated",
G_CALLBACK(bndx_row_activated), NULL);
@@ -433,7 +435,7 @@ balsa_index_init(BalsaIndex * index)
G_CALLBACK(bndx_drag_cb), NULL);
balsa_index_set_column_widths(index);
- gtk_widget_show (GTK_WIDGET(index));
+ gtk_widget_show(widget);
}
/*
diff --git a/src/balsa-index.h b/src/balsa-index.h
index c065621..20fc53b 100644
--- a/src/balsa-index.h
+++ b/src/balsa-index.h
@@ -70,8 +70,6 @@ struct _BalsaIndex {
LibBalsaMailboxSearchIter *search_iter;
BalsaIndexWidthPreference width_preference;
-
- GtkGesture *gesture;
};
/* tree model columns */
diff --git a/src/balsa-mblist.c b/src/balsa-mblist.c
index e22a64e..c540e3b 100644
--- a/src/balsa-mblist.c
+++ b/src/balsa-mblist.c
@@ -138,16 +138,6 @@ static void bmbl_expand_to_row(BalsaMBList * mblist, GtkTreePath * path);
G_DEFINE_TYPE(BalsaMBList, balsa_mblist, GTK_TYPE_TREE_VIEW)
static void
-bmbl_dispose(GObject * object)
-{
- BalsaMBList *mblist = (BalsaMBList *) object;
-
- g_clear_object(&mblist->gesture);
-
- G_OBJECT_CLASS(balsa_mblist_parent_class)->dispose(object);
-}
-
-static void
balsa_mblist_class_init(BalsaMBListClass * klass)
{
GObjectClass *object_class;
@@ -169,7 +159,6 @@ balsa_mblist_class_init(BalsaMBListClass * klass)
/* GObject signals */
object_class->set_property = bmbl_set_property;
object_class->get_property = bmbl_get_property;
- object_class->dispose = bmbl_dispose;
/* GtkWidget signals */
widget_class->drag_motion = bmbl_drag_motion;
@@ -1152,12 +1141,13 @@ balsa_mblist_default_signal_bindings(BalsaMBList * mblist)
GtkGesture *gesture;
GdkContentFormats *formats;
- mblist->gesture= gesture = gtk_gesture_multi_press_new(GTK_WIDGET(mblist));
+ gesture = gtk_gesture_multi_press_new();
gtk_gesture_single_set_button(GTK_GESTURE_SINGLE(gesture), 0);
g_signal_connect(gesture, "pressed",
G_CALLBACK(bmbl_gesture_pressed_cb), NULL);
+ gtk_widget_add_controller(GTK_WIDGET(mblist), GTK_EVENT_CONTROLLER(gesture));
- g_signal_connect_after(G_OBJECT(mblist), "size-allocate",
+ g_signal_connect_after(mblist, "size-allocate",
G_CALLBACK(bmbl_column_resize), NULL);
formats = gdk_content_formats_new(bmbl_drop_types, G_N_ELEMENTS(bmbl_drop_types));
@@ -1168,10 +1158,10 @@ balsa_mblist_default_signal_bindings(BalsaMBList * mblist)
GDK_ACTION_MOVE);
gdk_content_formats_unref(formats);
- g_signal_connect(G_OBJECT(mblist), "drag-data-received",
+ g_signal_connect(mblist, "drag-data-received",
G_CALLBACK(bmbl_drag_cb), NULL);
- g_signal_connect(G_OBJECT(mblist), "row-activated",
+ g_signal_connect(mblist, "row-activated",
G_CALLBACK(bmbl_row_activated_cb), NULL);
}
diff --git a/src/balsa-mblist.h b/src/balsa-mblist.h
index 9644875..93f7b84 100644
--- a/src/balsa-mblist.h
+++ b/src/balsa-mblist.h
@@ -42,8 +42,6 @@ struct _BalsaMBList {
/* to set sort order in an idle callback */
gint sort_column_id;
guint sort_idle_id;
-
- GtkGesture *gesture;
};
GtkWidget *balsa_mblist_new(void);
diff --git a/src/balsa-message.c b/src/balsa-message.c
index 0514551..c36d879 100644
--- a/src/balsa-message.c
+++ b/src/balsa-message.c
@@ -206,6 +206,7 @@ bm_header_tl_buttons(BalsaMessage * bm)
{
GPtrArray *array;
GtkWidget *button;
+ GtkEventController *controller;
array = g_ptr_array_new();
@@ -231,9 +232,12 @@ bm_header_tl_buttons(BalsaMessage * bm)
gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
g_signal_connect(button, "clicked",
G_CALLBACK(balsa_headers_attachments_popup), bm);
- bm->button_key_controller = gtk_event_controller_key_new(button);
- g_signal_connect(bm->button_key_controller, "key-pressed",
+
+ controller = gtk_event_controller_key_new();
+ g_signal_connect(controller, "key-pressed",
G_CALLBACK(balsa_mime_widget_key_press_event), bm);
+ gtk_widget_add_controller(button, controller);
+
g_object_set_data(G_OBJECT(bm), BALSA_MESSAGE_ATTACH_BTN, button);
g_ptr_array_add(array, button);
@@ -629,6 +633,7 @@ balsa_message_init(BalsaMessage * bm)
GtkCellRenderer *renderer;
GtkTreeSelection *selection;
GtkWidget *widget;
+ GtkEventController *controller;
bm->switcher = gtk_stack_switcher_new();
gtk_box_pack_start(GTK_BOX(bm), bm->switcher);
@@ -650,9 +655,12 @@ balsa_message_init(BalsaMessage * bm)
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
- bm->scroll_key_controller = gtk_event_controller_key_new(scroll);
- g_signal_connect(bm->scroll_key_controller, "key-pressed",
+
+ controller = gtk_event_controller_key_new();
+ g_signal_connect(controller, "key-pressed",
G_CALLBACK(balsa_mime_widget_key_press_event), bm);
+ gtk_widget_add_controller(scroll, controller);
+
gtk_widget_set_vexpand(scroll, TRUE);
gtk_box_pack_start(GTK_BOX(vbox), scroll);
@@ -684,10 +692,12 @@ balsa_message_init(BalsaMessage * bm)
g_signal_connect(bm->treeview, "row-activated",
G_CALLBACK(tree_activate_row_cb), bm);
- bm->gesture = gesture = gtk_gesture_multi_press_new(GTK_WIDGET(bm->treeview));
+ gesture = gtk_gesture_multi_press_new();
gtk_gesture_single_set_button(GTK_GESTURE_SINGLE(gesture), 0);
g_signal_connect(gesture, "pressed",
G_CALLBACK(bm_gesture_pressed_cb), NULL);
+ gtk_widget_add_controller(GTK_WIDGET(bm->treeview),
+ GTK_EVENT_CONTROLLER(gesture));
g_signal_connect(bm->treeview, "popup-menu",
G_CALLBACK(tree_menu_popup_key_cb), bm);
@@ -766,11 +776,6 @@ balsa_message_destroy(GObject * object)
g_clear_object(&bm->save_all_popup);
g_clear_object(&bm->parts_popup);
g_clear_object(&bm->bm_widget);
- g_clear_object(&bm->gesture);
- 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->find_key_controller);
#ifdef HAVE_HTML_WIDGET
g_clear_object(&bm->html_find_info);
@@ -944,18 +949,23 @@ bm_gesture_pressed_cb(GtkGestureMultiPress *multi_press,
gpointer user_data)
{
GtkGesture *gesture;
+ GdkEventSequence *sequence;
const GdkEvent *event;
+ GtkEventController *controller;
GtkTreeView *tree_view;
BalsaMessage * bm = (BalsaMessage *) user_data;
GtkTreePath *path;
gesture = GTK_GESTURE(multi_press);
- event = gtk_gesture_get_last_event(gesture, gtk_gesture_get_last_updated_sequence(gesture));
+ sequence = gtk_gesture_get_last_updated_sequence(gesture);
+ event = gtk_gesture_get_last_event(gesture, sequence);
+
g_return_if_fail(event != NULL);
if (!gdk_event_triggers_context_menu(event))
return;
- tree_view = GTK_TREE_VIEW(gtk_event_controller_get_widget(GTK_EVENT_CONTROLLER(gesture)));
+ controller = GTK_EVENT_CONTROLLER(gesture);
+ tree_view = GTK_TREE_VIEW(gtk_event_controller_get_widget(controller));
/* If the part which received the click is already selected, don't change
* the selection and check if more than one part is selected. Pop up the
@@ -3220,8 +3230,8 @@ balsa_message_find_in_message(BalsaMessage * bm)
libbalsa_window_block_accels((GtkApplicationWindow *) toplevel, TRUE);
if (bm->find_key_controller == NULL) {
- bm->find_key_controller =
- gtk_event_controller_key_new(gtk_widget_get_toplevel(GTK_WIDGET(bm)));
+ bm->find_key_controller = gtk_event_controller_key_new();
+ gtk_widget_add_controller(toplevel, bm->find_key_controller);
}
if (bm->key_pressed_id == 0) {
bm->key_pressed_id =
diff --git a/src/balsa-message.h b/src/balsa-message.h
index ff3bbb4..c6d3ef3 100644
--- a/src/balsa-message.h
+++ b/src/balsa-message.h
@@ -100,10 +100,6 @@ struct _BalsaMessage {
gpointer html_find_info;
#endif /* HAVE_HTML_WIDGET */
- GtkGesture *gesture;
- GtkEventController *scroll_key_controller;
- GtkEventController *button_key_controller;
- GtkEventController *header_key_controller;
GtkEventController *find_key_controller;
gulong key_pressed_id;
};
diff --git a/src/balsa-mime-widget-image.c b/src/balsa-mime-widget-image.c
index df46f2c..3d28e40 100644
--- a/src/balsa-mime-widget-image.c
+++ b/src/balsa-mime-widget-image.c
@@ -36,7 +36,6 @@ struct _BalsaMimeWidgetImage {
guint img_check_size_id;
GdkPixbuf *pixbuf;
- GtkGesture *gesture;
};
G_DEFINE_TYPE(BalsaMimeWidgetImage,
@@ -48,7 +47,6 @@ balsa_mime_widget_image_init(BalsaMimeWidgetImage * mwi)
{
mwi->img_check_size_id = 0;
mwi->pixbuf = NULL;
- mwi->gesture = NULL;
}
static void
@@ -58,7 +56,6 @@ balsa_mime_widget_image_dispose(GObject * object)
libbalsa_clear_source_id(&mwi->img_check_size_id);
g_clear_object(&mwi->pixbuf);
- g_clear_object(&mwi->gesture);
G_OBJECT_CLASS(balsa_mime_widget_image_parent_class)->dispose(object);
}
@@ -83,10 +80,12 @@ balsa_mime_widget_image_gesture_pressed_cb(GtkGestureMultiPress *multi_press,
{
GtkMenu *menu = user_data;
GtkGesture *gesture;
+ GdkEventSequence *sequence;
const GdkEvent *event;
gesture = GTK_GESTURE(multi_press);
- event = gtk_gesture_get_last_event(gesture, gtk_gesture_get_last_updated_sequence(gesture));
+ sequence = gtk_gesture_get_last_updated_sequence(gesture);
+ event = gtk_gesture_get_last_event(gesture, sequence);
g_return_if_fail(event != NULL);
if (gdk_event_triggers_context_menu(event)) {
@@ -177,6 +176,7 @@ balsa_mime_widget_new_image(BalsaMessage * bm,
GtkWidget *image;
GError * load_err = NULL;
BalsaMimeWidgetImage *mwi;
+ GtkGesture *gesture;
BalsaMimeWidget *mw;
g_return_val_if_fail(mime_body != NULL, NULL);
@@ -200,10 +200,11 @@ balsa_mime_widget_new_image(BalsaMessage * bm,
g_signal_connect_swapped(image, "size-allocate",
G_CALLBACK(img_size_allocate_cb), mwi);
- mwi->gesture = gtk_gesture_multi_press_new(GTK_WIDGET(image));
- gtk_gesture_single_set_button(GTK_GESTURE_SINGLE(mwi->gesture), 0);
- g_signal_connect(mwi->gesture, "pressed",
+ gesture = gtk_gesture_multi_press_new();
+ gtk_gesture_single_set_button(GTK_GESTURE_SINGLE(gesture), 0);
+ g_signal_connect(gesture, "pressed",
G_CALLBACK(balsa_mime_widget_image_gesture_pressed_cb), data);
+ gtk_widget_add_controller(image, GTK_EVENT_CONTROLLER(gesture));
mw = (BalsaMimeWidget *) mwi;
balsa_mime_widget_set_widget(mw, image);
diff --git a/src/balsa-mime-widget-message.c b/src/balsa-mime-widget-message.c
index 9aa03fe..2e9d93a 100644
--- a/src/balsa-mime-widget-message.c
+++ b/src/balsa-mime-widget-message.c
@@ -472,6 +472,7 @@ static GtkWidget *
bm_header_widget_new(BalsaMessage * bm, GtkWidget * const * buttons)
{
GtkWidget *grid;
+ GtkEventController *controller;
#ifdef GTK_INFO_BAR_WRAPPING_IS_BROKEN
GtkWidget *hbox;
#else /* GTK_INFO_BAR_WRAPPING_IS_BROKEN */
@@ -487,9 +488,11 @@ bm_header_widget_new(BalsaMessage * bm, GtkWidget * const * buttons)
g_signal_connect(grid, "notify::has-focus",
G_CALLBACK(balsa_mime_widget_check_focus), bm);
- bm->header_key_controller = gtk_event_controller_key_new(grid);
- g_signal_connect(bm->header_key_controller, "key-pressed",
+
+ controller = gtk_event_controller_key_new();
+ g_signal_connect(controller, "key-pressed",
G_CALLBACK(balsa_mime_widget_key_press_event), bm);
+ gtk_widget_add_controller(grid, controller);
#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 46a70ba..f4a5664 100644
--- a/src/balsa-mime-widget-text.c
+++ b/src/balsa-mime-widget-text.c
@@ -145,9 +145,6 @@ struct _BalsaMimeWidgetText {
GList *url_list;
message_url_t *current_url;
LibBalsaMessageBody *mime_body;
- GtkGesture *gesture;
- GtkEventController *motion_controller;
- GtkEventController *key_controller;
GList *cite_bar_list;
gint cite_bar_dimension;
gint phrase_hl;
@@ -156,19 +153,6 @@ struct _BalsaMimeWidgetText {
G_DEFINE_TYPE(BalsaMimeWidgetText, balsa_mime_widget_text, BALSA_TYPE_MIME_WIDGET)
static void
-balsa_mime_widget_text_dispose(GObject * object) {
- BalsaMimeWidgetText *mwt;
-
- mwt = BALSA_MIME_WIDGET_TEXT(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);
-}
-
-static void
balsa_mime_widget_text_finalize(GObject * object) {
BalsaMimeWidgetText *mwt;
@@ -184,7 +168,6 @@ balsa_mime_widget_text_class_init(BalsaMimeWidgetTextClass * klass)
{
GObjectClass *object_class = (GObjectClass *) klass;
- object_class->dispose = balsa_mime_widget_text_dispose;
object_class->finalize = balsa_mime_widget_text_finalize;
}
@@ -238,7 +221,7 @@ balsa_mime_widget_new_text(BalsaMessage * bm, LibBalsaMessageBody * mime_body,
GError *err = NULL;
gboolean is_text_plain;
GtkWidget *widget;
-
+ GtkEventController *controller;
g_return_val_if_fail(mime_body != NULL, NULL);
g_return_val_if_fail(content_type != NULL, NULL);
@@ -303,9 +286,10 @@ balsa_mime_widget_new_text(BalsaMessage * bm, LibBalsaMessageBody * mime_body,
)
libbalsa_wrap_string(ptr, balsa_app.browse_wrap_length);
- mwt->key_controller = gtk_event_controller_key_new(widget);
- g_signal_connect(mwt->key_controller, "key-pressed",
+ controller = gtk_event_controller_key_new();
+ g_signal_connect(controller, "key-pressed",
G_CALLBACK(balsa_mime_widget_key_press_event), bm);
+ gtk_widget_add_controller(widget, controller);
mwt->mime_body = mime_body;
g_signal_connect(G_OBJECT(widget), "populate-popup",
@@ -321,17 +305,21 @@ balsa_mime_widget_new_text(BalsaMessage * bm, LibBalsaMessageBody * mime_body,
g_signal_connect_after(G_OBJECT(widget), "realize",
G_CALLBACK(fix_text_widget), mwt->url_list);
if (mwt->url_list != NULL) {
- mwt->gesture = gtk_gesture_multi_press_new(widget);
- g_signal_connect(mwt->gesture, "pressed",
+ GtkGesture *gesture;
+
+ gesture = gtk_gesture_multi_press_new();
+ g_signal_connect(gesture, "pressed",
G_CALLBACK(store_button_coords), NULL);
- g_signal_connect(mwt->gesture, "released",
- G_CALLBACK(check_call_url), mwt);
+ g_signal_connect(gesture, "released",
+ G_CALLBACK(check_call_url), mwt);
+ gtk_widget_add_controller(widget, GTK_EVENT_CONTROLLER(gesture));
- mwt->motion_controller = gtk_event_controller_motion_new(widget);
- g_signal_connect(mwt->motion_controller, "motion",
+ controller = gtk_event_controller_motion_new();
+ g_signal_connect(controller, "motion",
G_CALLBACK(mwt_controller_motion_cb), mwt);
- g_signal_connect(mwt->motion_controller, "leave",
+ g_signal_connect(controller, "leave",
G_CALLBACK(mwt_controller_leave_cb), mwt);
+ gtk_widget_add_controller(widget, controller);
}
if (is_text_plain) {
diff --git a/src/sendmsg-window.c b/src/sendmsg-window.c
index 3a9d28a..b7dbce7 100644
--- a/src/sendmsg-window.c
+++ b/src/sendmsg-window.c
@@ -656,7 +656,6 @@ balsa_sendmsg_destroy_handler(BalsaSendmsg * bsmsg)
bsmsg->ident);
g_free(bsmsg->spell_check_lang);
- g_clear_object(&bsmsg->gesture);
quit_on_close = bsmsg->quit_on_close;
g_free(bsmsg);
@@ -2720,10 +2719,11 @@ sw_attachment_list(BalsaSendmsg *bsmsg)
gtk_tree_selection_set_mode(gtk_tree_view_get_selection(view),
GTK_SELECTION_SINGLE);
- bsmsg->gesture = gesture = gtk_gesture_multi_press_new(tree_view);
+ gesture = gtk_gesture_multi_press_new();
gtk_gesture_single_set_button(GTK_GESTURE_SINGLE(gesture), 0);
g_signal_connect(gesture, "pressed",
G_CALLBACK(sw_gesture_pressed_cb), NULL);
+ gtk_widget_add_controller(tree_view, GTK_EVENT_CONTROLLER(gesture));
g_signal_connect(view, "popup-menu",
G_CALLBACK(attachment_popup_cb), NULL);
@@ -6644,7 +6644,6 @@ sendmsg_window_new()
bsmsg->update_config = FALSE;
bsmsg->quit_on_close = FALSE;
bsmsg->state = SENDMSG_STATE_CLEAN;
- bsmsg->gesture = NULL;
bsmsg->window = window =
gtk_application_window_new(balsa_app.application);
diff --git a/src/sendmsg-window.h b/src/sendmsg-window.h
index 1de4074..e77aa4a 100644
--- a/src/sendmsg-window.h
+++ b/src/sendmsg-window.h
@@ -107,8 +107,6 @@ G_BEGIN_DECLS
GtkWidget *paned;
gboolean ready_to_send;
-
- GtkGesture *gesture;
};
BalsaSendmsg *sendmsg_window_compose(void);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]