Commit Graph

8871 Commits

Author SHA1 Message Date
Jehan 97dc1bf9c6 plug-ins: fix wrong return type warning.
save_image() returns a boolean not a pointer.
2020-08-31 12:52:23 +02:00
Elad Shahar 17b701a940 Issue #5043: Spyrogimp 'Live' Preview Pollutes Undo History
Reduce number of undo steps created by Spryrogimp previews.
First, by grouping them into a single undo.
The implementation adds a function for clearing the
incremental preview drawing that is being executed as an idle task,
and closing an undo group in case the preview left it open (which
would usually be the case). A second way to reduce undos is
by generating a new preview only upon mouse button release of
scales in the UI, and not while dragging the scale.
2020-08-31 12:43:52 +02:00
Jacob Boerema fa40bc7778 plug-ins: add support for reading raster layers of newer psp versions. 2020-08-27 09:16:45 +00:00
Jacob Boerema 85241a205b plug-ins: enable reading of psp images with file versions > 6. 2020-08-27 09:16:45 +00:00
Jacob Boerema 0666f7a4f9 plug-ins: refactor reading of raster layer extension info for psp images. 2020-08-27 09:16:45 +00:00
Daniel Novomesky 01e1587ec1 Updated HEIF plug-in
AVIF import and export (need libheif >= 1.8.0)
High bit (10/12) import and export
Auto pre-select suggested output bit depth in save_dialog
NCLX color profile import (link with lcms)
Metadata import (link with gexiv2)
Plugin will not return GIMP_PDB_SUCCESS in case of failure to import file.
2020-08-26 10:39:58 +00:00
Jehan 47a68dc871 Issue #5584: JPEG magics detection failure.
Our currently registered JPEG magics was using possible fields at the
start of the file (JFIF, Exif) in 7th byte. A JPEG provided in #5584 was
starting with yet another field (apparently some Photoshop-specific
field "Photoshop 3.0.8BIM") thus magics detection failed (and since
extension was wrong, the file was sent to another plug-in, hence loading
failed).

Looking further, it looks like the 3 first bytes are actually always
common to all JPEG and are the right magics/signature for a JPEG. These
3 bytes don't seem to be used by other formats as well according to my
research, which means we should not have false positives either. So
let's switch to this magics 0XFFD8FF at byte 0.
2020-08-26 12:13:29 +02:00
Jacob Boerema d7089c93b2 plug-ins: Take zero length layer names into account in psp reader. 2020-08-23 18:34:22 -04:00
Jacob Boerema 4ac373e84f plug-ins: fix reading layer names with high bit ASCII characters in psp files.
This also adds a few missing g_free when returning because of an error.
2020-08-22 21:11:01 +00:00
Jacob Boerema dc80c78a26 plug-ins: fix wrong layer offset of psp layers. 2020-08-22 10:54:39 -04:00
Jacob Boerema 15ad952288 plug-ins: improve psp image reader stability by always using the block/chunk length.
Starting from psp file version 4 the specification recommends to always use the
block/chunk length to determine the next part of the image. This way it is
possible to skip parts you don't know or don't care about or additions in
newer versions.
This change makes sure to always do this which fixes reading several images
which crashed the plug-in before.

Also only try to read layer data if it is a raster layer.
2020-08-18 16:00:50 -04:00
Jacob Boerema f4088adefa plug-ins: fix incorrect loading of PSP images with uncompressed channel data.
According to the PSP specifications "Each scanline in the image data is stored on a 4 byte boundary.	"
Based on all actual images I've seen this is incorrect. Possibly it is a leftover from an older specification.
2020-08-08 08:47:45 +00:00
Jacob Boerema fcb9de07f6 plug-ins: fix reading of creator block data of PSP images.
Since string data in PSP images is not zero terminated
reading creator block data always failed.
2020-08-08 07:53:44 +00:00
Jehan 70cf57154f plug-ins: fix some warnings in Win32 screenshot code.
Fixes:
> warning: old-style function definition [-Wold-style-definition]
2020-08-02 19:49:22 +02:00
Jacob Boerema 248d2e95b8 plug-ins: enable screenshot for non x11 targets in meson build.
This also removes screenshot as an option for the meson build
since the autotools build doesn't have that option either.
2020-08-01 22:28:34 +00:00
Jacob Boerema da9284b737 plug-ins: fix goat-exercise-lua not working after the split between Gimp and GimpUi. 2020-07-30 13:58:43 -04:00
Félix Piédallu e78fbccea7 Fix pygimp.interp generation, add /usr/bin/python3 alias 2020-07-28 17:17:18 +02:00
Jehan aea69dc165 plug-ins: file-dds (read) cleaned up a bit for better error handling.
Fatal errors should not be done with g_message(), but by setting the
returned GError appropriately. The main GError must therefore be passed
through functions.
Some non-fatal warnings may still be outputted with g_message() if we
want people to be aware of them (for instance if we managed to load some
data yet there might have been data loss or errors).
Finally when we are confident that we recovered from the format error,
it is still nice to output some error on standard error (not be totally
silent about it), but probably not need to bother people with popups.
See #5357.

Also clean up C++-style comments into C-style, to follow our coding
style.

Note: I only cleaned ddsread as a continuation of commit 81a3370e1d. I
expect ddswrite to have similar issues, but I did not look at it.
2020-07-26 13:32:18 +02:00
Jacob Boerema 81a3370e1d plug-ins: fix #5357 Image marked as compressed, but DDSD_LINEARSIZE is not set. 2020-07-26 11:12:14 +00:00
David Russo a3a88bf6b9 Stop writing file paths into TIFF DocumentNames
File paths can contain confidential information such as usernames
and directory structures, making the previous behaviour a potential
privacy and security risk.
2020-07-26 09:48:39 +00:00
Jehan 1a7a53dc09 plug-ins: fix argument description. 2020-07-20 17:38:16 +02:00
Elad Shahar 0a611bd8ad Issue #5069: Gfig uses the Stroke color for filling instead of the fill color 2020-07-12 21:43:44 +02:00
Ell 7f39be86de plug-ins: add option to crop layers to image bounds when exporting TIFF
In file-tiff, add an option to crop the layers to the image bounds
when exporting individual layers (using GIMP_EXPORT_NEEDS_CROP
added in the previous commit), since TIFF has no concept of global
image bounds otherwise.  Cropping is enabled by default.
2020-06-25 18:35:09 +03:00
Ell 536bf771b7 Issue #5274 - Exporting as TIFF fails for layers with a negative offset
When exporting a TIFF file without merging the image, make sure non
of the exported layers has a negative offset, by offsetting all the
layers as necessary.  TIFF doesn't support negative page offsets,
giving an error in libtiff.
2020-06-25 18:20:44 +03:00
Ell 46cb5a5e79 plug-ins: fix last commit for PLANARCONFIG == SEPARATE 2020-06-24 15:51:56 +03:00
Ell 8b9819339d Issue #5275 - TIFF files with signed-int samples are misinterpreted as unsigned
When loading a TIFF file with signed-int samples, convert the
samples to unsigned-int by offsetting them to the unsigned range,
instead of misinterpreting them as unsigned values.
2020-06-24 15:22:29 +03:00
Yuri Chornoivan 4510e75864 Fix minor typo: entred -> entered 2020-06-18 09:09:55 +00:00
Michael Natterer 45ce68fe15 plug-ins: change the "compose-type" default values to upper case
just for consistency.
2020-06-17 21:56:31 +02:00
Michael Natterer 4e9227e5d3 plug-ins: make sure "decompose-type" in decompose.c is upperacse
because the string combo box in the dialog is case sensitive.
2020-06-17 21:56:31 +02:00
Michael Natterer 54b5faeefb plug-ins: port file-xmc.c to GimpProcedureConfig and prop widgets 2020-06-17 21:56:31 +02:00
Michael Natterer 0d56bbb745 plug-ins: change "comment" arguments to "gimp-comment"
so they continue to be handled automatically.
2020-06-17 21:56:31 +02:00
Ell 6a01bf2df2 Issue #5219 - Color>Info>Export histogram counts pixels twice
gimp_histogram() takes an inclusive range -- the plug-in has been
counting non-zero pixels twice.
2020-06-14 17:04:30 +03:00
Michael Natterer b070abe5bf plug-ins: port decompose to GimpProcedureConfig 2020-06-08 22:59:04 +02:00
PhotonQyv 5d412088af plug-ins: fix spyro-plus after Gimp/GimpUi split.
Since the Python bindings for Gimp has been split into Gimp and GimpUi
bindings this plug-in needs a slight tweak to still work correctly.
2020-06-08 20:38:53 +00:00
PhotonQyv c16e310c36 Corrected code to work with newer split Gimp and GimpUi bindings. 2020-06-08 20:09:21 +00:00
Yuri Chornoivan a9421be414 Fix minor typo: pisels -> pixels 2020-06-08 19:48:10 +00:00
Michael Natterer 9054ab5dc5 plug-ins: port file-tiff-save to GimpProcedureConfig
Implement the GUI using prop widgets and remove the glade file.
Change loading to attach the right parasite so the save procedure
finds the fake "last values".
2020-06-08 20:42:36 +02:00
PhotonQyv a9a61d963d Add url to code so that Source button actually does what it is supposed to do. 2020-06-04 21:08:14 +00:00
Ell 86569b9ae3 plug-ins: in twain, unify 8- and 16-bit data transfer 2020-06-04 22:01:39 +03:00
Ell 6d4712edb9 plug-ins: another fix to last commit 2020-06-04 21:00:51 +03:00
Ell f4058d47a2 plug-ins: fix last commit 2020-06-04 20:47:34 +03:00
Ell 00e1172a54 Issue #4941 - TWAIN 16-bit greyscale/rgb scan always loaded as 8-bit
Simplify data transfer in the twain plug-in, and add support for
16-bit RGB/grayscale images.
2020-06-04 20:42:03 +03:00
Ell 6def9e59fb plug-ins: fix last twain-plug-in commit 2020-06-04 01:14:33 +03:00
Ell 9a1d43c978 Issue #4210 - GIMP reports errors on scanning ...
... since GEGLification of the twain plug-in (2.10.14 and later
versions)

In the data-transfer functions, allocate a temporary buffer for the
converted data on each call using the current chunk size, instead
of reusing the buffer allocated on the first chunk.  This allows
for different chunks sizes across calls.
2020-06-03 16:58:51 +03:00
Niels De Graef acf50009f8 Allow building vala plugins 2020-05-26 17:52:52 +00:00
Jehan b00bb346a9 plug-ins: more complete naming for Python|Script-Fu consoles.
Just "Console" is enough in the context of menus with submenu hierarchy,
but when accessing directly the feature (with Action Search for
instance), a more accurate name is nicer. It avoids to have to check
what is what in the tooltip text.
2020-05-26 14:32:11 +02:00
Jehan ab172872ce plug-ins: fix python-console after GimpUi instrospection separation.
Patch by darix!
2020-05-26 14:15:17 +02:00
Michael Schumacher 8bf8eb9dc0 plug-ins: use G_GOFFSET_FORMAT to fix a long int vs. long long int format warning 2020-05-26 12:12:10 +02:00
Jehan 5498adf50a app, libgimp, pdb: color picker multi-layer aware.
Color picking on a single layer still works as it used to. On multiple
layer, it will now pick on the composited color, similarly to sample
merged if only selected layers were made visible.

The PDB/libgimp function gimp_image_pick_color() is also updated to work
on multiple drawables too, giving the same ability to plug-ins (the only
call to this function in core plug-ins have been updated).
2020-05-17 18:57:32 +02:00
Jehan 98603c69c9 app, libgimp, pdb: "edit-copy" multi-layer aware.
When several layers are selected, select their render, similar to how
"edit-copy-visible" would have copied an image with only these layers
made visible.
Also apply the same logics to PDB function gimp_edit_copy() which can
now be used on several drawables at once.
2020-05-17 18:57:32 +02:00
Jehan d3139e0f7c app: support saving/exporting with multi-selection.
This commit just changes our saving API (i.e. the GimpSaveProcedure
class) to take an array of drawables as argument instead of a single
drawable.

It actually doesn't matter much for exporting as the whole API seems
more or less bogus there and all formats plug-ins mostly care only
whether they will merge/flatten all visible layers (the selected ones
don't really matter) or if the format supports layers of some sort. It
may be worth later strengthening a bit this whole logics, and maybe
allow partial exports for instance.

As for saving, it was not even looking at the passed GimpDrawable either
and was simply re-querying the active layer anyway.
Note that I don't implement the multi-selection saving in XCF yet in
this commit. I only updated the API. The reason is that the current
commit won't be backportable to gimp-2-10 because it is an API break. On
the other hand, the code to save multi-selection can still be backported
even though the save() API will only pass a single drawable (as I said
anyway, this argument was mostly bogus until now, hence it doesn't
matter much for 2.10 logics).
2020-05-17 18:32:16 +02:00
Niels De Graef b14b93de14 Split GIR into Gimp-3.0 and GimpUi-3.0
Fixes https://gitlab.gnome.org/GNOME/gimp/-/issues/4065
2020-05-15 07:45:25 +00:00
Simon Budig 4394b92c71 Issue #1439: reverse the construction of the "selection to path" plugin. 2020-05-15 02:46:49 +02:00
Niels De Graef 5992a42231 gimpthrobber: Get rid of g_type_class_add_private()
It's deprecated.
2020-05-12 21:35:54 +02:00
Niels De Graef ae34e778fc meson: Use libgimp(ui)_dep in plug-ins meson files
This gives a big cleanup in the meson.build files of the plug-ins.

It's also quite a bit more maintainable, since anything that changes in
libgimp's dependencies, linkage, ... doesn't have to be copy-pasted into
each plug-in.
2020-05-11 07:01:37 +02:00
T Collins f00df8f773 Update ddswrite.c 2020-05-06 13:58:28 +00:00
Elad Shahar 93602a3973 Issue #4326 - Add visual tab to spyrogimp plugin
Add visual tab to spyrogimp plugin for a more intuitive, visual
way of specifying the spyrograph pattern.
In addition, fix using the selection as the fixed gear, and add
option to save the pattern to a path.
2020-05-05 13:29:09 +03:00
luz.paz 36f620012d Fix typos
Found via codespell v1.17.0.dev0  
```
codespell -q 3 -S ./ChangeLog*,*.po,./.git,./NEWS* -L als,ang,ba,chello,daa,doubleclick,foto,hist,iff,inport,klass,mut,nd,ower,paeth,params,pard,pevent,sinc,thru,tim,uint
```
2020-05-04 08:55:48 -04:00
Niels De Graef cf41d1fdf8 colorselector: Rename signal emitters
The GIR parser is giving warnings because both e.g. a signal, a
corresponding vfunc and a method emitting it are named
"channel_changed", which can and will give issues in some bindings.

The easiest option is to follow the general convention of starting the
signal emitters with `emit_`, which also makes clear the intention of
the method.
2020-05-03 23:23:44 +02:00
Michael Natterer f3f8d3a54e Issue #3405 - Color component decompose crash for CMY
Remove the "CMY" model from compose and decompose, it's gone from
babl. Also fix decomposing to CMYK by using the right component names.
2020-05-02 21:17:20 +02:00
Michael Natterer 9adf2d19f8 Issue #3949 - Image Map plug-in selects wrong areas
Fix one of the issues spotted by Massimo: in right_intersect() it must
be "dy > 0" not "dy > y".
2020-05-02 20:16:04 +02:00
Michael Natterer 452924dbe9 Issue #5009 - Possible array overrun in d_draw_ellipse
Change while() to go from 0..360 instead of 0..361 so the code passes
automated tests. The code never ran into this situation but the change
is a small improvement anyway.
2020-05-02 16:52:18 +02:00
Michael Natterer 97e0322ebb Issue #5010 - Setting twice value pcvals.paper_invert in paper_store
Remove identical duplicated line.
2020-05-01 22:49:47 +02:00
Jehan 2678bafca2 Issue #5002: compare pointer to NULL, not 0.
This is a remnant from the old API where we were using item IDs.
2020-04-28 16:38:24 +02:00
Ell 2d4de85fe3 plug-ins: in file-psd, use normal channel order
For some reason we reverse the channel order when loading/saving a
PSD file.  This doesn't seem to be necessary, and leads to a
reversed channel order across GIMP/Photoshop.  Simply use the
normal channel order instead.
2020-04-26 23:38:25 +03:00
Ell 281188e169 Issue #189 - Store channel colors when saving as PSD
In file-psd, write a DisplayInfo image resource with the color/
opacity of all channels.
2020-04-26 23:19:22 +03:00
Ell ac19f6413b plug-ins: in file-psd, fix indentation in psd-save.c 2020-04-26 23:16:05 +03:00
Ell 953a3ad479 plug-ins: in file-psd, remove unused member of DisplayInfoNew 2020-04-26 23:14:55 +03:00
Ell 251ce5126e plug-ins: in file-psd, fix u8 channel format
In file-psd, use a non-linear channel format when the image
precision is u8 non-linear, as per gimp_image_get_channel_format().
2020-04-26 23:14:52 +03:00
Jehan c280cb9da7 plug-ins: fix various other warnings on the Windows build CI.
1 > warning: "_WIN32_WINNT" redefined
2 > pointer targets in passing argument 2 of 'send' differ in signedness
3 > passing argument 4 of 'setsockopt' from incompatible pointer type

For the signedness/type issues, I just casted to (void *) which was the
expected type for these parameter on the Linux API anyway. As for
Windows API (which was expecting char* for these various API), the
compiler just does the cast itself from void* without complaining
anymore.
2020-04-17 14:42:25 +02:00
Jehan e854de73ee plug-ins: fix signedness warning with different expectation Win/Linux.
On Windows, accept() wants an int for addrlen but on Linux, it wants a
socklen_t which is an unsigned int. So we can't just switch to gint as
proposed in !232 (if we do so, the signedness warning now happens on the
Linux build instead of the Windows one).

Fortunately it looks like socklen_t is actually typedef-ed to int in
Windows headers. So let's just use this type, which is much more proper
anyway as this variable is only used in functions which want this type
on Linux.

Fixes:

> warning: pointer targets in passing argument 3 of 'accept' differ in signedness
2020-04-17 14:18:53 +02:00
Jehan 05556457df plug-ins: remove last usage of GTimeVal and g_get_current_time().
Deprecated as not year-2038-safe, this was the last remnant of code
which was still using it.
2020-04-14 16:08:38 +02:00
Jehan f6dd30f3a8 plug-ins: fix more abs().
I am comparing absolute value of 2 double computation results. Might as
well just use fabs() instead of truncating both values to int.
Fixes the following:
> warning: using integer absolute value function ‘abs’ when argument is
> of floating point type ‘double’ [-Wabsolute-value]
2020-04-14 00:12:45 +02:00
Jehan fddaa77218 plug-ins: fix abs() on long int.
Fixes the following bug:

> warning: absolute value function ‘abs’ given an argument of type
> ‘glong’ {aka ‘long int’} but has parameter of type ‘int’ which may
> cause truncation of value [-Wabsolute-value]
2020-04-13 23:18:19 +02:00
Jehan b71754f2a7 plug-ins: fix some build warning.
Fixes:
> warning: using integer absolute value function ‘abs’ when argument is of floating point type ‘double’ [-Wabsolute-value]
2020-04-13 21:54:09 +02:00
lillolollo 202012ba73 plug-ins: screenshot-win32.c forbids mixed declarations and code
(cherry picked from commit 09fb64c604)
2020-04-12 19:39:30 +00:00
Ell 9099f317bc plug-ins: add support for exporting 16-bit PSDs
In file-psd, add support for exporting high bit-depth images.  This
is currently limited to 16-bit images, since 32-bit images seem to
have a different structure (our loading code can successfully load
32-bit images exported by the plug-in, but not actual 32-bit PSD
files saved in Photoshop.)  Higher bit-depth images are saved as
16-bit for now.

Note also that when saving a linear image with a built-in linear
profile the result is wrong (the image is exported with a linear-
TRC profile, but the data is perceptual), but this is a general
problem we have to fix, not restricted to the PSD plug-in.
2020-04-09 01:17:56 +03:00
Jehan 809e79f37a Issue #4919: PDF: Order of pages reversed when opening and closing.
Let's go with the logics "bottom layer is first", which is also the
logics in animated formats. Hence changing the layer order on loading
multi-page PDF.
2020-04-08 20:08:00 +02:00
Jehan 291af71e95 plug-ins: do not use strcpy() when src and dest overlap.
I don't reproduce these build warnings in my build but frogonia reported
them:

> warning: 'strcpy' accessing 1 byte at offsets 0 and [0, 2147483645] may overlap 1 byte at offset 0 [-Wrestrict]

And indeed the man of strcpy() clearly states that "The strings may not
overlap" (which is clearly not guaranted in current code as we don't
know the size of what's after the substring).
strncpy() might have done the trick as it doesn't say anything about
possible overlap or not, but let's just use memmove() instead where it
is clearly written that memory areas may overlap (note that bcopy() as
proposed by ankh would have also done the trick, but it is marked as
deprecated).
2020-04-04 00:48:36 +02:00
Jehan 105c4efc8b Issue #4487: change "Save color values from transparent pixels"…
… defaults to FALSE for PNG, TIFF.
The logics is that in most case, when alpha is 0, you don't expect color
to be retrieved and some people were bothered by this when erasing data
with eraser tool or selection deletion.

For the WIP image as well as for XCF format, we definitely want to keep
color data as there are workflows where you would want to erase/unerase
pixels subtly (selection also are not binary and should not be expected
to erase color data on layers with alpha channel). So we want to keep
the non-destructive behavior there.
Yet for export formats, going for "deleting what looks deleted" is a
valid approach, especially as it has been argued that experienced users
would know how to read and change the format options (and these
experienced users are likely the ones who may have valid reasons to want
pixels with full transparency to keep color values).
PNG and TIFF were the only 2 formats where I see such options, so
changing the default for these 2 plug-ins.
2020-04-03 20:04:26 +02:00
Niels De Graef 878804fb01 Cleanup GObject signal marshallers
* Don't generate our own marshallers if they are available in GLib
  already
* Don't set the c_marshaller parameter in `g_signal_new()` if it's a
  default marshaller provided by GLib. See commit message of commit
  39e4aa3c57 on why this is the case.
2020-04-01 21:20:01 +00:00
Jehan 3a0af1f50a Issue #4618: support Canon CR3.
And by "supporting CR3", I mean sending the file over to raw developer
software which are supposed to support it! At the very least RawTherapee
support CR3 (since recent version 5.8 apparently), not sure about
darktable (but if not yet, I assume it won't be long either).
2020-03-14 23:56:45 +01:00
Ell 0ce993c4b9 Issue #4663 - "Error loading PSD file: No error" while trying to open a PSD
In file-psd, avoid error on load when encountering an uknown image
resource of size 0.
2020-02-28 00:47:49 +02:00
Ell be7cace74e plug-ins: in file-psd, make offset/size fields unsigned
In file-psd, make the data_start and data_len fields of the
PSDimageres and PSDlayerres structs unsigned, to avoid potential
overflow/sign-extension.
2020-02-28 00:47:48 +02:00
Ell 1b6191d176 plug-ins: in file-psd, use scratch allocator for temporary CMYK buffers; cleanup 2020-02-22 18:20:53 +02:00
Øyvind Kolås 1462a91d86 plug-ins: Convert CMYK u8 .psd to R'G'B' float on load
Patch from Massimo Valentini in issue #354, adapted for the new object
based plug-in APIs.
2020-02-21 12:29:50 +01:00
Ell 52f5a9f654 plug-ins: improve PSD loading speed
In file-psd, improve loading speed, mostly by eliminating excessive
copies.
2020-02-18 19:17:38 +02:00
Ell 15438c58d2 Issue #4627 - memory corruption when open crafted sgi
In the file-sgi plug-in, check for failure when allocating buffers
of user-controlled size.
2020-02-17 17:01:25 +02:00
Ell 2ed889394d plug-ins: in file-sgi, convert tabs to spaces 2020-02-17 17:01:25 +02:00
Ell 4fe8217898 plug-ins: in screenshot, keep image dirty; keep history clean
In the screenshot plug-in, don't clean the image, since it's not
backed by any persistent source, and disable undo while modifying
it, so that the initial edit history is clean.
2020-02-16 23:05:12 +02:00
Nikc M 0a5af889f9 Issue #175 - Allow the erase every other row plugin to skip a different number of rows
Adds generalized erase Nth row function,
and sets original erase row function to
call generalized one with n = 2
to reduce code duplication
2020-02-13 01:18:22 +02:00
Oleksii Samorukov cfcf38e119 plug-ins/screenshot: fix compilation on macOS 2020-01-17 11:40:35 +01:00
Jehan ec9dbd8115 libgimpwidgets, app, plug-ins: fix last GIR warnings.
gimp_int_radio_group_new() was still complaining about the scope of
radio_button_callback(). Make it (scope notified) because it needs to
stay alive after the function returns and may be called multiple times.

Also adding a GDestroyNotify to free the callback data once the widget
is destroyed (additionally it will also serve as a notifier for bindings
to properly free the callback closure itself, not only it's data).

With this last one done, GObject Introspection generation now happens
without any warning output.
2020-01-15 14:00:19 +01:00
Cyril Richard 38cccaac49 Issue #4203 - Wavelet decomposition only on RGB images
Add GRAY* to the list of supported image types.
2020-01-06 19:47:44 +01:00
Massimo Valentini 653484df0b Issue #4467 - (pagecurl) CRITICAL **: g_object_unref: assertion...
...'G_IS_OBJECT (object)' failed

Fix the meson build script to output the right icon path prefix.
2020-01-06 14:49:41 +01:00
Massimo Valentini c33e1263fa Issue #4461 - Spinning Globe fails in gimp-2.99
Fix argument indices.
2020-01-06 14:35:05 +01:00
Jehan 2cd765c000 plug-ins: variable used after being freed.
Once again spotted by Massimo in #4449.
2020-01-03 19:57:59 +01:00
Jehan 189da39805 plug-ins: return value of gimp_procedure_config_begin_export() freed…
… twice.
It should not be freed by the caller since it is annotated as (transfer
none). It gets freed when calling gimp_procedure_config_end_export().
Thanks to Massimo for noticing.
2020-01-03 19:53:54 +01:00
Jehan 24a0b0c53a plug-ins: also omit hidden layer groups in PDF export.
When the "Omit hidden layers and layers with zero opacity" option is
set, this property was only checked on non-group layers. So if we had
non-hidden layers inside hidden layer groups, they ended up exported,
which is not the expected behavior.

See https://gitlab.gnome.org/GNOME/gimp/issues/4425#note_675350
2020-01-01 18:40:52 +01:00
Jehan 34f05750d0 plug-ins: forgot to look missing font duplicates recursively.
Fix for the previous commit, fixes cases with text layers inside groups.
2020-01-01 18:28:04 +01:00