static gboolean on_item_list_view_button_press_event (GtkWidget *treeview, GdkEventButton *event, gpointer user_data) { ItemListView *ilv = ITEM_LIST_VIEW (user_data); GtkTreePath *path; GtkTreeIter iter; GtkTreeViewColumn *column; itemPtr item = NULL; gboolean result = FALSE; if (event->type != GDK_BUTTON_PRESS) return FALSE; /* avoid handling header clicks */ if (event->window != gtk_tree_view_get_bin_window (ilv->priv->treeview)) return FALSE; if (!gtk_tree_view_get_path_at_pos (ilv->priv->treeview, (gint)event->x, (gint)event->y, &path, NULL, NULL, NULL)) return FALSE; if (gtk_tree_model_get_iter (gtk_tree_view_get_model (ilv->priv->treeview), &iter, path)) item = item_load (item_list_view_iter_to_id (ilv, &iter)); gtk_tree_path_free (path); if (item) { GdkEventButton *eb = (GdkEventButton*)event; switch (eb->button) { case 1: column = gtk_tree_view_get_column (ilv->priv->treeview, 0); if (column) { /* Allow flag toggling when left clicking in the flagging column. We depend on the fact that the state column is the first!!! */ if (event->x <= gtk_tree_view_column_get_width (column)) { itemlist_toggle_flag (item); result = TRUE; } } break; case 2: /* Middle mouse click toggles read status... */ itemlist_toggle_read_status (item); result = TRUE; break; case 3: item_list_view_select (ilv, item); ui_popup_item_menu (item, eb->button, eb->time); result = TRUE; break; } item_unload (item); } return result; }
void itemview_select_item (itemPtr item) { ItemViewPrivate *ivp = itemview->priv; ivp->needsHTMLViewUpdate = TRUE; item_list_view_select (ivp->itemListView, item); htmlview_select_item (item); if (item) enclosure_list_view_load (ivp->enclosureView, item); else enclosure_list_view_hide (ivp->enclosureView); }
void itemview_select_item (itemPtr item) { ItemViewPrivate *ivp = itemview->priv; /* Enforce single item mode as we currently know no other way to select a single item... */ itemview_set_mode (ITEMVIEW_SINGLE_ITEM); ivp->needsHTMLViewUpdate = TRUE; ivp->browsing = FALSE; item_list_view_select (ivp->itemListView, item); htmlview_select_item (item); if (item) enclosure_list_view_load (ivp->enclosureView, item); else enclosure_list_view_hide (ivp->enclosureView); item_history_add (item->id); }