static gboolean select_book_button_press_callback(GtkWidget *widget, GdkEventButton *event, gpointer user_data) { GtkWidget *menu = NULL; GTimeVal start_time; GTimeVal end_time; #ifdef WIN32 glong time_diff; guint32 time_add; #endif g_get_current_time(&start_time); XI_message(("Start time is: %ld sec %ld mil", start_time.tv_sec, start_time.tv_usec)); menu = main_versekey_drop_down_book_menu(navbar_parallel, NB_PARALLEL, NULL, NULL); g_get_current_time(&end_time); XI_message(("End time is: %ld sec %ld mil", end_time.tv_sec, end_time.tv_usec)); #ifdef WIN32 time_diff = ((end_time.tv_sec - start_time.tv_sec) * 1000000) + (end_time.tv_usec - start_time.tv_usec); time_add = 0; if (time_diff > 10000) time_add = (guint32)(time_diff / 1000); #endif if (!menu) return 0; g_signal_connect(menu, "deactivate", G_CALLBACK(menu_deactivate_callback), widget); if ((event->type == GDK_BUTTON_PRESS) && event->button == 1) { gtk_widget_grab_focus(widget); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), TRUE); gtk_menu_popup(GTK_MENU(menu), NULL, NULL, menu_position_under, widget, event->button, #ifdef WIN32 event->time + time_add); #else event->time); #endif return TRUE; }
static gboolean select_book_button_press_callback(GtkWidget *widget, GdkEventButton *event, EDITOR *editor) { GtkWidget *menu; menu = main_versekey_drop_down_book_menu(editor->navbar, NB_EDITOR, NULL, editor); if (!menu) return 0; g_signal_connect(menu, "deactivate", G_CALLBACK(menu_deactivate_callback), widget); if ((event->type == GDK_BUTTON_PRESS) && event->button == 1) { gtk_widget_grab_focus(widget); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), TRUE); gtk_menu_popup(GTK_MENU(menu), NULL, NULL, menu_position_under, widget, event->button, event->time); return TRUE; } return FALSE; }