Commit Graph

12 Commits

Author SHA1 Message Date
2a31678e9c app: fix #6436 *.gih grayscale export crashes GIMP
When we try to export a grayscale image with layers with negative offsets
to a GIH brush GIMP crashes without producing any crashlog.
Running in GDB showed us that there is heap corruption caused by incorrect
computation of buffer sizes because of the negative offsets.

In file_gih_image_to_pipe there is a comment that offsets are assumed
positive, but no checking is done whether that is correct.
Let's add some checks, set offset to 0 if negative and adjust width and
height accordingly.

(cherry picked from commit e2b1cc9476)
2021-11-08 17:11:52 -05:00
8d05d01820 app: fix undoing image parasite attach/detach to emit the right signals
Add "gboolean push_undo" parameters to gimp_image_parasite_attach()
and _detach() and use the API also from undo, instead of implementing
attaching/removing manually and forgetting about the signals.

Fixes updating of the image properties color profile page.

(cherry picked from commit 710cfc1f47)
2019-05-30 16:58:53 +02:00
54a383685e app, plug-ins: make sure a GIH brush's spacing is preserved
across load and save, by introducing a gimp-brush-pipe-spacing
parasite.

(cherry picked from commit 0710051e2b)
2019-05-28 00:28:30 +02:00
4ee74a11e6 app, plug-ins: move brush pipe saving from the file-gih plug-in to the core
As with .gbr and .pat, only the actual saving code, not the export
logic and GUI.

(cherry picked from commit cc7e07fecb)
2019-03-03 20:07:07 +01:00
2071f3bdc6 app: factor file_gbr_drawable_to_brush() out of file_gbr_image_to_brush()
(cherry picked from commit 861106a0b3)
2019-03-03 20:05:35 +01:00
088418e004 app, plug-ins: move file-gih-load from the file-gih plug-in to the core
(cherry picked from commit 52adaa1963)
2019-02-19 23:48:55 +01:00
4944e61bc3 app: cosmetic change in file_pat_load_invoker()
just for consistency with file_gbr_load_invoker().

(cherry picked from commit 7aa99c8cf0)
2019-02-19 23:47:56 +01:00
13de8f2982 app: factor file_gbr_brush_to_layer() out of the brush-to-image logic
of file-gbr-load, and add some layer handling magic that doesn't
change a thing for simple brushes, but is needed for loading brush
pipes.

(cherry picked from commit 3b89ae40d0)
2019-02-19 23:47:34 +01:00
a04e24ce3e app, plug-ins: move brush (gbr) saving to the core
just the export logic remains in the plug-in, just as for patterns.

(cherry picked from commit 90164c4951)
2019-02-16 19:02:30 +01:00
7ce90a19b4 app, plug-ins: move pattern saving to the core
but only the actual saving code, not the export magic and dialog.

Add new internal procedure file-pat-save-internal which is not
registered as a file procedure and always works non-interactively on
the passed arguments and only saves the passed drawable. Use the new
internal procedure from the file-pat-save code and remove all file
writing code from the plug-in.

This way all pattern file writing code duplication is killed, while
the whole export mechanism is completely unchanged.

(cherry picked from commit b29ecfb5da)
2019-02-12 21:34:17 +01:00
b3797079bc app: move file-pat-load from the file-pat plug-in to the core
(cherry picked from commit 410ffc435e)
2019-02-11 18:39:04 +01:00
616f5aac11 app, plug-ins: start consolidating brush and pattern loading/saving code
We currently have brush and pattern I/O code in both the core and
plug-ins. This commit starts removing plug-in code in favor of having
one copy of the code in the core, much like XCF loading and saving is
implemented.

Add app/file-data/ module with file procedure registering code, for
now just with an implementation of file-gbr-load.

Remove the file-gbr-load code from the file-gbr plug-in.

(cherry picked from commit a4e77e57f6)
2019-02-11 12:56:56 +01:00