| 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); |