summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2023-03-16 17:28:17 -0300
committerGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2023-03-16 17:28:17 -0300
commitf04c4fb119ec95f4732868b17a50a27767350f69 (patch)
tree27e45607354d74f4becc2d6b1f013cf81e37cc86 /src
parentf0d74ddba337e621bce4942111f89180562fe61a (diff)
downloadgnome-calendar-f04c4fb119ec95f4732868b17a50a27767350f69.tar.gz
event-popover: Update to GtkUriLauncher
And bump the GTK dependency to 4.10
Diffstat (limited to 'src')
-rw-r--r--src/gui/gcal-event-popover.c30
1 files changed, 25 insertions, 5 deletions
diff --git a/src/gui/gcal-event-popover.c b/src/gui/gcal-event-popover.c
index 314a98c0..a1bc1161 100644
--- a/src/gui/gcal-event-popover.c
+++ b/src/gui/gcal-event-popover.c
@@ -512,19 +512,39 @@ on_edit_button_clicked_cb (GtkButton *edit_button,
}
static void
+on_uri_launched_cb (GObject *source_object,
+ GAsyncResult *result,
+ gpointer user_data)
+{
+ g_autoptr (GcalEventPopover) self = user_data;
+ g_autoptr (GError) error = NULL;
+
+ if (!gtk_uri_launcher_launch_finish (GTK_URI_LAUNCHER (source_object), result, &error))
+ {
+ g_warning ("Error launching URI: %s", error->message);
+ return;
+ }
+
+ gtk_popover_popdown (GTK_POPOVER (self));
+}
+
+static void
on_join_meeting_cb (GcalMeetingRow *meeting_row,
const gchar *url,
GcalEventPopover *self)
{
+ g_autoptr (GtkUriLauncher) uri_launcher = NULL;
GtkWindow *window;
- window = GTK_WINDOW (gtk_widget_get_native (GTK_WIDGET (self)));
+ window = GTK_WINDOW (gtk_widget_get_root (GTK_WIDGET (self)));
g_assert (window != NULL);
- gtk_show_uri (window, url, GDK_CURRENT_TIME);
-
- /* For some reason, gtk_popover_popdown() crashes when called here */
- gtk_widget_set_visible (GTK_WIDGET (self), FALSE);
+ uri_launcher = gtk_uri_launcher_new (url);
+ gtk_uri_launcher_launch (uri_launcher,
+ window,
+ NULL,
+ on_uri_launched_cb,
+ g_object_ref (self));
}
static void