gboolean gui_verselist_button_release_event(GtkWidget *widget, GdkEventButton *event, gpointer user_data) { GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter selected; gchar *key = NULL; gchar *text = NULL; selection = gtk_tree_view_get_selection((GtkTreeView *) sidebar.results_list); model = gtk_tree_view_get_model(GTK_TREE_VIEW(sidebar.results_list)); if (!gtk_tree_selection_get_selected(selection, NULL, &selected)) return FALSE; gtk_tree_model_get(GTK_TREE_MODEL(model), &selected, 0, &key, -1); if (!key) return FALSE; if (event) { switch (event->button) { case 2: gui_open_passage_in_new_tab(key); /* fall through... */ case 3: /* button 3 is no-op */ return FALSE; default: /* button 1 handled below */ break; } } // UTF-8 workaround (domcox) // main_get_search_results_text (renderText) doesn't render // non-ascii chars saved in numeric character reference format // in personal notes. // Notes are now saved in utf8 encoding (Xiphos > 2.2.2.1) if (main_get_mod_type(settings.sb_search_mod) == PERCOM_TYPE) text = main_get_raw_text(settings.sb_search_mod, key); else text = main_get_search_results_text(settings.sb_search_mod, key); if (text) { settings.displaySearchResults = TRUE; main_entry_display(settings.show_previewer_in_sidebar ? sidebar.html_viewer_widget : widgets.html_previewer_text, //sidebar.html_widget, settings.sb_search_mod, text, key, TRUE); settings.displaySearchResults = FALSE; g_free(text); gtk_widget_grab_focus(sidebar.results_list); } g_free(key); return FALSE; }
static gboolean tree_key_press_cb(GtkWidget *widget, GdkEventKey *event, gpointer user_data) { GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter selected; gchar *key = NULL; selection = gtk_tree_view_get_selection((GtkTreeView *) sidebar.results_list); model = gtk_tree_view_get_model(GTK_TREE_VIEW(sidebar.results_list)); if (!gtk_tree_selection_get_selected(selection, NULL, &selected)) return FALSE; gtk_tree_model_get(GTK_TREE_MODEL(model), &selected, 0, &key, -1); if (!key) return FALSE; if (event) { switch (event->keyval) { case 0xff0d: /* "65293" */ case 0xff8d: /* "65421" */ { gchar *url = g_strdup_printf("sword://%s/%s", settings.sb_search_mod, key); main_url_handler(url, TRUE); g_free(url); } break; case 0x20: /* "32" */ gui_open_passage_in_new_tab(key); sync_windows(); break; case 0xffe1: /* shift keys */ case 0xffe2: XI_warning(("shift key pressed")); shift_key_pressed = TRUE; sync_windows(); break; default: break; } } g_free(key); sync_windows(); gtk_widget_grab_focus(sidebar.results_list); return FALSE; }
void on_notebook_main_new_tab_clicked(GtkButton *button, gpointer user_data) { gui_open_passage_in_new_tab(settings.currentverse); }