* Since: 4.10
*/
void
-gtk_uri_launcher_launch (GtkUriLauncher *self,
- GtkWindow *parent,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
+gtk_uri_launcher_launch (GtkUriLauncher *self,
+ GtkWindow *parent,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
{
GTask *task;
+ GError *error = NULL;
g_return_if_fail (GTK_IS_URI_LAUNCHER (self));
return;
}
+ if (!g_uri_is_valid (self->uri, G_URI_FLAGS_NONE, &error))
+ {
+ g_task_return_new_error (task,
+ GTK_DIALOG_ERROR, GTK_DIALOG_ERROR_FAILED,
+ "%s is not a valid uri: %s", self->uri, error->message);
+ g_error_free (error);
+ return;
+ }
+
#ifndef G_OS_WIN32
if (gtk_openuri_portal_is_available ())
gtk_openuri_portal_open_uri_async (self->uri, parent, cancellable, open_done, task);
*/
gboolean
gtk_uri_launcher_launch_finish (GtkUriLauncher *self,
- GAsyncResult *result,
- GError **error)
+ GAsyncResult *result,
+ GError **error)
{
g_return_val_if_fail (GTK_IS_URI_LAUNCHER (self), FALSE);
g_return_val_if_fail (g_task_is_valid (result, self), FALSE);