Commit graph

56972 commits

Author SHA1 Message Date
Bruno Lopes
59f2fa45ca tools: Make defcheck.py CWD unambiguous
This is better for debugging when some error happens.
2026-03-02 16:50:41 -03:00
Baurzhan Muftakhidinov
c052c94234 Update Kazakh translation
(cherry picked from commit 57d67deb601663972a02ce88ea292cb749d4bb9e)
2026-03-02 17:33:16 +00:00
Baurzhan Muftakhidinov
fdfc6b9a2c Add Kazakh translation 2026-03-02 17:18:42 +00:00
Jehan
c4dd447133 Release GIMP 3.2.0 RC3. 2026-03-02 17:43:05 +01:00
Jehan
5611e356a0 build: SnapCraft ready for release. 2026-03-02 17:41:38 +01:00
Jehan
7b3052dcdd app: fix a crash in GIMP when calling gimp:curves with GIMP_HISTOGRAM_LUMINANCE…
… from a plug-in.

The value is accepted by the current specification of "channel" but it
is actually not supported and would end up crashing the core process.

The real fix which should happen would be to make GimpParamSpecEnum
usable in libgimp, and be able to pass its spec through the PDB. Then we
could use this param spec instead of GParamSpecEnum for such property
not supporting all values in an enum.

Note that with the current fix, the "gimp:curves" filter will silently
refuse the Luminance channel when passed as "channel". It is not ideal.
But it's better than crashing the whole of GIMP!
2026-03-02 16:58:11 +01:00
Martin
696b756f7d Update Slovenian translation 2026-03-02 13:29:31 +00:00
Jehan
64eafc5cb3 app: do not build GEGL documentation.
We don't make use of it anywhere in our pipeline or release processes,
and it's making problems right now.
2026-03-02 12:39:13 +01:00
Kristjan ESPERANTO
0eae4b1246 Update Esperanto translation 2026-03-02 06:57:59 +00:00
Kristjan ESPERANTO
f327d8c5c6 Update Esperanto translation 2026-03-02 06:52:25 +00:00
luming zh
219d2f0754 Update Chinese (China) translation 2026-03-02 01:31:52 +00:00
Jehan
2ff8726d45 desktop: set RC3 release date. 2026-03-02 00:15:31 +01:00
Jehan
a9202db2cc build: set grade: stable per release checklist instructions. 2026-03-01 23:54:14 +01:00
Jehan
6cda052bf2 desktop: updated AppStream metadata. 2026-03-01 23:50:21 +01:00
Jehan
e9e2bb1b2e app: GimpEditor buttons will have the associated action name as identifier. 2026-03-01 23:48:57 +01:00
Jehan
6df7efaa3d libgimpbase: variables must be defined at start of scope.
Fixing:

> libgimpbase/gimpenv.c:364:7: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
2026-03-01 23:07:30 +01:00
Jehan
0fa907fb22 NEWS: update. 2026-03-01 22:33:58 +01:00
Jehan
51ac9d7f2a Issue #15681: deprecate gimp_drawable_curves_explicit() and…
… gimp_drawable_curves_spline().

We can now run directly "gimp:curves" operation, both destructively or
non-destructively, but also setting the TRC, as well as individual point
types (when the curve is of type "smooth" instead of freehand).
This is much more powerful!
2026-03-01 22:33:58 +01:00
Jehan
b87bab9e8c app, libgimp*: add GimpCurve sample API in libgimp and PDB. 2026-03-01 22:33:58 +01:00
Bruno Lopes
d6f5205a89 tools: Port improved defcheck.py from gegl 2026-03-01 18:30:54 -03:00
Anders Jonsson
fedaa92185 Update Swedish translation 2026-03-01 21:13:55 +00:00
Jehan
9a2193bb93 libgimp: adding API docs and clean up a bit the GimpCurve API.
In particular, I am getting rid of several of the properties, which are
really not that good (and even bogus for some, such as "n-points").
Properties tied together like this (number of elements stored in one
prop applying to the array stored in another prop) are often a bad idea
and only end up in messy code ending up in inconsistencies.

Instead let's use signals. I am keeping the "n-samples" for now as it
can clearly be considered more "stable" than "n-points" and not meant to
change.

We'll also have to make a decision on whether we really want to keep the
samples API in libgimp, or drop all current sample functions. Right now
we cannot actually create meaningful sample points.
2026-03-01 16:47:06 +01:00
Bruno Lopes
6e8928e823 gitlab-ci, build: Fail on warnings on Clang builds making them more useful
Thanks to various improvements on babl and GEGL repos they now build cleanly.
So, let's take advantage of Clang senstive semantic analysis on future builds.

For now, this is limited to such projects and on GNU Clang and Apple Clang,
since there is still a bit of work to do on Clang-CL (MSVC) side.
2026-03-01 11:16:22 -03:00
Bruno Lopes
24f8f6f68b app: Do not unconditionally force Playground on macOS
Very weird line of code.
2026-03-01 11:15:06 -03:00
Bruno Lopes
fcba50ffcd meson: Fix meson 1.10 warning about add_languages 2026-03-01 11:02:12 -03:00
Alx Sa
804991a215 libgimp, pdb: Allow access to GimpCurve in PDB
Adds a GimpCurve object and functions in libgimp.
Rather than creating a GimpCurve object in core and
passing it back and forth, we just pass the attributes
and reconstruct it across.
In the future, we may combine this with the app/core one
and put it in libgimpbase.
2026-03-01 13:41:35 +00:00
Shigeto YOSHIDA
66efbd003c Update Japanese translation 2026-03-01 09:32:37 +00:00
Shigeto YOSHIDA
261f7ea93a Update Japanese translation 2026-03-01 09:31:37 +00:00
Shigeto YOSHIDA
8fe95ab19f Add Japanese translation 2026-03-01 09:31:08 +00:00
Marco Ciampa
f0de69a5a7 Small typo in Italian translation 2026-03-01 00:50:33 +01:00
Jehan
3a53e4743e app: copy the buffer rather than using it as source.
I think the previous code should be OK, but I had some criticals when
painting with a paint tool in the area which got extended:

> (gimp:577203): GLib-GObject-CRITICAL **: 21:37:08.402: value "-31" of type 'gint' is invalid or out of range for property 'y' of type 'gint'

It looks like there lingering pieces from the negative offset in the
buffer, which is probably a bug in GEGL?
Anyway let's go the shorter route for now, which is to copy the buffer
with a different offset. I don't think it's less efficient either
anyway.
2026-02-28 21:52:10 +01:00
Jehan
4c15be6a56 app: fix merging filters with negative top-left point.
When merging filters whose rendering was expanding in negative
ccordinates, I realized that the drawable was not properly resized (it
was resized properly when the width/height increased, but not when the x
or y points became negative, even though this "cropped" part still
showed… until you saved and reloaded your XCF!).

The problem is that drawable buffers are always stored with (0, 0)
top-left and this was just confusing our existing code. So let's check
when trying to set a buffer with a non-(0, 0) origin, and update the
offset subsequently.

I hesitated with an alternative implementation which was to edit the
buffer applied to the drawable in gimp_drawable_merge_filters(). But I
figured this would be more future-proof for other similar cases, though
I hope I did not break any use case where this was actually considered a
normal case.
2026-02-28 21:04:05 +01:00
Marco Ciampa
018eafc146 Small typo in Italian translation 2026-02-28 17:43:32 +01:00
Waris
ed72b7d5df plug-ins: Import YUV OpenEXR chroma channels as RGB 2026-02-28 14:19:27 +00:00
kaushik_B
ca931fbe33 Issue #14972: Fix GimpLabelSpin CRITICAL warnings for small double ranges
During instantiation, the widget bypassed saving the PROP_DIGITS state
because the spinbutton was not populated, leaving digits at 0. This
forced the widget into an integer state, causing step calculations to
break for small fractional ranges (e.g., 0.001 to 1.0).

Added G_PARAM_CONSTRUCT to the digits property and moved the internal
assignment outside the spinbutton check so the correct initial state
is saved immediately.

Added a check to ensure step and page do not go out of range.
2026-02-28 13:19:04 +00:00
Bruno Lopes
b7d89728c4 app, libgimpthumb, plug-ins, tools: Fix POSIX namespace warnings on MSVC 2026-02-28 10:06:46 -03:00
Bruno Lopes
2cbfad8ef3 build/macos: Use symlinks instead of patches for macOS bundle structuring
This is way cleaner.
2026-02-27 12:14:09 -03:00
Bruno Lopes
dc1771918b app: Only show the installed locales for GIMP
Closes: #15468

There is no point on showing languages that can not be used.
This was confusing distro package and Windows installer users.
2026-02-26 20:51:09 -03:00
Alx Sa
3a4bd57da6 widgets: Turn off default search in GimpPrefsBox
Same patch as cb552d3d, just applied to GimpPrefsBox.
This was visible in the Preferences Dialog, where the same
unnecessary pop-up appeared in the side panel.
2026-02-26 19:15:13 +00:00
balooii balooii
d80ad177af Issue #13401: Fix crash opening channels after apply/undo drawable filter 2026-02-26 15:06:14 +00:00
Alx Sa
90273fe90a path: Add gimp_vector_layer_convert ()
When we copy and paste a vector layer,
we need to reattach its path to the
(potentially) new image. Similar to what
we did for NDE filters in 8db97f4e,
we convert the existing path if necessary
before continuing with the gimp_item_convert ()
process. This prevents several CRITICALs,
for instance when copying a group that
contains vector layers rather than the
vector layers directly.
2026-02-26 03:20:05 +00:00
Jehan
ad936482a2 Revert "Issue #15824: waterpixels filter on a selection appears to hang GIMP."
This reverts commit d91a8b2abe.

As reported by Liam on #15824, this commit was clearly wrong and
reintroduced the old cropping bug with multiple filters. Reverting.

The next commit was likely good, though the real hanging bug is — as far
as my test go — in the GEGL op itself. This second commit 75e665f0ed was
improving things, but obviously, as the bug is still in the op, it can
still be triggered. We'll have to fix the source bug next.
2026-02-25 23:51:56 +01:00
Alx Sa
918aea3df5 dialogs: Replace custom widget in Path Export dialog
This patch replaces adding a custom widget
to the Path Export dialog with a built-in
combobox from gtk_file_chooser_add_choice ().
This makes our code more compatible
with a future port to native file dialogs
in GTK3, without a loss of functionality.
2026-02-25 21:35:52 +00:00
Alan Mortensen
d29c7b8e6b Update Danish translation 2026-02-25 16:30:01 +00:00
Alan Mortensen
7c16c54317 Update Danish translation 2026-02-25 16:17:42 +00:00
Bruno Lopes
50d4043003 libgimp: Set _NT_SYMBOL_PATH for plug-ins when relocatable
This concludes 63f5ea9d by adding support to CodeView symbols from
plug-ins with DrMingw. (Should not be needed but DrMingw is buggy).
2026-02-25 11:51:34 -03:00
Bruno Lopes
a30fc5fb7b .gitlab: Update security template 2026-02-25 11:46:26 -03:00
Jehan
75e665f0ed Issue #15824: better detect the first filter.
Ah my previous commit was working fine with a selection in the "Use the
selection as input" case, but was still hanging when "Use the entire
layer as input" was chosen.

The detection of whether we were the first filter was not working fine
when adding a new filter. Now this should work in all cases.

I don't revert the previous commit, because I think it's fine anyway.
When we have a selection, unconditionally adding a cropping-before node
on the selection boundaries seems logical to me.
Hopefully it doesn't bring back any of the cropping issues we had on
filters, but so far I could not reproduce any.
2026-02-25 15:44:29 +01:00
Jehan
d91a8b2abe Issue #15824: waterpixels filter on a selection appears to hang GIMP. 2026-02-25 15:38:23 +01:00
Bruno Lopes
d8e0f2780c .gitlab: Remove .testing subdomain from URLs
The updated bug report pages were merged on master branch of WGO.
2026-02-25 10:59:09 -03:00