pidgin/gtkblist.c

branch
gtk4
changeset 41594
30ad4d17661f
parent 41578
a76d00557fea
child 41598
2b34cd990c16
equal deleted inserted replaced
41593:6928f02e807a 41594:30ad4d17661f
1662 return TRUE; 1662 return TRUE;
1663 } 1663 }
1664 #endif 1664 #endif
1665 gtk_tree_path_free(path); 1665 gtk_tree_path_free(path);
1666 1666
1667 return FALSE;
1668 }
1669
1670 static gboolean
1671 pidgin_blist_popup_menu_cb(GtkWidget *tv, gpointer data)
1672 {
1673 PidginBuddyList *gtkblist = data;
1674 PurpleBlistNode *node;
1675 GtkTreeIter iter;
1676 GtkTreeSelection *sel;
1677 gboolean handled = FALSE;
1678
1679 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tv));
1680 if (!gtk_tree_selection_get_selected(sel, NULL, &iter))
1681 return FALSE;
1682
1683 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &node, -1);
1684
1685 /* Shift+F10 draws a context menu */
1686 handled = pidgin_blist_show_context_menu(tv, node, -1, -1);
1687
1688 return handled; 1667 return handled;
1689 } 1668 }
1690 1669
1691 /* Altered from do_colorshift in gnome-panel */ 1670 /* Altered from do_colorshift in gnome-panel */
1692 static void 1671 static void
3112 G_CALLBACK(gtk_blist_row_expanded_cb), gtkblist); 3091 G_CALLBACK(gtk_blist_row_expanded_cb), gtkblist);
3113 g_signal_connect(G_OBJECT(gtkblist->treeview), "row-collapsed", 3092 g_signal_connect(G_OBJECT(gtkblist->treeview), "row-collapsed",
3114 G_CALLBACK(gtk_blist_row_collapsed_cb), gtkblist); 3093 G_CALLBACK(gtk_blist_row_collapsed_cb), gtkblist);
3115 3094
3116 click = gtk_gesture_click_new(); 3095 click = gtk_gesture_click_new();
3096 gtk_gesture_single_set_button(GTK_GESTURE_SINGLE(click), 0);
3117 g_signal_connect(click, "pressed", G_CALLBACK(gtk_blist_button_press_cb), 3097 g_signal_connect(click, "pressed", G_CALLBACK(gtk_blist_button_press_cb),
3118 gtkblist); 3098 gtkblist);
3119 gtk_widget_add_controller(gtkblist->treeview, GTK_EVENT_CONTROLLER(click)); 3099 gtk_widget_add_controller(gtkblist->treeview, GTK_EVENT_CONTROLLER(click));
3120 3100
3121 key_controller = gtk_event_controller_key_new(); 3101 key_controller = gtk_event_controller_key_new();
3122 g_signal_connect(G_OBJECT(key_controller), "key-pressed", 3102 g_signal_connect(G_OBJECT(key_controller), "key-pressed",
3123 G_CALLBACK(pidgin_blist_key_press_cb), gtkblist); 3103 G_CALLBACK(pidgin_blist_key_press_cb), gtkblist);
3124 gtk_widget_add_controller(gtkblist->treeview, key_controller); 3104 gtk_widget_add_controller(gtkblist->treeview, key_controller);
3125
3126 g_signal_connect(gtkblist->treeview, "popup-menu",
3127 G_CALLBACK(pidgin_blist_popup_menu_cb), gtkblist);
3128 3105
3129 /* Enable CTRL+F searching */ 3106 /* Enable CTRL+F searching */
3130 gtk_tree_view_set_search_column(GTK_TREE_VIEW(gtkblist->treeview), NAME_COLUMN); 3107 gtk_tree_view_set_search_column(GTK_TREE_VIEW(gtkblist->treeview), NAME_COLUMN);
3131 gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(gtkblist->treeview), 3108 gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(gtkblist->treeview),
3132 pidgin_blist_search_equal_func, NULL, NULL); 3109 pidgin_blist_search_equal_func, NULL, NULL);

mercurial