diff --git a/demos/widget-factory/widget-factory.c b/demos/widget-factory/widget-factory.c index e1881cc5b2..705606fcfe 100644 --- a/demos/widget-factory/widget-factory.c +++ b/demos/widget-factory/widget-factory.c @@ -214,10 +214,19 @@ activate_background (GSimpleAction *action, } static void -file_chooser_response (GtkNativeDialog *self, - int response) +file_chooser_response (GObject *source, + GAsyncResult *result, + void *user_data) { - gtk_native_dialog_destroy (self); + GtkFileDialog *dialog = GTK_FILE_DIALOG (source); + GFile *file; + + file = gtk_file_dialog_open_finish (dialog, result, NULL); + if (file) + { + g_print ("File selected: %s", g_file_peek_path (file)); + g_object_unref (file); + } } static void @@ -225,17 +234,11 @@ activate_open_file (GSimpleAction *action, GVariant *parameter, gpointer user_data) { - GtkFileChooserNative *chooser; + GtkFileDialog *dialog; - chooser = gtk_file_chooser_native_new ("Open file", - NULL, - GTK_FILE_CHOOSER_ACTION_OPEN, - "Open", - "Cancel"); - - g_signal_connect (chooser, "response", G_CALLBACK (file_chooser_response), NULL); - - gtk_native_dialog_show (GTK_NATIVE_DIALOG (chooser)); + dialog = gtk_file_dialog_new (); + gtk_file_dialog_open (dialog, NULL, NULL, NULL, file_chooser_response, NULL); + g_object_unref (dialog); } static void