From d7d0c1d3c7b5981b5c1b91234dad8bdfc71c47e1 Mon Sep 17 00:00:00 2001 From: Denis Garaev Date: Mon, 1 Jun 2026 01:00:16 +0300 Subject: [PATCH] Initialize gtk later During initialization GDK tries to find settings portal, but since it isn't started yet, the whole init freezes till timeout --- src/XdgDesktopPortalPantheon.vala | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/XdgDesktopPortalPantheon.vala b/src/XdgDesktopPortalPantheon.vala index b83a1ac6..c1200a51 100644 --- a/src/XdgDesktopPortalPantheon.vala +++ b/src/XdgDesktopPortalPantheon.vala @@ -68,6 +68,9 @@ private void on_name_acquired () { watch_id = Bus.watch_name (BusType.SESSION, "org.freedesktop.portal.Desktop", BusNameWatcherFlags.NONE, () => { Granite.init (); + weak Gtk.IconTheme default_theme = Gtk.IconTheme.get_for_display (Gdk.Display.get_default ()); + default_theme.add_resource_path ("/io/elementary/xdg-desktop-portal-pantheon/icons"); + var css_provider = new Gtk.CssProvider (); css_provider.load_from_resource ("/io/elementary/xdg-desktop-portal-pantheon/Application.css"); Gtk.StyleContext.add_provider_for_display (Gdk.Display.get_default (), css_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); @@ -96,11 +99,6 @@ int main (string[] args) { /* Avoid pointless and confusing recursion */ GLib.Environment.unset_variable ("GTK_USE_PORTAL"); - Gtk.init (); - - weak Gtk.IconTheme default_theme = Gtk.IconTheme.get_for_display (Gdk.Display.get_default ()); - default_theme.add_resource_path ("/io/elementary/xdg-desktop-portal-pantheon/icons"); - try { var opt_context = new OptionContext ("- portal backends"); opt_context.set_summary ("A backend implementation for xdg-desktop-portal.");