Commit graph

54247 commits

Author SHA1 Message Date
Jehan
4012f93e62 Issue #11251: Edit -> Clear (Undo) does not clear the effects which extend…
… outside the drawable's boundary.
2025-03-03 20:51:34 +01:00
Jehan
5d6e1ec889 app: also make sure that we run filters-changed when an operation's argument is updated.
While this was already working when updating a filter through the GUI,
we could see the weakness in the code when updating through the plug-in
API (there, we could again reproduce problematic not-updated bounding
box, similar to #12294).
2025-03-03 20:51:34 +01:00
Jacob Boerema
38f0527ebc plug-ins: fix failing to access help from within GIMP
Since commit 543bb374a8 when
`gimp_help_domain_lookup_locale` returned NULL, we returned with
an error condition.

However, when a user with locale en_CA, or sv_SE tries to access our
help, it should not return, but try again with en and sv respectively.

Instead of returning, only call `gimp_help_locale_map` when locale is
not NULL. Then after that we continue with second pass processing
which will handle the above cases.
2025-03-03 14:06:55 -05:00
Jehan
cd1aa23ede Issue #12294: drawable bounding box not recomputed when needed.
The bounding box of a drawable must be recomputed when the filters
changed. And a filter's "active" property change must trigger a
"filters-changed".
2025-03-03 18:31:21 +01:00
Bruno Lopes
c63419ee7f
build/linux: Fix AppDir detection on AppImage script
It wasn't making possible to create one AppDir per arch locally.
2025-03-03 11:18:46 -03:00
Alx Sa
b7e9634de3 widgets: Restore GimpContainerEditor label
At some point, the code to show the label
for grids in dockable dialogues was removed.
(Possibly when GimpContainerGridView
was removed around 10e3a968).
This patch restores that code to
GimpContainerEditor to display the label
when selecting items in gridview in the
dockable dialogues.
2025-03-02 21:28:59 +00:00
Bruno Lopes
b72c289413
gitlab-ci: Do not trigger crossbuilds (again)
Similar to b3b466dcbc, our
builds are constantly red due to these quasi-msys2 bugs:

https://github.com/HolyBlackCat/quasi-msys2/issues/18
https://github.com/HolyBlackCat/quasi-msys2/issues/33
2025-03-02 18:11:02 -03:00
Jehan
71aff49750 Issue #11592: do not strength-reduce pass-through groups with filters.
While the pass-through group can be skipped in some specific conditions,
this won't work with filters (then the effect would only apply to the
one layer child instead of applying to the result of the child
blended/composited with the bottom layers).

This inconsistency was quite visible because people had to create 2
layers and have one as non-Normal mode for it to behave as actual
pass-through group.
2025-03-01 22:32:33 +01:00
Bruno Lopes
a1e5049f9f
build/linux: Make AppImage deps download and revisioning work locally 2025-03-01 18:02:25 -03:00
Alx Sa
78d1e517d4 dialogs: Compress undos for multiple Open as Layer calls
Currently, if you open multiple files at once via the Open as Layers
dialog, it creates a new Undo History entry for each layer. As we
compress multiple layer operations elsewhere (such as deleting
or duplicating multiple layers), it makes sense to compress them
here as well.
2025-03-01 16:21:24 +00:00
Alx Sa
af96e64d9c plug-ins: Fix support for loading 12 and 16 bit JPEGs
12 bpc JPEGs currently load a blank image with a warning
that 12 bit precision is not supported.
libjpeg-turbo supports loading 8, 12, and 16 bpc JPEGs without
separate builds as of 3.0, so this patch adds support for loading
them and normalizing to 16 bit precision if needed.
Since we don't enforce a minimum libjpeg-turbo version, macros are
used to prevent this enhancement from being compiled if not supported.
2025-03-01 15:40:21 +00:00
Alx Sa
a74287c5cc libgimpwidgets: Shrink width of GimpSizeEntry
In 2baa518a, to avoid a critical we use
the resolution as the width of GimpScaleEntry
when the unit is set to pixels.
This had the side-effect of making the
width of the GimpSizeEntry very long when
the unit is initially set to pixels.
Since GimpUnit is now an object, the original
critical no longer displays. Therefore, we
partially revert 2baa518a and refer to the
value as entry_width instead for clarity.
The minimum width is set to 7 to match
the minimum width of GimpSpinButton.
2025-03-01 03:45:13 +00:00
Balázs Meskó
9e03e45f8f Update Hungarian translation 2025-02-28 19:41:58 +00:00
Balázs Úr
2e39e3dae1 Update Hungarian translation 2025-02-28 19:35:48 +00:00
Balázs Meskó
c1813e2d03 Update Hungarian translation 2025-02-28 19:24:47 +00:00
Balázs Meskó
5a8694d742 Update Hungarian translation 2025-02-28 19:16:45 +00:00
Balázs Meskó
ad0b5d128f Update Hungarian translation 2025-02-28 18:57:14 +00:00
Jehan
a7a390f82a Issue #12996: CRITICAL on the "keep the embedded working space" dialog. 2025-02-28 15:00:57 +01:00
Jehan
57a51994a3 app: use g_signal_connect_object().
Otherwise we may end up in cases when the handler is called while the
manager object is already freed.
2025-02-28 14:37:30 +01:00
Jehan
ee2a479f7d app: fix converting a layer to group layer by mistake when dnd between images.
This would happen when dragging several layers and one of them is a
group layer. Then any successive "normal" layers were converted to layer
groups.
2025-02-28 13:05:05 +01:00
Jehan
2bf25d8487 app: fix not-finding correct container when dnd across images. 2025-02-28 12:05:06 +01:00
Jehan
99b2ef9564 app: when dropping items containing groups and descendants, just consider the item group.
If you were to select a layer group and some/all its children, current
implementation was "flattening" all these at the same level, which is
weird.

Now the whole questioning of what to do in this situation is a very good
UX discussion to have, in particular when you only select *some* (not
all) of the children. Does it mean something? Does it mean you want to
copy part of the tree structure with only part of the children? What
when it's not a copy, but a move (e.g. a dnd in the same image). You
can't move part of the children (what do you do with the rest?).

Anyway that's many questions which I prefer to leave for a real gimp-ux
discussion and specification. For the time being, at least not
flattening a whole tree structure seems a better behavior.
2025-02-28 11:08:35 +01:00
Jehan
37f49e1a27 app: fixes uninitialized variable sometimes used.
Fixes:

> warning: variable 'n_children' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
2025-02-28 11:08:35 +01:00
Alx Sa
6279d7b70b core: Consider filters when selecting by color
When selecting by color with the Fuzzy Selection, Color Selection,
or Bucket Fill tool, we use gimp_pickable_get_buffer (). This only looks
at the raw pixels and not any active filters, which can result in some
unexpected selections (for example, an NDE offset filter will make it
appear as if you are selecting the wrong area).

There are plans to let users decide whether to select the raw
pixels or the filtered layer. For now, this sets the default action to
consider the layer as seen by the user, with filters included in the
calculation.
2025-02-28 01:06:41 +00:00
Jehan
414c0132e3 NEWS: update. 2025-02-27 18:59:59 +01:00
Jehan
09ebc2042a app: just needed to close that parenthese! 2025-02-27 18:18:54 +01:00
Jehan
b3acda1839 Issue #12950: undoing a deleted layer group loses filters. 2025-02-27 18:14:43 +01:00
Jehan
39d0925b86 plug-ins: in non-v3, return in fact (0) or (1), not just an integer.
Comparing with other functions returning boolean, this seems to be the
actual "standard" for these in Script-Fu v2.
2025-02-27 17:34:43 +01:00
Bruno Lopes
ada2bbeb57
gitlab-ci: Catch GIMP's 'meson-log.txt' artifact on AppImage builds
As we do in other GIMP jobs.
2025-02-27 08:37:01 -03:00
Anders Jonsson
8f6c6867c8 plug-ins: restrict GIH max dimensions to GIMP_PIXPIPE_MAXDIM
In 06bd1f1289 the max number of
dimensions was set to 1000, but the plug-in runs into a
segfault when dimension >4. The rest of the plug-in uses
GIMP_PIXPIPE_MAXDIM as max (4), so use it for the dimension argument
as well.
2025-02-27 03:13:25 +00:00
Jehan
d7cfc441e0 Issue #12948: make (gimp-pdb-procedure-exists) Script-Fu v3 compliant.
In particular, in v3, we want to return #t or #f, not an integer.
2025-02-26 22:31:28 +01:00
Jacob Boerema
f87ecbe0db plug-ins: add a reminder to the main plug-in tests configuration...
about adding any new ini files to meson.build,
since that is what I often keep forgetting.
2025-02-26 20:31:17 +00:00
Jacob Boerema
321e0a545f plug-ins, tests: add tests for loading xcf images 2025-02-26 20:31:17 +00:00
Jacob Boerema
eae1d5f9b6 app/xcf: fix #12980 protection against invalid xcf offset 2025-02-26 20:30:05 +00:00
Jehan
63e6065197 Issue #12948: only report progression for "extension-script-fu" scripts.
In particular, we want the new Script-Fu plug-in to be able to handle
their progress status themselves, which is possible with
(gimp-progress-set-text) except that it is far too quickly overriden
because each procedure call generates a new progress message.
2025-02-26 15:16:05 +01:00
Jehan
ad136c1ab9 plug-ins: more accurate error message when using named argument syntax for…
… internal procedures.

See #13003.
2025-02-26 14:12:25 +01:00
Jehan
61c1014ba6 app, pdb: (gimp-pdb-proc-exists) should only return TRUE for public procedures. 2025-02-26 14:12:25 +01:00
Alx Sa
7a72a30e3a themes: Define slider padding values in System theme
Resolves #12999
Ports the padding and margin definitions
for GimpSpinScale from 6a820e94 to the
System theme.
2025-02-26 02:09:09 +00:00
Jehan
1df9dc5751 Issue #12948: implement (gimp-pdb-procedure-exists) in Script-fu.
I hesitated to make (gimp-pdb-proc-exists) public but I don't think it's
a good idea as it would be redundant with gimp_pdb_procedure_exists() in
the C API.

Instead, just implement (gimp-pdb-procedure-exists) specifically for
Script-Fu, with a name mapped to the C function.
2025-02-25 23:04:00 +01:00
Jehan
6a5fe88e29 plug-ins: fix a forgotten debug test. 2025-02-25 22:40:43 +01:00
Jehan
711be6db8c app, libgimp, pdb: clean up some more code redundancy. 2025-02-25 20:17:05 +01:00
Jehan
1e869b9ce0 libgimp: cleanup and adding missing doc-comment.
The comment about temporary API was added in commit 244b52bf0d for
functions long gone.
2025-02-25 20:01:29 +01:00
Jehan
269463389e app, pdb: internal procedures are simply ones with type GIMP_PDB_PROC_TYPE_INTERNAL.
Adding an is_internal value was a mistake, or rather it was redundant.
We already had a procedure type and all internal procedure are set as
GIMP_PDB_PROC_TYPE_INTERNAL.

I also double-checked that it is not possible for a plug-in to create a
procedure with this type (it is rejected), so it's very fine.
2025-02-25 20:01:29 +01:00
Jehan
ad0b02d2b7 app, libgimp, pdb, plug-ins: rename gimp_procedure_is_core() to…
… gimp_procedure_is_internal().

I realized we were already naming these "internal procedures" in the
Procedure Browser and this is in fact a better naming than "core
procedure".
2025-02-25 20:01:29 +01:00
Sveinn í Felli
d774ba8d1a Update Icelandic translation 2025-02-25 16:25:29 +00:00
Jehan
77d296f95b app: some code cleanup.
This was not a bug, but having the same name for 2 variables (with an
inner-scope variable hiding the outer-scope one) is confusing.
2025-02-25 00:56:11 +01:00
Jehan
58a7fd09cb Issue #12304: make sure the GMenuModel triggers appropriate updates when a label changes.
This was working fine in our custom menu widget, but not with menus
generated by GTK (GIMP_GTK_MENUBAR codepath).
2025-02-25 00:53:19 +01:00
Jehan
8c0e979808 app: fix a crash in GIMP_GTK_MENUBAR codepath.
When closing the last image, it seems that we'd remove twice the
"windows-display-0001" item, first when making the action invisible,
then when gimp_ui_manager_remove_ui() is called on emptying the display.

And gtk_menu_tracker_remove_items() doesn't handle correctly a NULL
list.
2025-02-25 00:53:19 +01:00
Jehan
0d98500984 Issue #12789: make sure gimp-debug-tool is correctly found on Windows. 2025-02-24 18:37:58 +01:00
Jehan
c3bc4e5336 Issue #12904: make debugging self with gdb optional with -Ddebug-self-in-build.
Some people reported cases where gdb doesn't even seem to understand
Python scripts (the error in #12904 implies it is looking for standard
gdb commands, because apparently -x option allows both styles).
Others had issues in sandbox building (#12956).

I don't really want to spend too much time understanding each case,
especially as it's a self-debugging tool, not absolutely necessary for a
successful compilation.

So let's just make this optional, and default to "false".
2025-02-24 18:13:09 +01:00