1. 12 Jan, 2019 7 commits
    • Ell's avatar
      app: in gimpchunkiterator.c, #include <stdlib.h> · a61f29e3
      Ell authored
      ... for qsort().
    • Ell's avatar
      Issue #440 - libgimp/gimptilebackendplugin.c provides no pyramid · d0ae39f0
      Ell authored
      In GimpTileBackendPlugin, return NULL when fetching z>0 tiles,
      instead of simply ignoring the z coordinate, so that the mipmapped
      tile is rendered locally.  Likewise, avoid storing z>0 tiles.
      Note that this is suboptimal, since all the necessary level-0 tiles
      need to be sent to the buffer as a result.  Ideally, we should
      extend the wire protocol to handle mipmapped tiles.
    • Ell's avatar
      app: in the gradient tool, halt gradient editor before committing filter · 2256ab22
      Ell authored
      In the gradient tool, halt the gradient editor before committing
      the filter, so that its image-flush idle source is removed before
      applying the operation, to avoid flushing the image, and hence
      restarting its projection rendering, during application.
    • Ell's avatar
      app: in gimp_tile_handler_validate_buffer_copy(), temporarily remove source handler · f4750a0a
      Ell authored
      In gimp_tile_handler_validate_buffer_copy(), temporarily remove the
      source buffer's validate handler, is exists, so that the subsequent
      gegl_buffer_copy() can use fast tile copying, using the TILE_COPY
      command.  GEGL currently only uses TILE_COPY when the source buffer
      doesn't have any user-provided tile handlers.
    • Ell's avatar
      app: use GimpChunkIterator in gimp_gegl_apply_cached_operation() · 4110f7b7
      Ell authored
      In gimp_gegl_apply_cached_operation(), replace the use of
      GeglProcessor with GimpChunkIterator, so that we use the same
      chunking logic as for rendering projections.  This has the
      advantage of better chunk alignment to the tile grid and dynamic
      chunk sizing, which improve performance.
      Use chunking even when there's no progress indication, since it
      generally results in better cache locality.
    • Ell's avatar
      app: use GimpChunkIterator in GimpProjection · 246e7828
      Ell authored
      Replace the custom chunking logic of GimpProjection with
      GimpChunkIterator, added in the previous commit.
    • Ell's avatar
      app: add GimpChunkIterator · ba9ce34e
      Ell authored
      Factor out the region-chunking logic of GimpProjection into a new
      GimpChunkIterator type, providing a generic mechanism for iterating
      over a cairo region in discrete chunks.  The iterator doesn't
      perform any processing itself, but rather dispenses rectangular
      chunks, which the user then processes.
      Iteration is broken into intervals, the duration of which is
      configurable.  Each iteration begins with a call to
      gimp_chunk_iterator_next(), after which
      gimp_chunk_iterator_get_rect() should be called in succession to
      fetch a rectangle to process, until it returns FALSE, which marks
      the end of the iteration.  Updates to the UI should take place in
      the interval between iterations, but not during an iteration.  The
      iterator dynamically adjusts the chunk size according to processing
      speed, in order to match the target iteration interval.
      The iterator can be given a priority rectangle, which is processed
      before the rest of the region.  It can also be given a
      representative tile rectangle, defining a regular tile grid;
      dispensed chunks are aligned to the tile grid as much as possible.
  2. 11 Jan, 2019 2 commits
  3. 10 Jan, 2019 4 commits
  4. 09 Jan, 2019 5 commits
    • Michael Natterer's avatar
      app: make all pixbuf rendering in GimpViewRenderer HiDPI-aware · 63701479
      Michael Natterer authored
      Request pixbufs in double size and cache the created surface instead
      of the pixbuf. This affects rendering icons and image thumbnails.
      All other rendering (which is most previews) is not ported yet, but
      just lacks HiDPI quality, there are no actual bugs.
    • Piotr Drąg's avatar
      Update POTFILES.in · aaf8b8b5
      Piotr Drąg authored
    • Ell's avatar
      Issue #1824 - Crash on 2.10.4 using tablet · 9b256118
      Ell authored
      In GimpTool, track the last-seen pointer coordinates, modifier
      state, and event time, during button_press() and motion() events
      and use those to synthesize a button_release() event when
      comitting/halting the tool, if the tool is still active, and a
      matching button_release() event has not been received.
      The paint tools (as well as other tools) require each
      button_press() event to be matched by a button_release() event in
      order to properly finish their operation, but one isn't organically
      generated when switching tools due to a device change.
    • Ryuta Fujii's avatar
      Update Japanese translation · 25cf1340
      Ryuta Fujii authored
      (cherry picked from commit 0a22773a)
    • Ryuta Fujii's avatar
      Update Japanese translation · 5f176172
      Ryuta Fujii authored
      (cherry picked from commit 51ecd3e1)
  5. 08 Jan, 2019 7 commits
  6. 07 Jan, 2019 7 commits
    • Jehan's avatar
      app: make layer picking a generic modifier of the shell. · 4c337353
      Jehan authored
      Instead of having layer picking only on paint tools with alt-click, make
      it available everywhere with alt-middle click. Moving through layers is
      also a way to navigate an image, so it actually makes sense to be with
      other modifiers (panning, zooming, rotating), while making the feature
      more generic (this is definitely useful whatever the selected tool).
    • Jehan's avatar
      app: alt-click to pick a layer will loop through candidate layers. · 90e9eb3f
      Jehan authored
      If you click on a zone filled in several visible layers, you don't
      necessarily want the top layer. You may want one below. With this
      change, as long as you hold alt, you will loop through all candidate
      layers from top to bottom (then looping back top when reaching the
      In a first alt-click, you will always end up to the top candidate.
    • Jehan's avatar
      app: allow picking layer in paint tools on alt-click. · 3b59e6f6
      Jehan authored
      When working with a lot of layers, it is common to have to switch easily
      between layers. And having to go back to the layer list is annoying and
      also sometimes not practical at all when you can't find easily the right
      layer. This is a first step in an experiment for such a feature, worked
      together with Aryeom as advisor (and originator of the feature idea).
      For now I apply this only to paint tools, though we are considering
      having it as a generic modifier too, working whatever the tool. Yet we
      wouldn't be able to use alt-left click (as it is used already in some
      How it works is simply that in any paint tool, alt-click allows to
      switch to the topmost layer having a visible pixel at the clicked
    • Michael Natterer's avatar
      libgimpbase: more metadata fixes for tags that can appear multiple times · 479fd5b2
      Michael Natterer authored
      gimp_metadata_add() which is used to set blobs or EXIF, XMP and IPTC
      on a GimpMetadata also needs the logic to set "multiple" tags in one
      go, or it will lose all but the first one.
    • Michael Natterer's avatar
      Issue #763 - GTK3 GIT Set Keyboard Shortcut Broken · 62de94c7
      Michael Natterer authored
      Simply remove our own button-press handler and let GTK+ do its job,
      apparently this works just as intended in GTK+ 3.x now.
    • Ell's avatar
      app: in bucket fill tool, don't calculate line art of layer groups · 4b4fffbd
      Ell authored
      ... since they can't be used with the fill tool.
    • Michael Natterer's avatar
      Issue #1004 - file-pdf-load crashes in lcms when opening PDF with... · 19320235
      Michael Natterer authored
      ...color profile
      The issue is fixed in poppler 0.50, but since this is git master, we
      now depend on poppler >= 0.69 and poppler-data >= 0.4.9
  7. 06 Jan, 2019 5 commits
  8. 05 Jan, 2019 3 commits