[balsa/wip/gtk4: 105/351] Use a tree-view's "row-activated" signal
- From: Peter Bloomfield <peterb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [balsa/wip/gtk4: 105/351] Use a tree-view's "row-activated" signal
- Date: Wed, 23 May 2018 21:25:46 +0000 (UTC)
commit 9080540f3b9d4cfb0bd33d8472d8fdc6c566ae66
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date: Tue Dec 19 17:26:31 2017 -0500
Use a tree-view's "row-activated" signal
libbalsa-gpgme-cb: Use the tree-view's "row-activated" signal instead
of waiting for a literal double click.
libbalsa/libbalsa-gpgme-cb.c | 39 ++++++++-------------------------------
1 files changed, 8 insertions(+), 31 deletions(-)
---
diff --git a/libbalsa/libbalsa-gpgme-cb.c b/libbalsa/libbalsa-gpgme-cb.c
index d067596..8f14d6c 100644
--- a/libbalsa/libbalsa-gpgme-cb.c
+++ b/libbalsa/libbalsa-gpgme-cb.c
@@ -126,34 +126,16 @@ lb_gpgme_passphrase(void *hook, const gchar * uid_hint,
static void
-tree_view_multi_press_cb(GtkGestureMultiPress * gesture,
- gint n_press,
- gdouble x,
- gdouble y,
- gpointer user_data)
+lb_gpgme_row_activated_cb(GtkTreeView * tree_view,
+ GtkTreePath * path,
+ GtkTreeViewColumn * column,
+ gpointer user_data)
{
- GtkTreeView *tree_view;
- GtkTreeSelection *selection;
- GtkTreePath *path;
GtkTreeIter iter;
GtkTreeModel *model;
- if (n_press != 2) {
- return;
- }
- gtk_gesture_set_state(GTK_GESTURE(gesture), GTK_EVENT_SEQUENCE_CLAIMED);
-
- tree_view = GTK_TREE_VIEW(gtk_event_controller_get_widget(GTK_EVENT_CONTROLLER(gesture)));
- selection = gtk_tree_view_get_selection(tree_view);
- if (gtk_tree_view_get_path_at_pos(tree_view, (gint) x, (gint) y, &path, NULL, NULL, NULL)) {
- if (!gtk_tree_selection_path_is_selected(selection, path)) {
- gtk_tree_view_set_cursor(tree_view, path, NULL, FALSE);
- gtk_tree_view_scroll_to_cell(tree_view, path, NULL, FALSE, 0, 0);
- }
- gtk_tree_path_free(path);
- }
-
- if (gtk_tree_selection_get_selected(selection, &model, &iter)) {
+ model = gtk_tree_view_get_model(tree_view);
+ if (gtk_tree_model_get_iter(model, &iter, path)) {
gpgme_key_t key;
GtkWidget *dialog;
@@ -164,7 +146,6 @@ tree_view_multi_press_cb(GtkGestureMultiPress * gesture,
}
}
-
gpgme_key_t
lb_gpgme_select_key(const gchar * user_name, lb_key_sel_md_t mode, GList * keys,
gpgme_protocol_t protocol, GtkWindow * parent)
@@ -183,7 +164,6 @@ lb_gpgme_select_key(const gchar * user_name, lb_key_sel_md_t mode, GList * keys,
gint width, height;
GtkCellRenderer *renderer;
GtkTreeViewColumn *column;
- GtkGesture *gesture;
/* FIXME: create dialog according to the Gnome HIG */
dialog = gtk_dialog_new_with_buttons(_("Select key"),
@@ -250,6 +230,8 @@ lb_gpgme_select_key(const gchar * user_name, lb_key_sel_md_t mode, GList * keys,
gtk_tree_sortable_set_sort_column_id(sortable, 0, GTK_SORT_ASCENDING);
tree_view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(model));
+ g_signal_connect(tree_view, "row-activated",
+ G_CALLBACK(lb_gpgme_row_activated_cb), dialog);
selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree_view));
g_object_set_data(G_OBJECT(selection), "dialog", dialog);
g_object_set_data(G_OBJECT(selection), "first", GUINT_TO_POINTER(1));
@@ -287,11 +269,6 @@ lb_gpgme_select_key(const gchar * user_name, lb_key_sel_md_t mode, GList * keys,
gtk_container_add(GTK_CONTAINER(scrolled_window), tree_view);
- gesture = gtk_gesture_multi_press_new(tree_view);
- g_object_set_data_full(G_OBJECT(tree_view), "balsa-gesture",
- gesture, g_object_unref);
- g_signal_connect(gesture, "pressed", G_CALLBACK(tree_view_multi_press_cb), dialog);
-
/* set window size to 2/3 of the parent */
gtk_window_get_size(parent, &width, &height);
gtk_window_set_default_size(GTK_WINDOW(dialog), (2 * width) / 3, (2 * height) / 3);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]