Commit graph

57297 commits

Author SHA1 Message Date
Alx Sa
43c57af5d7 libgimp:
Resolves #16102
The active selection can impact the other NDE filters
when exporting, resulting in empty spaces displayed when
the filter is outside the area of that selection.

Similar to what we do with XCF saving, we temporarily save
and clear the selection in the duplicated image. Then we
merge the filters and restore the active selection.
2026-03-28 05:09:31 +00:00
Bruno Lopes
e0e4285b73 meson: Fix shared-mime-info being wrongly required on Windows
This fixes a regression introduced by ac73289f
2026-03-27 21:14:15 -03:00
Bruno Lopes
566d562b4f build/windows: Wipe obsolete /twain dir from previous installs
Following cbc81507
2026-03-27 21:06:12 -03:00
Bruno Lopes
a0c065b02b build/windows: Update MSVC patch after gimprc and python updates 2026-03-27 20:39:15 -03:00
Bruno Lopes
807e21c6ab gitlab-ci: Try to fix needs: chain of Homebrew pipeline
Following ab0b0413

Another fix after the x64 builds (which we don't use with Homebrew)
2026-03-27 19:27:37 -03:00
Bruno Lopes
b3c40c7be1 build/linux: Enable "Send by email" on AppImage
Hmmm why this was not already enabled? On my tests, it works.
Don't remember why I have not handled this before.

This commit also reorder the xdg-mail position on macOS script.
2026-03-27 18:59:50 -03:00
Alx Sa
6369574261 dialogs: Make Metadata Rotation images clickable
This patch makes it so that you can click the preview for
Original and Rotated images in the Metadata Rotation Import Dialog,
and have it open the image rotated as shown in the preview.
This supplements the existing button options, and matches how other
software works.
When hovering over the images, the cursor turns into a pointer to
further suggest it is clickable.
2026-03-27 21:21:39 +00:00
Jehan
73b54f4b87 NEWS: update. 2026-03-27 22:13:27 +01:00
Jehan
9bf31a4d55 tools: don't load fcntl on platforms where it's unavailable.
In particular, on Windows, we get this error:

> ModuleNotFoundError: No module named 'fcntl'

But we don't care about this module there anyway. This is only for macOS
builds.
2026-03-27 22:08:14 +01:00
Bruno Lopes
ca20e2a341 build/linux: Add MIDI (ALSA) support to Snap package 2026-03-27 17:47:43 -03:00
Bruno Lopes
2c8548e111 build/linux: Update v3.4.7.tar.gz to 3.4.8
Synced from 138e9910a5
2026-03-27 17:08:59 -03:00
Aditya Tiwari
48e194532e app: show "Tab" accelerator label for windows-hide-docks
Tab was intentionally removed from the action entry to avoid overriding
its standard accessibility usage across the software, leaving the menu
item and shortcut editor showing no shortcut. This adds a cosmetic hint
in gimp_action_get_display_accels() to show 'Tab' without registering a
real accelerator.
2026-03-27 18:06:17 +01:00
Jehan
daff399b4d meson, INSTALL: also document the required version for PyGObject. 2026-03-27 17:39:44 +01:00
Jehan
91f78f58c4 meson: make error messages a bit more accurate on what was tested.
As a follow-up of the previous INSTALL update (complement for #16115).
2026-03-27 17:34:06 +01:00
Bruno Lopes
c039f82640 INSTALL: List Pycairo on required packages
Closes: https://gitlab.gnome.org/GNOME/gimp/-/issues/16115

Also know as python3-cairo or py-cairo, it is needed
to complete the Cairo override provided by 'gi' module.
See: #13105
2026-03-27 13:22:45 -03:00
Bruno Lopes
424f090100 meson: Do not warn about xdg-email on macOS
There is no such thing from Freedesktop for macOS. What we
use (at packaging phase) is an AppleScript by Alex Samorukov
at build/macos/patches/xdg-email.

So, makes no sense having that warning on macOS since such
custom script does not exist anywhere to be found at build-time.
2026-03-27 13:13:03 -03:00
Jehan
2012a9afc9 gimp-data: bump to remove now unneeded dependency chaining trick on macOS. 2026-03-27 17:08:55 +01:00
Jehan
a7e39c16b1 tools: lock the script so that it can only be run once at a time on macOS.
This will be an alternative way to fix #14236, without needing to have
every usage depend on another (which is messy and bug-prone because then
we have to follow the list of dependencies and see which was the last
use of gimp_exe, and with the risk of errors depending on which build
options are ON or OFF).

This fixes such errors:

> error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/install_name_tool:
> for: /Users/Shared/work/GNOME/gimp/_build-x86_64/plug-ins/common/test-plug-ins/film/film (for architecture x86_64)
> option "-add_rpath /Users/Shared/work/GNOME/gimp/_build-x86_64/libgimpcolor" would duplicate path, file already
> has LC_RPATH for: /Users/Shared/work/GNOME/gimp/_build-x86_64/libgimpcolor
2026-03-27 16:03:33 +00:00
Jehan
75eb99dca3 app: use build-time paths, not run-time ones for the gimprc man dump.
The problem especially occurs for our new build rule where we generate
the gimprc man page from within the build. In particular, it uses a
temporary config folder generated on the fly (with a random folder name)
and sets various environment variables such as GIMP3_SYSCONFDIR. So if
we use the runtime paths, our man page will be full of bogus paths.

In any case, for a man page, it just makes sense to use the real install
prefix. This of course assumes non-relocatable builds, and an
XDG-compliant installation (as it uses the $XDG_CONFIG_HOME variable),
but that was already what we were showing in the template man page, and
man pages are mostly for Linux, *BSD, etc. So that works fine.
2026-03-27 16:03:33 +00:00
Jehan
d2f6867064 tools: print both errors and informational messages to stderr.
This script is now also used for usage where we pipe directly the stdout
output to a file, e.g. now to create the gimprc man page. We don't want
to have INFO messages in there.
2026-03-27 16:03:33 +00:00
v4vansh
f3b14044e4 app/config: natively expand paths in gimprc manpage 2026-03-27 16:03:33 +00:00
v4vansh
fa097df908 app/config, docs: fix gimprc manpage regeneration 2026-03-27 16:03:33 +00:00
Bruno Lopes
ac73289f18 meson: Do not warn about pixbuf loaders.cache on native Windows builds
This is distracting, being only useful on crossbuilds.
Since many years, MSYS2 runs such command at install.
2026-03-27 12:46:30 -03:00
Bruno Lopes
9686f94f1d build/linux: Fix for pango/libthai test on Snap 2026-03-27 12:31:47 -03:00
Bruno Lopes
1437c84d07 plug-ins: Fix meson warning about missing check: kwarg 2026-03-27 09:53:03 -03:00
Frank Teklote
061a7eada2 file-psd: fix ordering of loaded Photoshop paths
Previously, paths from Photoshop TIFF files were appended via
gimp_image_insert_path(..., -1), which caused the displayed order to be
reversed. This change preserves the original ordering while keeping the
'Working Path' as the last element.
2026-03-27 11:57:50 +00:00
Bruno Lopes
6661004e5e build/macos: Remove 'source' bashism recently introduced on DMG script
As per 'meson-health' job advice
2026-03-27 06:41:59 -03:00
Bruno Lopes
8da8d9a478 build/macos: Use ds_store Python package on DMG creation
The pre-made .DS_Store(.tar.xz) got broken after version bumps.
2026-03-26 19:02:58 -03:00
Kristjan ESPERANTO
5046b0d3d5 Update Esperanto translation 2026-03-26 21:32:11 +00:00
Jehan
69359272a4 NEWS: update. 2026-03-26 17:31:48 +01:00
Alx Sa
ca5438c6da widgets: Prevent deleting temporary filters
Resolves #12791 (again)
After cleaning up and separating the filter pop-up code
from GimpItemTreeView to GimpDrawableTreeView-Filters,
we accidentally lost the checks that prevent deleting filters
that have not yet been applied (thus causing a crash).
This patch restores the checks for the filter to not be temporary
before you can delete it.
2026-03-26 15:26:10 +00:00
balooii
8bdb5cbfd7 app: Fix duplicating vector layers 2026-03-26 11:52:24 -03:00
Alx Sa
d1662f8f2c core: Stop double-resizing on Fit Canvas to Layers
Resolves #16018
This patch extends a2c5d70c to also apply to the
"Fit Canvas to Layers" action. It prevents the non-rasterized
vector layer from being shifted out of place when the
canvas is resized.
2026-03-26 05:44:27 +00:00
Alx Sa
a131100075 core: Prevent double-resizing on vector image crop
Resolves #16045
This patch extends a2c5d70c to also apply to the Crop Tool.
It prevents the non-rasterized vector layer from being shifted
out of place when cropped.
2026-03-26 05:02:52 +00:00
Bruno Lopes
45a764504e build/linux: Fix third-party plug-ins not finding babl extensions
Closes: #16038

This may be related to how our babl relocatable heuristics works
on Linux: depending on the process path, which is tricky on Snap,
specially for 3P plug-ins which have their own sandboxed processes.

Ideally, we should fix it on babl but this workaround if good enough.
2026-03-25 21:48:23 -03:00
balooii balooii
a2c5d70c92 core, path: Fix image transforms with vector layers
(Modified by CmykStudent from balooii's original merge request)
When performing image-level operations (resize, crop, scale, flip,
rotate, arbitrary transform), paths referenced by non-rasterized vector
layers were being transformed twice:

1. Via the vector layer's overrides, which explicitly transforms
   the referenced path to keep it in sync
2. Via the image-level queue that processes all paths independently

This patch adds a check for whether the layer has been rasterized.
If so, we bypass the vector layer's transform so the path is not
transformed a second time.
2026-03-25 20:29:17 -04:00
Jehan
80d11e2104 gitlab-ci: make so the CI works both with HEAD of babl and last release.
While we want to try with the last tagged release (babl 0.1.124), we
still need the CI to work with the latest code. So let's add one more
temporary fix.
2026-03-25 17:01:14 +01:00
Alx Sa
c3cbd5c21f core: Use selection when counting colors...
...in Histogram Editor.
The 2.10 Colorcube Analysis plug-in took into
account the selection when displaying the colors.
The Histogram Editor itself does as well, but our
unique color count did not.
This patch adds a check in gimp_histogram_unique_colors ()
to see if there's an active selection in the image.
If so, we get its area and use that as the bounds in
gegl_buffer_iterator_new () instead of setting it to NULL.
2026-03-25 12:43:00 +00:00
Anders Jonsson
aed086ecfa Update Swedish translation 2026-03-25 12:36:41 +00:00
Bruno Lopes
4ad7e7bdd3 build/windows: Set new expire date for CLIENT_SECRET 2026-03-25 09:11:04 -03:00
Anders Jonsson
5575a0f6e1 Update Swedish translation 2026-03-25 11:46:56 +00:00
Alx Sa
f52ae69532 plug-ins: Small code style updates to prior commit 2026-03-25 03:29:55 +00:00
Frank Teklote
0de2a56176 file-psd: scan 'ImageSourceData' for 'Layr' block before parsing layers
When loading layer metadata from TIFF 'ImageSourceData' Tag, don't assume
'Layr' is the first 8BIM block. Iterate over 8BIM/MIB8 blocks, skip non
'Layr' blocks, and rewind 4 bytes before calling read_layer_block() so it
can read the length field as expected. Limit mask_layer_len to the
selected block (including padding).
2026-03-24 23:52:50 +00:00
Bruno Lopes
01268d9f5e build/macos: Avoid unexpected ports upgrades
We need to add this condition otherwise ports would
be updated on gimp job causing disparity with deps job.
2026-03-24 20:51:23 -03:00
Bruno Lopes
9ac87044ad gitlab-ci: Bump some timeouts to 240min for consistency 2026-03-24 20:48:06 -03:00
Bruno Lopes
d5e51bd464 gitlab-ci: Bump some timeouts to 40min
This is specially needed for the Snap builds.
2026-03-24 20:46:25 -03:00
Bruno Lopes
4a0d99872a gitlab-ci: Change deps artifacts expire_in to 4 hours
This is specially needed for the macOS builds.
2026-03-24 20:23:47 -03:00
Jehan
8d9a05b8bf gitlab-ci, build: temporarily revert the -Drelocatable-bundle option…
… rename for babl.

As we are doing test build for the release, we are in this in-between
situation where GEGL has the newly named option, but not babl (because
we don't have a new babl release).
I don't know if we'll have a babl release by the time we'll get GIMP
3.2.2 out, but for now, let's use the old option name.

This commit will have to be reverted later, after we release.
2026-03-24 22:11:43 +01:00
Alx Sa
3f17f528d1 plug-ins: Load more multichannel PSD channels
Multichannel PSD images reuse their first channel as the
main grayscale "layer". Our PSD plug-in did not take this
into account, resulting in the channels being off-by-one and
mislabeled.

This patch prevents chn_a[0].data from being freed after
it is used to load the layer, and then resets the counts so that
it is reused as the first imported channel.
2026-03-24 20:58:29 +00:00
Jehan
7436b8dcbd build: prepare Snapcraft for the 3.2.2 release. 2026-03-24 21:28:12 +01:00