Commit Graph

43105 Commits

Author SHA1 Message Date
Ell
06018d766f app: fix out-of-bounds rendering when alpha channel is invisible
When the image's alpha channel is invisible, paint regions outside
the image contents as black, instead of using a checkboard pattern.
This is especially notable when viewing the image in "show all"
mode.
2019-09-04 20:56:24 +03:00
Ell
66d1981f3a app: in GimpEditSelectionTool, freeze moved items' previews
... to avoid unnecessarily updating their previews while dragging,
and, in particular, to avoid updating the image's GimpImageViewable
size in show-all mode.
2019-09-04 20:56:24 +03:00
Ell
4eef2297b6 app: show full image contents in GimpNavigationEditor
In GimpNavigation{Editor,View}, show the full image contents when
the corresponding display is in "show all" mode.  Additionally,
when the display's "show canvas boundary" is active, show the
canvas boundary in the navigation view as well.
2019-09-04 20:56:23 +03:00
Ell
61535e0756 app: handle GimpImageViewable in GimpViewRendererImage
Allow using a GimpImageViewable as the source for a
GimpViewRenderer, by allowing GimpViewRendererImage to handle this
type of viewables.
2019-09-04 20:56:23 +03:00
Ell
b8377fd341 app: add GimpImageViewable class
Add a new GimpImageViewable class, which acts as a proxy viewable
for an image.  Unlike the image itself, whose preview is always
restricted to the size of the canvas, a GimpImageViewable provides
a show-all property, which controls whether the preview includes
the full image contents.  We're going to use GimpImageViewable as
the source viewable for GimpNavigationView.
2019-09-04 20:56:23 +03:00
Ell
4d2b713a08 app: defer GimpViewable::size-changed signal emission while frozen
In GimpViewable, defer emission of the size-changed signal while
the viewable's preview is frozen, and only emit the signal once
thawed.
2019-09-04 20:56:23 +03:00
Ell
214cda5403 app, menus: add "show canvas boundary" display option
Add a "show canvas boundary" display option, and a corresponding
"View" menu item and default-apperance preferences option.  When
enabled (the default), the canvas boundary is shown as an orange/
black dashed line in "show all" mode.
2019-09-04 20:56:23 +03:00
Ell
f0b7d0a2e2 app: improve display scroll/zoom-related behavior in "show all" mode
In "show all" mode, the image is thought to be "infinite"; this
commit improves the overall scrolling/zooming behavior in this mode
according to this assumption.  In cases where a specific image size
is needed (e.g., for the scrollbar bounds, fit-image-in-window,
etc.), the image's full bounding box is used; however, in cases
where a center point is needed (e.g., for the zoomed-out scrollbar
bounds, center-image-in-window), the canvas center, rather than the
bounding-box center, is still used.
2019-09-04 20:56:23 +03:00
Ell
1f76013d1e app: add "clip" parameter to gimp_display_shell_untransform_viewport()
... which specifies whether to clip the viewport to the canvas
(previously, it would always be clipped).  Use the appropriate
value in all callers, depending on the shell's "show all" mode.  In
particular, this commit avoids clipping the image projection's
priority rect to the canvas in "show all" mode.
2019-09-04 20:56:23 +03:00
Ell
162665e42b app, menus: add "show all" mode to GimpDisplayShell; "View -> Show All" toggle
Add a "show all" mode to GimpDisplayShell, controlled through a
corresponding "View -> Show All" menu item.  When enabled, the
entire image content is displayed, instead of cropping the image
to the canvas size.  More generally, the display behaves as if the
canvas were infinite.  The following commits improve the overall
behavior in this mode.

Add a prefernces option to control the default "show all" state.
2019-09-04 20:56:23 +03:00
Ell
5478f34b81 app: in preferences dialog, add "show sample points" toggle
... to the default-appearance options.  It was previously missing.
2019-09-04 20:56:23 +03:00
Ell
cb6b38abab app: in preferences dialog, swap position of default-appearance columns
... to match their menu order.
2019-09-04 20:56:23 +03:00
Ell
ceb8b398ca app: in GimpImage, ignore "show all" when image used as pickable
In GimpImage, make sure the image's pickable interface keeps
behaving as before (i.e., restricted to the canvas size), even when
the image is in "show all" mode.  In contrast, the image's
projection, when used as a pickable, *is* affected by "show all".
2019-09-04 20:56:23 +03:00
Ell
2e30ec353a app: add gimp_image_invalidate_all()
... which invalidates the entire image.  This replaces all calls to
gimp_image_invalidate() with the full canvas size, since the image
content can now be larger than the canvas.
2019-09-04 20:56:23 +03:00
Ell
94cdbacca7 app: add "show all" mode to GimpImage
Add a "show all" mode to GimpImage, which, when active, causes the
image projection's bounding box to be adjusted dynamically to the
combined bounding box of all layers and the canvas.  This mode is
controlled through the new gimp_image_{inc,dec}_show_all()
functions, which should be called by the display; a corresponding
display toggle will be added in the following commits.

Note that from the user's perspective, "show all" is a display
mode, rather than an image mode.  The GimpImage "show all" mode is
therefore merely an implementation detail, and shouldn't have any
effect on displays that don't use "show all" mode, or the PDB.
The ability to use the image with or without taking its "show all"
mode into account will be facilitated by the next commits.
2019-09-04 20:56:23 +03:00
Ell
3587c0a7d2 app: notify GimpProjection::buffer when freeing the projection's buffer
... instead of only when subsequently reallocating it, so that
listeners can respond to the buffer being freed.
2019-09-04 20:56:23 +03:00
Ell
66d7dc76aa app: in GimpProjection, avoid invalidating preview on flush while rendering
In GimpProjection, avoid erroneously invalidating the projectable's
preview when flushing the projection and there's nothing to be
flushed, if the chunk renderer is still running, and hence the
projection is not fully rendered yet.
2019-09-04 20:56:23 +03:00
Ell
e183b8e6ad app: in gimp_gegl_buffer_set_extent(), clear full OOB region
In gimp_gegl_buffer_set_extent(), clear the full now-out-of-bounds
region of the buffer, instead of only full out-of-bounds tiles;
however, we still make sure to clear full tiles, instead of partial
tiles, as much as possible.  This prevents (parts of) the old
content of the buffer from showing when it's enlarged again.  This
is especially relevant for the image projection, once we add
support for a dynamically-expanding canvas in the following
commits, since the projection of a reexpanded buffer can be
temporarily rendered to the display before it's fully
reconstructed, exposing parts of the old content.
2019-09-04 20:56:23 +03:00
69dc32da80 Update British English translation 2019-08-30 19:19:19 +00:00
d450e27286 Updated Italian translation 2019-08-30 09:32:00 +02:00
e836245f12 Updated Italian translation 2019-08-29 13:09:05 +02:00
d66a922cd3 Add British English translation 2019-08-27 17:26:47 +00:00
b6837276b0 Update British English translation 2019-08-27 17:15:32 +00:00
a47fcadcd8 NEWS: add bugfix number. 2019-08-27 12:48:51 +02:00
7fc9357452 Issue #3263: fix critical error on bucket fill tool.
Fixes the error:
> Critical error: gimp_line_art_thaw: assertion 'line_art->priv->frozen'

This may happen in cases when we didn't actually freeze the line art at
pointer click, because we were in an invalid case (for instance,
clicking out of selection), hence we must not thaw the line art either
at button release.

(cherry picked from commit 6391b2bcff)
2019-08-27 12:45:21 +02:00
7c0ed951c2 Updated Slovenian translation 2019-08-26 22:29:27 +02:00
c70bd96b87 Updated Slovenian translation 2019-08-26 22:28:41 +02:00
89f8217f4a Updated Slovenian translation 2019-08-26 22:27:48 +02:00
a55b962d33 Updated Slovenian translation 2019-08-26 22:26:26 +02:00
ba4fe89dcf Updated Slovenian translation 2019-08-26 22:19:18 +02:00
ad542450ea Update British English translation 2019-08-26 09:11:44 +00:00
7d0fc8d2d9 Update Catalan translation 2019-08-26 09:34:43 +02:00
30dfd499ca Update Hungarian translation 2019-08-24 21:49:34 +00:00
ad7bbd3af3 Updated Slovenian translation 2019-08-24 20:23:20 +02:00
b6a4799314 Updated Slovenian translation 2019-08-24 20:21:34 +02:00
98eb78a2b4 Updated Slovenian translation 2019-08-24 20:20:18 +02:00
7bd11df998 Updated Slovenian translation 2019-08-24 20:19:19 +02:00
20533c8567 Update Swedish translation 2019-08-23 12:04:24 +00:00
4f24ee0397 Remove Bugzilla from the desktop file
We don't seem to need it anymore, and all GNOME apps have removed it already.
2019-08-20 13:00:18 +03:00
b742c7e39c Update Polish translation 2019-08-18 16:00:15 +02:00
b24cb22547 Update Swedish translation 2019-08-16 20:58:35 +00:00
70273f8d41 Update Swedish translation 2019-08-16 20:30:33 +00:00
7cc61ade2b plug-ins: link dds plugins against libm
(cherry picked from commit 1661aab620)
2019-08-14 11:58:26 +02:00
Ell
409853a03b app: update projection-buffer extent when projectable size changes
In GimpProjection, when the projectable's size changes, while its
offset remains the same, simply update the projection buffer's
extent, instead of allocating a new buffer and copying the contents
over.

(cherry picked from commit 1577174739)
2019-08-13 17:44:26 +03:00
Ell
d3af77890d app: add gimp_tile_handler_validate_buffer_set_extent()
... which sets the extent of a buffer with an assigned
GimpTileHandlerValidate, clipping the dirty region to the new
extent.

(cherry picked from commit b4ee9ff055)
2019-08-13 17:44:26 +03:00
Ell
56f6c35e30 app: add gimp_gegl_buffer_set_extent()
.... as a drop-in replacement for gegl_buffer_set_extent(), which,
in addition to setting the buffer's extent, clears any now-out-of-
bounds tiles, to free memory.

(cherry picked from commit 90610ac87e)
2019-08-13 17:44:25 +03:00
574602dc1d Update Spanish translation 2019-08-13 08:35:14 +00:00
Ell
7072c20bb9 Issue #3341 - Add Bevel doesn't work for high thickness values
Something during the port to gimp-drawable-edit (commit
233ac80de1) broke add-bevel.scm when
the thickness is high enough for the selection to become empty.

Add an explicit check for a selection while constructing the bump-
map layer.

(cherry picked from commit 21649c5eaa)
2019-08-12 22:19:08 +03:00
afdd573136 pdb: don't pass nodes with parents to gimp_drawable_apply_operation()
(cherry picked from commit 8222d3ffad)
2019-08-12 19:43:44 +02:00
Ell
55c7841f15 app: differentiate tooltips of image/layer arbitrary-rotation actions
Change the tooltips of the "Image/Layer -> Transform -> Arbitrary
Rotation..." to make the two actions distinguishable in the action
search dialog, similarly to the other image/layer transform
actions.

(cherry picked from commit 9582cf7717)
2019-08-12 17:32:23 +03:00