1. 12 Jan, 2019 9 commits
    • Bruce Cowan's avatar
      Update British English translation · 797469d3
      Bruce Cowan authored
      797469d3
    • Ell's avatar
      app: in gimpchunkiterator.c, #include <stdlib.h> · 5e00c262
      Ell authored
      ... for qsort().
      
      (cherry picked from commit a61f29e3)
      5e00c262
    • Ell's avatar
      Issue #440 - libgimp/gimptilebackendplugin.c provides no pyramid · cc59bce8
      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.
      
      (cherry picked from commit d0ae39f0)
      cc59bce8
    • Ell's avatar
      app: in gimp_gegl_apply_cached_operation(), s/cancellable/cancelable/ · aa0df19a
      Ell authored
      To align gimp-2-10 with master, and fix commit
      50dc4571.
      aa0df19a
    • Ell's avatar
      app: in the gradient tool, halt gradient editor before committing filter · 7547df54
      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.
      
      (cherry picked from commit 2256ab22)
      7547df54
    • Ell's avatar
      app: in gimp_tile_handler_validate_buffer_copy(), temporarily remove source handler · bb4b1e3f
      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.
      
      (cherry picked from commit f4750a0a)
      bb4b1e3f
    • Ell's avatar
      app: use GimpChunkIterator in gimp_gegl_apply_cached_operation() · 50dc4571
      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.
      
      (cherry picked from commit 4110f7b7)
      50dc4571
    • Ell's avatar
      app: use GimpChunkIterator in GimpProjection · b62e3fd3
      Ell authored
      Replace the custom chunking logic of GimpProjection with
      GimpChunkIterator, added in the previous commit.
      
      (cherry picked from commit 246e7828)
      b62e3fd3
    • Ell's avatar
      app: add GimpChunkIterator · 8c31ed6f
      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.
      
      (cherry picked from commit ba9ce34e)
      8c31ed6f
  2. 11 Jan, 2019 3 commits
  3. 10 Jan, 2019 2 commits
  4. 09 Jan, 2019 3 commits
    • Ell's avatar
      Issue #1824 - Crash on 2.10.4 using tablet · a16d06a4
      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.
      
      (cherry picked from commit 9b256118)
      a16d06a4
    • Ryuta Fujii's avatar
      Update Japanese translation · 0a22773a
      Ryuta Fujii authored
      0a22773a
    • Ryuta Fujii's avatar
      Update Japanese translation · 51ecd3e1
      Ryuta Fujii authored
      51ecd3e1
  5. 08 Jan, 2019 9 commits
    • Jehan's avatar
      Issue #572: Key combinations not working with non English layout. · 5bbfbd1d
      Jehan authored
      It is most likely the same issue as old bug 769550 (on bugzilla), which
      is fixed with GTK+ 2.24.32. Back then, this version of GTK+ had not been
      released yet so we only added a warning in the configure script. See
      also commit b7345863.
      Now it has been a year since GTK+ 2.24.32 has been released and any
      distribution can just upgrade a micro version of GTK+ for bugfix. So
      let's just drop the warning and do a hard requirement to 2.24.32.
      5bbfbd1d
    • Ryuta Fujii's avatar
      Update Japanese translation · f7cb9b92
      Ryuta Fujii authored
      f7cb9b92
    • Ryuta Fujii's avatar
      Update Japanese translation · b7793b9c
      Ryuta Fujii authored
      b7793b9c
    • Ell's avatar
      app: in gimp_display_empty(), clear image of matching contexts · d2b98a67
      Ell authored
      In gimp_display_empty(), clear the image of all contexts whose
      display is the current display, so that, in particular, when
      subsequently updating the action groups, which causes certain
      actions to be activated, the image that used to be bound to the
      display is not found through the user context.  This avoids re-
      validating the image projection when closing the last image,
      postponing image destruction.
      
      (cherry picked from commit 49e57f8d)
      d2b98a67
    • Jehan's avatar
      app: expect event == NULL in gimp_device_info_get_event_coords(). · b1fe1675
      Jehan authored
      The problem was not happening with the master code of
      gimpdisplayshell-tool-events.c, but I encountered it in gimp-2-10 with
      the layer picking code.
      Even then, it still works, but I need to protect calls to
      gdk_event_get_axis() to avoid CRITICALs.
      b1fe1675
    • Jehan's avatar
      app: make layer picking a generic modifier of the shell. · 2dc3e181
      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).
      
      (cherry picked from commit 4c337353)
      2dc3e181
    • Jehan's avatar
      app: alt-click to pick a layer will loop through candidate layers. · e0be9bde
      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
      bottom).
      In a first alt-click, you will always end up to the top candidate.
      
      (cherry picked from commit 90e9eb3f)
      e0be9bde
    • Jehan's avatar
      app: allow picking layer in paint tools on alt-click. · 5790c809
      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
      tools).
      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
      position.
      
      (cherry picked from commit 3b59e6f6)
      5790c809
    • Snehalata Shirude's avatar
      Update Marathi translation · b2b88d7c
      Snehalata Shirude authored
      b2b88d7c
  6. 07 Jan, 2019 3 commits
  7. 06 Jan, 2019 10 commits
  8. 05 Jan, 2019 1 commit