diff --git a/build/windows/gitlab-ci/4_dist-gimp-winsdk.ps1 b/build/windows/gitlab-ci/4_dist-gimp-winsdk.ps1
index 58c3f6f51c..611bea619c 100644
--- a/build/windows/gitlab-ci/4_dist-gimp-winsdk.ps1
+++ b/build/windows/gitlab-ci/4_dist-gimp-winsdk.ps1
@@ -82,6 +82,7 @@ if (Test-Path -Path "$icons_path")
{
New-Item -ItemType Directory -Path "$arch\Assets\"
Copy-Item -Path "$icons_path\*.png" -Destination "$arch\Assets\" -Recurse
+ Copy-Item -Path "$icons_path\*.xcf" -Destination "$arch\Assets\" -Recurse
}
}
else
diff --git a/build/windows/store/AppxManifest.xml b/build/windows/store/AppxManifest.xml
index 86dfa9187c..85e00893a2 100644
--- a/build/windows/store/AppxManifest.xml
+++ b/build/windows/store/AppxManifest.xml
@@ -45,7 +45,7 @@
eXperimental Computing Facility file
Assets\fileicon.png
- .xcf
+ .xcf
diff --git a/build/windows/store/Assets/gen-new-xcf.py.in b/build/windows/store/Assets/gen-new-xcf.py.in
new file mode 100644
index 0000000000..4793ad5ac3
--- /dev/null
+++ b/build/windows/store/Assets/gen-new-xcf.py.in
@@ -0,0 +1,25 @@
+import os
+import sys
+
+output_path = '@BUILDDIR@/New_GIMP_Project.xcf'
+default_width = 1920
+default_height = 1080
+image = Gimp.Image.new(default_width, default_height, Gimp.ImageBaseType.RGB)
+layer = Gimp.Layer.new(image, None, default_width, default_height,
+ Gimp.ImageType.RGB_IMAGE, 100.0, Gimp.LayerMode.NORMAL)
+layer.fill(Gimp.FillType.WHITE)
+image.insert_layer(layer, None, 0)
+
+procedure = Gimp.get_pdb().lookup_procedure("gimp-xcf-save")
+config = procedure.create_config()
+drawables = image.list_selected_drawables()
+config.set_property("image", image)
+config.set_property("num-drawables", len(drawables))
+config.set_property("drawables", Gimp.ObjectArray.new(Gimp.Drawable, drawables, False))
+config.set_property("file", Gio.file_new_for_path(output_path))
+Gimp.Procedure.run(procedure, config)
+
+v = Gimp.Procedure.run(procedure, config)
+
+if v.index(0) != Gimp.PDBStatusType.SUCCESS:
+ sys.exit(os.EX_SOFTWARE)
diff --git a/build/windows/store/Assets/meson.build b/build/windows/store/Assets/meson.build
index ed8f084693..8ad01c7397 100644
--- a/build/windows/store/Assets/meson.build
+++ b/build/windows/store/Assets/meson.build
@@ -248,3 +248,27 @@ foreach scale : scales
build_by_default: true,
env: gimp_run_env)
endforeach
+
+
+# OTHER ASSETS
+
+## Generate default XCF file (uap4:ShellNewFileName)
+gen_new_xcf_conf = configuration_data()
+gen_new_xcf_conf.set('BUILDDIR', meson.current_build_dir())
+gen_new_xcf_py = configure_file(
+ input : 'gen-new-xcf.py.in',
+ output : 'gen-new-xcf.py',
+ configuration : gen_new_xcf_conf
+)
+
+xcf_file = custom_target('New_GIMP_Project.xcf',
+ input : [ gen_new_xcf_py ],
+ depend_files: [ wilber_path ],
+ output: [ 'New_GIMP_Project.xcf', ],
+ command: [ gimp_exe, '-nidfs',
+ '--batch-interpreter', 'python-fu-eval',
+ '-b', '-', '--quit'],
+ feed: true,
+ build_by_default: true,
+ env: gimp_run_env
+)