Commit graph

57066 commits

Author SHA1 Message Date
Jehan
dbbab9ef23 libgimpcolor: small indentation fix. 2026-03-11 21:05:39 +01:00
Jehan
8b649ccca4 NEWS: update. 2026-03-11 21:04:38 +01:00
Jehan
dc7ee09e0d gimp-data: export the splash image as sRGB without profile for reproducibility. 2026-03-11 20:49:27 +01:00
Jehan
ef4c0a9504 app, libgimp, pdb: fix gimp_image_convert_color_profile() to allow NULL profile.
The function's documentation was already saying that we could set no
profile, except that in reality, setting NULL for the profile was simply
failing. Unless one checked the return value, the failure is also quite
silent. So let's actually implement what the docs say.

Also the concept of "default" profile might be a bit unclear in GIMP as
it could mean either built-in profiles or preferred ones (as set in
Preferences). I chose the former for this function, so I reword this
part of the docs.
2026-03-11 19:29:06 +01:00
Bruno Lopes
dc3a2a4f32 build/linux: Update exiv2, openexr and graphviz modules
Synced from 387e5f097f and
81109ce532
2026-03-11 12:28:01 -03:00
Bruno Lopes
6fab4e2a81 app: GEGL is now relocatable on macOS 2026-03-11 11:21:05 -03:00
Jacob Boerema
dbfc7d5b9c tests: fix typo psp has extension psp not psd 2026-03-11 09:28:39 -04:00
Jehan
4662c65fdc build: set grade: stable now that we have new babl/GEGL releases. 2026-03-11 14:13:26 +01:00
Alexander Alexandrov Shopov
e776efa7cc Update Bulgarian translation 2026-03-11 09:00:03 +00:00
Ekaterine Papava
781e1ca1fb Update Georgian translation 2026-03-11 05:23:07 +00:00
Jehan
14cfcf7251 gimp-data#11: the RC2 splash image was voted as our 3.2 stable series splash! 2026-03-10 19:26:48 +01:00
Jehan
a50255871c Issue #13066: Opening XPM crashes XPM plugin.
Determining whether we are on X11 or not is a runtime test, not
build-time.
2026-03-10 16:38:21 +00:00
balooii balooii
b0ee5ddfce Issue #12491: Fix GimpUnitComboBox immediately closing on certain platforms
I noticed that the issue of the combo box popup getting immeidately
closed on Linux X11 (and probably macOS as well) only happens when using
GimpUnitComboBox as used in gimppropwidgets.c and gimpsizeentry.c while
there is no issue when used in gimpstatusbar.c

The only noticable difference I saw was that in status bar was that
the wrap width of combo box was set to 1 via
gtk_combo_box_set_wrap_width. Which was added as a hack for another
issue.

I did the same for the other two uses of GimpUnitComboBox and the issue
disappeared so I moved this hack to GimpUnitComboBox itself as it seems
to be generally useful.

The change doesn't make much sense to me and is a workaround for
something that should probably be changed in GTK but well.

As explored in !2654 I think we shouldn't use GtkComboBox but reimplement
using a Popover. This would get rid of these workarounds as we wouldn't rely
on internal behaviour of GtkComboBox.

Couldn't test macOS or Windows but Linux X11 and Wayland work just fine.
Tested by: GDK_BACKEND=x11 gimp and GDK_BACKEND=wayland gimp

Fixes #12491

Superseedes !2654
2026-03-10 00:11:37 +01:00
Jacob Boerema
a8b30b17d7 app: fix #12867 crash when exporting grayscale .gih
With a cell size half the width of a grayscale image with an alpha
channel, we get a crash because we write outside our buffer.

When computing the offset in the buffer, we added the offset of the
tile, but since we are just writing this tile. We should not add that
offset.
2026-03-09 17:18:43 -04:00
Alx Sa
5b6f1b481a file-data: Prevent crash with GIH and empty groups
Empty layer groups have no dimensions,
which can cause the GIH exporter to
crash when splitting cells (as it produces
negative width & height dimensions).

To prevent this, this patch initializes
potential brushes to NULL, verifies the
dimensions are positive before trying to
create GimpTempBuf with then, and prevents
a possible NULL brush from being added
to the exported brush list.
2026-03-09 16:21:30 +00:00
Jehan
413b24b0d4 NEWS: update. 2026-03-09 16:24:35 +01:00
Gabriele Barbero
0d3ea5f4f1 display: fix wrong assertion in gimp_display_shell_set_child 2026-03-09 14:39:32 +00:00
Gabriele Barbero
eb52c529ff display: push on-canvas text editor fully inside the display
Previously, the on-canvas text editor would be repositioned only if it was completely
outside the display. If it was partially off-screen, it could be hard to
move it back inside (e.g.  when only a small part of the editor was visible
and difficult to grab). Now, the editor is always adjusted to remain fully
visible within the display
2026-03-09 14:39:32 +00:00
Jehan
045c818d0e Issue #15962: initialize Levels dialog in Perceptual.
Unlike for Curves (commit 7b4f0993e8), we cannot just change the "trc"
default of "gimp:levels", because then it could break any existing
script, made during the 3.0 series, which was applying this filter on
layers.
Instead, the "trc" stays linear by default for the op, but the tool's
dialog will override it to perceptual.

When we'll have implemented proper op versioning, we will be able to
change the default.
2026-03-09 14:26:58 +01:00
Jehan
21e7e4e576 app: remove "linear" property from "gimp:curves" op.
This property is fully ignored right now and was only kept for
compatibility reasons. One of the compatibility issue was config
parsing, but config migration rules were added on commit 955ff5b765.

The second compatibility issue was the case where this op may have been
used in existing scripts. Yet "gimp:curves" could not have been used in
the GIMP 3.0 API since GimpCurve type did not exist in libgimp. It could
even less be used directly though GEGL API because a plug-in process
doesn't see the "gimp:*" ops (only through our GimpDrawableFilter API).

So we can safely remove this arg now. Unfortunately we can't do the same
for "gimp:levels" because it was usable during the GIMP 3.0 series.
2026-03-09 14:26:58 +01:00
Kolbjørn Stuestøl
85193f795b Update Norwegian Nynorsk translation 2026-03-09 13:04:29 +00:00
Kolbjørn Stuestøl
55f7727b0e Update Norwegian Nynorsk translation 2026-03-09 12:58:32 +00:00
Kolbjørn Stuestøl
15e9e0418c Update Norwegian Nynorsk translation 2026-03-09 12:46:14 +00:00
Alx Sa
c2f87513d6 app/tools: Fix ordering of selection mode options
In 046c8f27, we added a new function
gimp_selection_options_get_mode_box () so that the
Paint Select tool would use the same enum as other
selection tools. Code was added to move the
GIMP_CHANNEL_OP_REPLACE enum to the front only if
it was greater than the min value and less than the max value
that was passed in. This was to allow the Paint Select tool to
keep GIMP_CHANNEL_OP_ADD at the front while leaving the
other selection tools as they are.

However, the original call used 0, 0 for those values, so the
rearrangement code never ran at all. This patch changes the
parameter max value to GIMP_CHANNEL_OP_INTERSECT so
that Replace is moved for non-Paint Select tools.
2026-03-09 10:26:46 +00:00
Alx Sa
8e4e83911c dialogs: Set "Quit Save" icon size based on theme
The "Save"/"Save as" icons that appear in the Quit
Dialog when there are two or more images with unsaved
changes were always sized as GTK_ICON_SIZE_MENU,
or 16px, regardless of icon theme settings.

This patch adds code on Quit Dialog creation to check
the current theme and update the icon size accordingly
via `quit_style_updated ()`.

Note that this is a limited implementation due to the pending
release of GIMP 3.2. It is not connected to notify::custom-icon-size
signals to reduce complexity and potential issues.
In the future, we may move this to the parent GimpMessageDialog
if other dialogs would also benefit from getting a button icon size from
the theme.
2026-03-09 01:53:00 +00:00
Bruno Lopes
fc84cdbe87 build/macos: Fix typo 2026-03-08 22:26:06 -03:00
Bruno Lopes
269717a1c7 build/macos: Try to fix gnupg2 build error 2026-03-08 22:25:02 -03:00
Bruno Lopes
1b6bd94563 build/macos: Create macports-* arch-specific dir if it does not exist
Following 59fe682f
2026-03-08 16:39:06 -03:00
Jacob Boerema
aabce89271 plug-ins:: fix #15960 PCX buffer overflow
A buffer overflow in the PCX reader was reported.

The +1 was added in commit da217088d0
to allow loading where the images have an off by 1 value. However,
this leaves the problem that allocated buffers may be 1 byte too small.

Because we prefer to keep loading as many images as possible, we choose
not to return an error. Instead we allocate 1 extra byte for the
line buffers.
In addition to that, we add check for valid values of bpp and error
out early when invalid.
If the bytesperline value is off by more than 1, we output a warning
message and use the manually computed value instead.

Additionally add a comment that we need to fix a British English
word in a string after string freeze.
2026-03-08 15:18:44 -04:00
Alx Sa
36f594f396 plug-ins: Free temp images in file-dcx-load
Per Jacob Boerema, the DCX loading plug-in left
behind stray images. This is because we load each
PCX image inside the DCX as a separate image and then
copy it as a layer into the first one. However, we were
not deleting the temporary image afterwards.
This patch adds a call to gimp_image_delete () to do
the clean-up work after copying the layer from the
temporary image.
2026-03-08 18:06:38 +00:00
Bruno Lopes
59fe682fe1 build/macos: Copy macports contents, not macports dir
Ths fixes a bug introduced by f5fa988a
2026-03-08 14:28:53 -03:00
Bruce Cowan
81f8b8d933 Update British English translation 2026-03-08 16:46:55 +00:00
Alx Sa
f7f9022f2f themes: Define style for textview.view
Resolves #14617
Previously, we had defined the Default theme for
GtkTextView text with "textview" and "textview text".
However, the Python console also outputs some text
that is formatted by "textview.view". Since we did not
define a style here, it was possible for a System theme leak,
resulting in unreadable console output (separate from console
input).
This patch should resolve the issue by adding textview.view to
the GtkTextView definitions in common.css.
2026-03-08 16:35:42 +00:00
Bruce Cowan
ec27758949 Update British English translation 2026-03-08 16:05:19 +00:00
Bruce Cowan
0da3427664 Update British English translation 2026-03-08 15:55:20 +00:00
Bruce Cowan
c6b4b95691 Update British English translation 2026-03-08 15:49:32 +00:00
Bruce Cowan
849bc236b9 Update British English translation 2026-03-08 15:24:12 +00:00
Alx Sa
b4d41182dd plug-ins: Fix ZDI-CAN-28405 for IFF plug-in
Resolves #15289
This patch replaces the initial allocation of pixel_row
with a per-format allocation. This should resolve issues
where the allocation was too small for certain formats,
without requiring a large allocation for all formats regardless
of need.
2026-03-08 14:16:44 +00:00
Bruno Lopes
f5fa988a54 gitlab-ci, build/macos: Reset GitLab CI cache preparing for multi-arch support 2026-03-08 11:00:51 -03:00
Bruno Lopes
e8987fc26b gitlab-ci, build/macos: Bump Orka image to macOS 26
This is needed to generate Liquid Glass icons (#15023) and
was made possible thanks to Infrastructure/Infrastructure#2159
2026-03-08 10:44:56 -03:00
Asier Saratsua Garmendia
ef7027ebca Update Basque translation 2026-03-08 06:52:29 +00:00
Alx Sa
edc2b1736b plug-ins: Correct GUI and CMYK logic for JPEG export
Resolves #9545
When exporting a JPEG as CMYK, it is possible for the
"Save Profile" metadata option to be unchecked. This causes
the image to be saved without its CMYK profile, resulting in an
incorrect image rendering.

As this is almost never the desired case, this patch changes the
export logic to always save the profile IF the user has requested
CMYK export and a CMYK profile is attached.

Additionally, this patch fixes an issue in the export dialog where
the DCT options are shown as a radio frame instead of a combobox
as in GIMP 2.10.
2026-03-08 03:45:33 +00:00
Ondřej Míchal
cacccbaf05 plug-ins/gfig: Fix value updates after port from GimpScaleEntry to GimpSpinScale
The new widget is not a subclass of GimpLabelSpin.

Fallout from c3fcbd0019.

Helps with https://gitlab.gnome.org/Teams/GIMP/Design/gimp-ux/-/issues/503.
2026-03-08 03:15:31 +02:00
Jacob Boerema
98cb1371fd plug-ins: fix #15970 buffer overflow in file-psp
Reported as ZDI-CAN-28874.

For psp images with bit depth 1 or 4 bits and small widths, it was
possible to overflow the buffer because these bit depths are stored
in multiples of 4 bytes per line.
Because these formats are converted to regular RGB, this means that for
small widths, more bytes are needed than expected when we are upscaling
to 8-bit.

To fix this, we compute the line size when depth < 8, and adjust
line width if that value is larger.
2026-03-07 15:55:40 -05:00
Jordi Mas
3a16f12080 Fixes to Catalan translation 2026-03-07 20:15:18 +01:00
Jehan
8e71b62f78 app: blurb cleanup.
Found all now unused blurbs with:

for macro in `grep -rI '^#define \([A-Z0-9_]*\)' app/config/gimprc-blurbs.h | sed 's/#define \([A-Z0-9_]*\).*$/\1/'`; do
  grep -rIq "$macro" * --exclude=gimprc-blurbs.h;
  if [ $? -ne 0 ]; then
    echo $macro;
  fi;
done

Only exception was LAST_REVISION_BLURB, which was not used, but should
have been.
2026-03-07 14:45:50 +01:00
Bruno Lopes
ba227a6cec gitlab-ci: Fix MacPorts cache never being pulled on non-master branches
This is the same logic of our Flatpak deps script. But,
for now, it will only work on gimp project, not on forks.
2026-03-07 08:52:29 -03:00
Asier Saratsua Garmendia
ed108d9941 Update Basque translation 2026-03-07 08:41:30 +00:00
Anders Jonsson
e0910337d0 docs, etc: gimprc memsize without suffix is just bytes 2026-03-06 23:29:14 +01:00
Jehan
635da347cd plug-ins: improve describing enum and choice arguments.
* Also print the default value for both types of args.
* Display choice values with quotes since they are technically strings.
2026-03-06 22:49:14 +01:00