Commit graph

56078 commits

Author SHA1 Message Date
Jehan
b8cd03b3e3 desktop: copy the <release/> data of 3.0.6 from gimp-3-0 branch. 2025-10-21 14:24:07 +02:00
Jehan
a4afe64097 NEWS: update. 2025-10-21 13:45:53 +02:00
Alx Sa
f302d42f5d display: Allow URI drag-n-drop to image tab bar
This patch connects GimpImageWindow's notebook
header to respond to external file/URI drag-n-drop.
If you drag files onto the image tab bar, it will create a
new image for each file.
Code based on a similar feature in gimpdisplayshell-dnd.c.
2025-10-21 01:06:53 +00:00
Anders Jonsson
ce5aa29a9c po: update POTFILES.in 2025-10-20 13:31:27 +02:00
Sabri Ünal
09f768f92d Update Turkish translation 2025-10-19 14:57:18 +00:00
Sabri Ünal
49f79474c2 Update Turkish translation 2025-10-19 14:56:57 +00:00
Sabri Ünal
abdf949493 Update Turkish translation 2025-10-19 14:49:24 +00:00
Gabriele Barbero
6719f28319 tools: use primary_mask for unformatted paste in text tool
The analogue of Control key on macOS is the Command key, this means that
`GDK_CONTROL_MASK` has not the expected behavior on macOS. This commit
changes the modifier for unformatted paste in text tool from Control to
Primary, which maps to Command on macOS and Control on other platforms.
2025-10-19 14:28:30 +02:00
luming zh
12a9dcd51f Update Chinese (China) translation 2025-10-19 11:04:51 +00:00
Alan Mortensen
335611759f Update Danish translation
(cherry picked from commit f53684c0c7)
2025-10-19 09:51:28 +00:00
megakite
ac13449142 app, menus: Support pasting unformatted text in Text Tool
This patch adds a Paste Unformatted Text item inside the
right-click menu of Text Tool, which allows user to paste
previously copied, possibly formatted (marked) text as plain
text with no markup.
2025-10-19 03:22:49 +00:00
Bruno Lopes
8e6a99d0e0
build/windows: Make possible to build (babl only) with MSVC 2025-10-18 22:30:40 -03:00
Sabri Ünal
bf5331b3dc plug-ins: Unify Wavelet Decompose naming
I don't know Which form is better but let's try to unify strings.

It should be Title Case for procedure_dialog_new function.
2025-10-18 13:19:23 +03:00
Bruno Lopes
0895695d87
build/linux: Mention name: on preview and latest snap README 2025-10-17 20:21:09 -03:00
Alx Sa
3cb0eb2df5 plug-ins: Fix crash when removing flares in Gradient Flare
Resolves #15113
There is code in the Gradient Flare plug-in to prevent deleting
gradients when there is only one left. However, the flare count
was not being properly updated. Due to a stray unbounded IF
statement, "if (tmp->next == NULL)", the num_gflares variable
was only decremented if you deleted from the bottom of the list.
As a result, you could delete all the flares and cause the plug-in
to crash when it tried to render a non-existent flare.

This patch removes the stray IF statement and adds additional checks
to make sure dlg->gflare exists before trying to get a pointer from it.
2025-10-17 21:58:15 +00:00
Bruno Lopes
b3fe88323c
build/linux: Bump openexr module to 3.4.2
Synced from 7f1b70cbab
2025-10-17 15:02:20 -03:00
Bruno Lopes
4d64bab97a
devel-docs: Fix Color Notebook image label
See: Infrastructure/gimp-web-devel#35
2025-10-17 11:02:57 -03:00
Bruno Lopes
f771437242
devel-docs: Finish devel-docs cleanup
See: Infrastructure/gimp-web-devel#9

gitlab-mr.md was removed without replacement since the
package generation info is now on the MR template for
everyone's benefit (6245e4ee) and the test of the
text was mainly personal annotations.
2025-10-17 10:03:23 -03:00
Bruno Lopes
13d3643ad7
devel-docs: Move GIMP 3 porting guide to gimp-web-devel
See: Infrastructure/gimp-web-devel#9

Except API-for-resources.md, which is ugly and
not linked in the README. And GIMP3-API-Changes,
which seems to be just a personal annotation.
2025-10-17 09:23:57 -03:00
Alx Sa
6910945bd4 plug-ins: Set background fill for multi-page PDF
Resolves #14752
Our previous logic only worked for single-page PDFs.
If a multi-page PDF was exported, only the first layer
would have the background color set - the rest would
always be transparent regardless of user choice.

This patch moves the "fill background" logic deeper into
the layer drawing code, so that it is considered for each
layer rather than once at the beginning. It is also adjusted
for different situations, such as when the user wants group
layers to be combined.
2025-10-17 12:19:18 +00:00
Marco Ciampa
5b2680c660 Updated Italian translation 2025-10-17 14:00:33 +02:00
Bruno Lopes
768ff5bc5d
build/linux: Add instructions about gimp-plugins bump on preview Snap too 2025-10-17 08:40:02 -03:00
Bruno Lopes
21044e61f2
devel-docs: Move advanced concepts to gimp-web-devel
See: Infrastructure/gimp-web-devel#9

Also, drop interpreters.txt since we have an example file.
2025-10-17 08:37:10 -03:00
Bruno Lopes
d997fd39a6
devel-docs: Remove gimp-data-ish text 2025-10-17 08:37:06 -03:00
Alx Sa
1413921e78 plug-in: Export PDF vector layers
This patch adds support for exporting vector layers
as vectors via Cairo.
2025-10-17 10:07:34 +00:00
Marco Ciampa
09b3950f52 Updated Italian translation 2025-10-17 10:16:47 +02:00
Ekaterine Papava
974b2e78b7 Update Georgian translation 2025-10-17 08:15:19 +00:00
luming zh
3cd02709ef Update Chinese (China) translation 2025-10-17 00:22:03 +00:00
luming zh
af0cd77960 Update Chinese (China) translation 2025-10-17 00:15:25 +00:00
Bruno Lopes
ad2c3beded
build/linux: Add GIMP major version on content: of gimp-plugins plug
Similarly to Flatpak's "add-extensions"."org.gimp.GIMP.Plugin"."version".
Otherwise, we would have broken Snap plugins on GIMP 4 which breaks API.
2025-10-16 12:48:56 -03:00
Bruno Lopes
446f21d527
.gitlab: Update link to Image formats list page
See: Infrastructure/gimp-web-devel@d7e6312b
2025-10-16 11:00:38 -03:00
Bruno Lopes
ae32786a55
.gitlab: Mention Snap and MS Store packages on issue templates 2025-10-16 10:48:12 -03:00
Jehan
f175004be3 Issue #15099: --no-interface mode broken on macOS. 2025-10-16 01:26:25 +02:00
Jehan
11dc1c6b47 app: revert to previously selected drawables when getting out of quick mask. 2025-10-16 01:03:25 +02:00
Alx Sa
931f60923a core: Commit NDE filters on Quick Mask exit
Per Reju, NDE filters are not factored into the selection
created when turning off the Quick Mask.
This patch adds a call to gimp_drawable_merge_filters ()
on exit so that all active filters are merged down before
the selection is made.
2025-10-15 19:36:41 +00:00
Jehan
0358625b1c app: merge button should be insensitive on non-rasterized GimpRasterizable. 2025-10-15 21:07:55 +02:00
Jehan
5622708c0a app: improve layer and path selection logic.
- The "Create New Vector Layer" button is now always active, as long as
  there is an image.
- When a path is selected with no matching vector layer, the button's
  label will be "Create Vector Layer from Path", indicating that it will
  create a new vector layer from the current path.
- When selecting a path while the Path tool is active, let's update the
  selected layers to all the layers (it may be several layers!) tied to
  this path. Otherwise, this can be quite confusing, showing a path
  while another layer is selected, or worse, showing a path while the
  selected layer is a vector layer (but not tied to this path).
2025-10-15 21:07:55 +02:00
Bruno Lopes
4d7135f6f2
build: Make CI_COMMIT_TAG check more robust 2025-10-15 12:48:56 -03:00
Bruno Lopes
3490dcc042
gitlab-ci: Fix Store pipeline rules: after cbe56ff3 2025-10-15 12:04:20 -03:00
Jehan
884dc6bf59 NEWS: update. 2025-10-15 15:23:04 +02:00
Jehan
e960ed0d12 app, menus: delete "layers-vector-fill-stroke" action.
Cf. discussions on IRC with Alx.
Since this is editable directly in the Path tool options, we likely
don't need to have the separate action for it. It feels redundant.

It is still available on a double-click, though I am not sure if it's a
good idea. Maybe the double-click should rather activate the path tool,
from which you can edit all these (just as what happens with the text
tool). To be continued after more UX discussions?
2025-10-15 15:11:03 +02:00
Jehan
0f65d3923e app: show a menu path to advertize how to "Rasterize" and blink the selected layer.
This is the result of a UX session with Aryeom. Just showing a message
forbidding editing of non-rasterized text/link/vector layers is
problematic, because it doesn't help people understand how to unblock
their situation (if they really want to just edit directly the layer).
Additionally we are now blinking the layer.

A possible alternative could have been to pop a dialog up, with the
same message but also with a quick-action button to allow rasterize in a
click (similar to how we are popping a dialog up to revert the
rasterization when clicking on a text layer with the text tool or a
vector layer with the path tool). The problem is that even though the
need to edit directly a non-raster layer arises from time to time, most
of the time, when you use such layers, you don't intend to edit these
(unlike editing text/path with matching tools, you more often wanted to
edit the relevant data).
Therefore it is more often than not just a mistake when you try to paint
directly on such a layer. I.e. that very often, you were intending to
paint on another layer, or add a new layer above your non-raster layer.
Therefore a dialog popping up every time you made such a mistake would
be annoying and workflow-breaking. A simple error message and some
blinking leave for a fluid process.
2025-10-15 14:57:36 +02:00
Jehan
50fd97b28b app: better logic to generically prevent drawing on rasterizable drawables.
The previous code was preventing initializing, but some succession of
actions could go round this check: Rasterize then Revert Rasterize. In
this state, the next click would not try to initialize again, which
first is not very good if the initialization was necessary, and second
would allow drawing on a non-rasterized text/link/vector layer.

So let's just have all the code blocking drawing on rasterizable
drawables in the generic gimp_tool_button_press() code only.
2025-10-15 13:00:44 +02:00
James Addison
ea0574b86c app: allow gimp command-line to run in console mode
When non-interactive mode is requested (the -i command-line flag),
_and_ we've compiled the app with UI support enabled, allow `gimp`
to branch into the console-based version of the app -- equivalent to
running it using `gimp-console`.

This avoids GTK-related failures open a display when one is not
not available (for example, when running `gimp` within a container
or a VM without a graphical display).
2025-10-14 23:20:12 +00:00
Jehan
ecd47d3d23 NEWS: update. 2025-10-15 00:52:34 +02:00
Jehan
c90a485fad plug-ins: add support for exporting pattern of fill and stroke of vector layers. 2025-10-15 00:47:17 +02:00
Jehan
cf9cfbb4ab app, libgimp, pdb: new procedures gimp_vector_layer_get_(fill|stroke)_pattern(). 2025-10-15 00:12:42 +02:00
Jehan
e1b6e93727 NEWS: update. 2025-10-14 23:04:14 +02:00
Jehan
104d0f978d plug-ins: small cleanup.
- Some useless space cleanups.
- Properly free a string.
- Localize procedure documentation strings, except the help text for the
  load procedure as it focuses on rendering to raster, which is true
  now, but soon should not be! Let's not give useless work to
  translators if we soon plan to change this. Also I don't think that
  naming the library we use has much interest in a creator-facing
  string.
- Fix export documentation strings (we don't export only vector
  layers!).
2025-10-14 22:52:19 +02:00
Jehan
79f2de0625 libgimp: fix a function's doc-comment. 2025-10-14 22:30:32 +02:00