@@ -299,8 +299,28 @@ settings_changed (XdpSettings* settings, const gchar *namespace, const gchar *ke
299
299
}
300
300
301
301
static 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 )
303
321
{
322
+ PortalTestWin * win = (PortalTestWin * ) widget ;
323
+ GtkApplication * app = gtk_window_get_application (GTK_WINDOW (win ));
304
324
const char * status ;
305
325
g_auto (GStrv ) proxies = NULL ;
306
326
g_autofree char * proxy = NULL ;
@@ -312,6 +332,11 @@ portal_test_win_init (PortalTestWin *win)
312
332
g_autoptr (GFile ) src = NULL ;
313
333
314
334
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 );
315
340
316
341
gtk_widget_init_template (GTK_WIDGET (win ));
317
342
@@ -357,6 +382,13 @@ portal_test_win_init (PortalTestWin *win)
357
382
358
383
win -> settings = xdp_portal_get_settings (win -> portal );
359
384
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
+ {
360
392
}
361
393
362
394
static void
@@ -1394,6 +1426,8 @@ portal_test_win_class_init (PortalTestWinClass *class)
1394
1426
{
1395
1427
GtkWidgetClass * widget_class = GTK_WIDGET_CLASS (class );
1396
1428
1429
+ widget_class -> realize = portal_test_win_realize ;
1430
+
1397
1431
gtk_widget_class_set_template_from_resource (widget_class ,
1398
1432
"/org/gtk/portal-test/portal-test-win.ui" );
1399
1433
0 commit comments