@@ -299,8 +299,28 @@ settings_changed (XdpSettings* settings, const gchar *namespace, const gchar *ke
299299}
300300
301301static void
302- portal_test_win_init (PortalTestWin * win )
302+ register_cb (GObject * source_object ,
303+ GAsyncResult * result ,
304+ gpointer user_data )
305+ {
306+ XdpPortal * portal = XDP_PORTAL (source_object );
307+ g_autoptr (GError ) error = NULL ;
308+
309+ if (!xdp_portal_register_finish (portal , result , & error ))
310+ {
311+ if (!g_error_matches (error , G_IO_ERROR , G_IO_ERROR_CANCELLED ))
312+ g_warning ("Failed to register application ID: %s" , error -> message );
313+ return ;
314+ }
315+
316+ g_debug ("Registered application ID" );
317+ }
318+
319+ static void
320+ portal_test_win_realize (GtkWidget * widget )
303321{
322+ PortalTestWin * win = (PortalTestWin * ) widget ;
323+ GtkApplication * app = gtk_window_get_application (GTK_WINDOW (win ));
304324 const char * status ;
305325 g_auto (GStrv ) proxies = NULL ;
306326 g_autofree char * proxy = NULL ;
@@ -312,6 +332,11 @@ portal_test_win_init (PortalTestWin *win)
312332 g_autoptr (GFile ) src = NULL ;
313333
314334 win -> portal = xdp_portal_new ();
335+ xdp_portal_register (win -> portal ,
336+ g_application_get_application_id (G_APPLICATION (app )),
337+ NULL ,
338+ register_cb ,
339+ NULL );
315340
316341 gtk_widget_init_template (GTK_WIDGET (win ));
317342
@@ -357,6 +382,13 @@ portal_test_win_init (PortalTestWin *win)
357382
358383 win -> settings = xdp_portal_get_settings (win -> portal );
359384 g_signal_connect (win -> settings , "changed" , G_CALLBACK (settings_changed ), win );
385+
386+ GTK_WIDGET_CLASS (portal_test_win_parent_class )-> realize (widget );
387+ }
388+
389+ static void
390+ portal_test_win_init (PortalTestWin * win )
391+ {
360392}
361393
362394static void
@@ -1394,6 +1426,8 @@ portal_test_win_class_init (PortalTestWinClass *class)
13941426{
13951427 GtkWidgetClass * widget_class = GTK_WIDGET_CLASS (class );
13961428
1429+ widget_class -> realize = portal_test_win_realize ;
1430+
13971431 gtk_widget_class_set_template_from_resource (widget_class ,
13981432 "/org/gtk/portal-test/portal-test-win.ui" );
13991433
0 commit comments