Commit graph

57274 commits

Author SHA1 Message Date
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
Anders Jonsson
76eaccc7b6 Update Swedish translation 2026-03-24 20:21:18 +00:00
Jehan
112276d8c8 desktop: adding AppStream metadata for GIMP 3.2.2. 2026-03-24 21:09:57 +01:00
Jehan
7f67536f1a Issue #16010: do not mind buffers with non-0 offsets in the case of group layers.
In fact, the previous commit was unneeded and we could have done without
reverting the old commit. On the other hand, a buffer using another
buffer as "source" may be nicer in memory.

But the previous commit alone was not right as group boundaries were
wrong. In fact, right now, we can see that group boundaries are computed
using only the children layers (except for pass-through of course), not
including any effects they might have. And the buffer passed to
gimp_drawable_set_buffer_full() was the projection's buffer itself — it
was shared, which was also why copying at setting time was wrong —, in
the case of a group layer. That means that when we translated to (0, 0)
offset, either we would have moved the render to the wrong place, or
moved the boundaries to the wrong place.
The offset needs to stay what it is, even when it's not (0, 0), for
group layers.

Another alternative fix would be instead to fix layer groups' boundaries
to encompass the full projection's render. But I just went with this
special-casing of group layers instead.
2026-03-24 20:41:53 +01:00
Jehan
af44043108 Issue #16010: adding a layer with filter to a group makes it invisible.
Part of it reverts commit 3a53e4743e.
Another part is a fix to the CRITICAL mentioned in this commit.

This being said, it's clearly not entirely right yet. The boundaries of
the layer when the filter is merged are not correct, which is especially
visible when trying to draw on this layer afterwards.
Also the layer group boundaries (when reproducing the steps in #16010)
are clearly wrong too.
2026-03-24 20:37:00 +01:00
Jehan
78de1080ce libgimpbase: fix leak from commit 2f76be13cb. 2026-03-24 20:20:34 +01:00
Jehan
63a57d68cb NEWS: update. 2026-03-24 20:20:34 +01:00
Bruno Lopes
3a90c48d6e build/macos: Try to fix MacPorts packages not being upgraded 2026-03-24 15:12:08 -03:00
Bruno Lopes
54e3a9777d build/linux: Update v0.3.31.tar.gz to 0.3.32
Synced from 1fc57c7b1e
2026-03-24 13:59:43 -03:00
Ondřej Míchal
2f76be13cb libgimpbase: Correctly free duplicate nicks in GimpChoice
A crash could happen when a duplicate nick was found due to incorrectly
freeing the content of 'choice->keys' which holds the nicks and not
GimpChoiceDesc. Instead, the nick needs to be simply freed.
2026-03-24 18:14:14 +02:00
Bruno Lopes
06d8bd6c54 build/windows: Do not allow cancelling itReinstall nor itUpdate
As said on cbe2f6be, Inno does not support modifying installations at
all, not even canceling/undoing modifications like reinstall and update.

This limitation become more apparent after the fix 24e42dd1 so
let's prevent the users being damaged by such major Inno pitfall.
2026-03-24 10:00:23 -03:00
Bruno Lopes
cbc8150749 build/windows: Wipe obsolete /32 dir from previous installs
Following 3d026f3d
2026-03-24 08:25:51 -03:00
Bruno Lopes
24e42dd1fc build/windows: Wipe versioned dep files on upgrades from Installer
Closes #16087
2026-03-24 07:14:00 -03:00
Bruno Lopes
aba2a9b852 meson, tools: Add check for GDB when debug-self-in-build option is set 2026-03-24 06:58:30 -03:00
luming zh
21721eafa3 Update Chinese (China) translation 2026-03-24 03:33:43 +00:00
Марко Костић
1b9a3fcfb1 Update Serbian translation 2026-03-23 23:36:43 +00:00
Martin
ef0a9822be Update Slovenian translation 2026-03-23 23:30:11 +00:00
Bruno Lopes
ab0b041321 gitlab-ci: Fix typo on Homebrew rule 2026-03-23 18:05:25 -03:00
Bruno Lopes
e75d758712 build/windows: Ops, forgot about -ErrorAction SilentlyContinue 2026-03-23 16:14:29 -03:00
Bruno Lopes
a791238394 build/windows: Evaluate inno_version to the highest versioned Inno
Following 37dd5755
2026-03-23 16:02:26 -03:00
Yuri Chornoivan
f96b5f18d7 Update Ukrainian translation 2026-03-23 16:41:18 +00:00
Alx Sa
680ebede22 plug-ins: Read full channel data for PSP selection
968cf06a only loaded the rectangle area that the
selection was contained in, rather than the actual
channel data. This patch extended the code to
also read in the PSP_CHANNEL_BLOCK data, add
it to the selection GeglBuffer, and then shift it over
into the correct location.
2026-03-23 15:07:33 +00:00
Yuri Chornoivan
fdeb87946f Update Ukrainian translation 2026-03-23 12:55:20 +00:00
Bruno Lopes
1d4b1e098b app: Add support to installing gimp-help on GIMP*_DIRECTORY
See: https://gitlab.gnome.org/GNOME/gimp-help/-/issues/553

This is needed for some read-only packages.
2026-03-22 22:20:18 -03:00