static gboolean link_event_handler(GtkTextTag *tag, GObject *text_view,GdkEvent *event, GtkTextIter *iter, GtkWidget *chat_view) { if(event->type == GDK_BUTTON_PRESS) { GtkTextIter uri_begin = *iter; GtkTextIter uri_end = *iter; gchar *uri = NULL; LinphoneChatRoom *chat_room = (LinphoneChatRoom *)g_object_get_data(G_OBJECT(chat_view), "cr"); gtk_text_iter_backward_to_tag_toggle(&uri_begin, tag); gtk_text_iter_forward_to_tag_toggle(&uri_end, tag); uri = gtk_text_iter_get_slice(&uri_begin, &uri_end); if(((GdkEventButton *)event)->button == 1) { linphone_gtk_open_browser(uri); } else if(((GdkEventButton *)event)->button == 3) { GtkMenu *menu = GTK_MENU(g_object_get_data(text_view, "link_ctx_menu")); g_object_set_data_full(G_OBJECT(menu), "uri", g_strdup(uri), g_free); gtk_menu_popup(menu, NULL, NULL, NULL, NULL, 3, gdk_event_get_time(event)); } g_free(uri); linphone_chat_room_mark_as_read(chat_room); linphone_gtk_friend_list_update_chat_picture(); return TRUE; } return FALSE; }
static void new_version_response(GtkWidget *dialog, int response_id, gpointer download_site){ if (response_id==GTK_RESPONSE_YES){ linphone_gtk_open_browser((const char*)download_site); } gtk_widget_destroy(dialog); }