Enable Linphone to open URIs from chat room on Windows and MacOSX

This commit is contained in:
François Grisez 2015-07-17 10:35:47 +02:00
parent e95b401dc3
commit 37a85f2e41

View file

@ -407,33 +407,45 @@ static GdkColor *_linphone_gtk_chatroom_get_link_color(GtkWidget *chatview) {
}
static void open_uri(const char *uri) {
#ifdef __linux
const char *cmd = NULL;
GError *error = NULL;
gchar *argv[3] = {
g_strdup("xdg-open"),
g_strdup(uri),
NULL
};
g_spawn_async(
NULL,
argv,
NULL,
G_SPAWN_SEARCH_PATH,
NULL,
NULL,
NULL,
&error
);
g_free(argv[0]);
g_free(argv[1]);
if(error) {
g_warning("Cannot open %s: %s", uri, error->message);
g_error_free(error);
}
#ifdef __APPLE__
cmd = "open";
#elseif __linux
cmd = "xdg-open";
#elseif WIN32
cmd = "start";
#else
g_warning("Cannot open URIs from chat room on this platform");
cmd = NULL;
#endif
if(cmd) {
gchar *argv[3] = {
g_strdup(cmd),
g_strdup(uri),
NULL
};
g_spawn_async(
NULL,
argv,
NULL,
G_SPAWN_SEARCH_PATH,
NULL,
NULL,
NULL,
&error
);
g_free(argv[0]);
g_free(argv[1]);
if(error) {
g_warning("Cannot open %s: %s", uri, error->message);
g_error_free(error);
}
} else {
g_warning("Cannot open URIs from chat room on this platform");
}
}
static gboolean link_event_handler(GtkTextTag *tag, GObject *object,GdkEvent *event, GtkTextIter *iter, gpointer user_data) {