event-popover: Update to GtkUriLauncher
And bump the GTK dependency to 4.10
This commit is contained in:
+1
-1
@@ -165,7 +165,7 @@ libecal_dep = dependency('libecal-2.0', version: '>= 3.45.1')
|
|||||||
libsoup_dep = dependency('libsoup-3.0')
|
libsoup_dep = dependency('libsoup-3.0')
|
||||||
libadwaita_dep = dependency('libadwaita-1', version: '>= 1.2.alpha')
|
libadwaita_dep = dependency('libadwaita-1', version: '>= 1.2.alpha')
|
||||||
glib_dep = dependency('glib-2.0', version: '>= 2.67.5')
|
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')
|
gio_dep = dependency('gio-2.0', version: '>= 2.58.0')
|
||||||
gweather_dep = dependency('gweather4')
|
gweather_dep = dependency('gweather4')
|
||||||
geoclue_dep = dependency('libgeoclue-2.0', version: '>=2.4')
|
geoclue_dep = dependency('libgeoclue-2.0', version: '>=2.4')
|
||||||
|
|||||||
@@ -511,20 +511,40 @@ on_edit_button_clicked_cb (GtkButton *edit_button,
|
|||||||
gtk_popover_popdown (GTK_POPOVER (self));
|
gtk_popover_popdown (GTK_POPOVER (self));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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
|
static void
|
||||||
on_join_meeting_cb (GcalMeetingRow *meeting_row,
|
on_join_meeting_cb (GcalMeetingRow *meeting_row,
|
||||||
const gchar *url,
|
const gchar *url,
|
||||||
GcalEventPopover *self)
|
GcalEventPopover *self)
|
||||||
{
|
{
|
||||||
|
g_autoptr (GtkUriLauncher) uri_launcher = NULL;
|
||||||
GtkWindow *window;
|
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);
|
g_assert (window != NULL);
|
||||||
|
|
||||||
gtk_show_uri (window, url, GDK_CURRENT_TIME);
|
uri_launcher = gtk_uri_launcher_new (url);
|
||||||
|
gtk_uri_launcher_launch (uri_launcher,
|
||||||
/* For some reason, gtk_popover_popdown() crashes when called here */
|
window,
|
||||||
gtk_widget_set_visible (GTK_WIDGET (self), FALSE);
|
NULL,
|
||||||
|
on_uri_launched_cb,
|
||||||
|
g_object_ref (self));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|||||||
Reference in New Issue
Block a user