summaryrefslogtreecommitdiff
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
parentf0d74ddba337e621bce4942111f89180562fe61a (diff)
downloadgnome-calendar-f04c4fb119ec95f4732868b17a50a27767350f69.tar.gz
event-popover: Update to GtkUriLauncher
And bump the GTK dependency to 4.10
-rw-r--r--meson.build2
-rw-r--r--src/gui/gcal-event-popover.c30
2 files changed, 26 insertions, 6 deletions
diff --git a/meson.build b/meson.build
index b08c4470..5e02aeec 100644
--- a/meson.build
+++ b/meson.build
@@ -165,7 +165,7 @@ libecal_dep = dependency('libecal-2.0', version: '>= 3.45.1')
libsoup_dep = dependency('libsoup-3.0')
libadwaita_dep = dependency('libadwaita-1', version: '>= 1.2.alpha')
glib_dep = dependency('glib-2.0', version: '>= 2.67.5')
-gtk_dep = dependency('gtk4', version: '>= 4.6.0')
+gtk_dep = dependency('gtk4', version: '>= 4.10.0')
gio_dep = dependency('gio-2.0', version: '>= 2.58.0')
gweather_dep = dependency('gweather4')
geoclue_dep = dependency('libgeoclue-2.0', version: '>=2.4')
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