1. 16 Mar, 2018 7 commits
    • Jehan's avatar
      plug-ins: properly check widget class holding tag data. · 4fdf301d
      Jehan authored
      Some tag data is hold in GtkEntry, other in GtkTextView, which are not
      parent to each other. Previous checks were wrong and resulted in
      "invalid cast from 'GtkEntry' to 'GtkTextView'" WARNINGs (followed by
      many CRITICALs because of this first error).
      Also properly free the data returned by gtk_text_buffer_get_text() which
      is allocated (unlike strings returned by gtk_entry_get_text() which must
      not be freed).
    • Jehan's avatar
      app: return from gimp_display_shell_space_pressed() immediately when... · 8aaf77ba
      Jehan authored
      ... scrolling in progress.
      In particular, this could happen while panning with mouse middle click
      and hitting space. This space should simply be ignored.
    • Ell's avatar
      libgimpcolor: fix gimp_color_profile_get_lcms_format() for premul formats · 9c663a65
      Ell authored
      It doesn't look like LCMS supports premultiplied alpha formats, so
      we must convert them to the corresponding non-premultiplied formats
    • Jehan's avatar
      Bug 779942 - Make GimpPickButton honor monitor profile. · 6c830092
      Jehan authored
      Quartz/macOS implementation for the color picker.
      This is untested but I am trying to advance our 2.10 blockers by
      implementing the base code for this feature. Please anyone with macOS
      machine access, review and fix if needed!
    • Jehan's avatar
      Bug 724692 - Canvas rotation stuck with specific order of actions. · b279c2d2
      Jehan authored
      The bug was affecting actually both canvas rotation and panning when
      done with space key. If the first mouse button was also clicked, then
      released after the space key, we ended up in some stuck action. It could
      only be unstuck by hitting/releasing space again.
      I am actually unsure that this was not originally done on purpose,
      especially since the code has these 2 status variables space_pressed and
      space_release_pending, but really apart from looking at this code, the
      behavior just looks very buggy and impracticable.
      The new behavior is to just stop the canvas panning/rotation as soon as
      space is released (which is also how it is documented in our manual, and
      how everyone seems to use the feature). I only kept the variable
      space_release_pending, which I use as was used space_pressed before.
    • Ell's avatar
      app: throttle GimpCanvasProgress updates · dc185204
      Ell authored
      Avoid redrawing GimpCanvasProgress items upon
      GimpProgress::set_value() if a minimal amount of time hasn't passed
      since the last call.  This notably improves performance of
      frequently-updated GimpCanvasProgress items.
    • Ell's avatar
      app: fix indentation in gimpcanvasprogress.c · 1cc90e52
      Ell authored
  2. 15 Mar, 2018 4 commits
    • Ell's avatar
    • Jehan's avatar
      libgimp, pdb: some generated files which were not in previous commits. · c5a0189b
      Jehan authored
      It's weird. I didn't see these when I added the GimpDistanceMetric enum
      type. Not sure why. Adding these now.
    • Jehan's avatar
      app: don't sync Blend tool's gradient-repeat property with gimp:blend... · c403e472
      Jehan authored
      ... when gradient_type >= GIMP_GRADIENT_SHAPEBURST_ANGULAR.
      Our current GUI code for the Blend tool options disables the "Repeat"
      widget with any of the shaped and spiral gradient types, which means (I
      assume) no repeat mode is allowed on these gradients. Nevertheless it
      was possible to change the repeat mode in another gradient type, then
      switch to one of these and get the repeat processed even though the GUI
      shows insensitive.
      I could simply reset the repeat mode to GIMP_REPEAT_NONE when setting
      one of these gradient types, but I think you'd want the repeat to stay
      at its value (being insensitive is enough to mean whatever value is set
      is not taken into account). So instead, I just unsync this specific
      property when appropriate.
      Note also I don't do this in the gimp:blend operation code because I am
      not sure this specific behavior is meant to be a generic blend behavior
      or just relative to the tool (render of the shaped gradients is barely
      different with a repeat, but there is still a difference).
    • Jehan's avatar
      app: add "distance-metric" property to the Blend tool options. · 87330a77
      Jehan authored
      It seems old blend tool (from GIMP 2.8) was using manhattan distance,
      whereas the new one uses euclidean. I guess there must be use cases for
      both. In any case, it is a good idea to simply propose the option since
      the property exists in the "gegl:distance-transform" operation.
      See also bug 781621.
  3. 14 Mar, 2018 5 commits
    • Ell's avatar
      app, pdb, libgimp, plug-ins, menus: rename layer composite modes · a7f3a2dd
      Ell authored
      Our composite modes don't correspond directly to the Porter-Duff
      operators after which they're named, and these names aren't too
      descriptive anyway.
      Rename the composite modes as follows:
        Source Over       =>  Union
        Source Atop       =>  Clip to Backdrop
        Destination Atop  =>  Clip to Layer
        Source In         =>  Intersection
      Update relevant code, including UI text, enumerator names, function
      names, and action names.
    • Ell's avatar
      pdb: fix paths in README_NEW_PDB_PROC · d29facda
      Ell authored
    • Ell's avatar
      pdb: fix generated file paths in enumgen.pl · 466025ab
      Ell authored
    • Jehan's avatar
      app: check "gradient-repeat" sensitivity at Blend Options creation. · 11ce60ba
      Jehan authored
      When starting the tool with one of the gradient types for which the
      repeat option should be deactivated, it is not. Run the handler function
      once at GUI creation.
      Also compare the gradient type with an enum value, which makes the test
      clearer than using an int.
    • Jehan's avatar
      Bug 781621 - PDB shapeburst gradient is slower than the blend tool. · 5751bb11
      Jehan authored
      PDB function gimp_edit_blend() was based on "gimp:shapeburst" operation
      whereas the rest of GIMP (in particular, the Blend tool) used
      "gegl:distance-transform" which is much faster.
      Setting the operation to "manhattan" metric ensures that it still
      renders the same way as in 2.8 while being a lot faster.
      There was still a problem regarding as how it renders differently from
      the Blend tool, but it turns out that the Blend tool is the one
      rendering differently from how it used to in 2.8. We should discuss
      adding the "metric" property in the tool options.
  4. 13 Mar, 2018 1 commit
    • Jehan's avatar
      app: disable multi-threading on "gimp:shapeburst" operation. · 6f127f9d
      Jehan authored
      This operation is currently broken on multi-thread. So disable
      multi-threading, at least temporarily (if not forever since apparently
      we can get similar output with "gegl:distance-transform", but much
      faster and nicer). See bug 781621.
  5. 12 Mar, 2018 2 commits
  6. 11 Mar, 2018 5 commits
  7. 10 Mar, 2018 14 commits
  8. 09 Mar, 2018 2 commits
    • Jehan's avatar
      Bug 794152 - JPEG 2000 Code Stream .j2c support. · 3d554529
      Jehan authored
      Current OpenJPEG code only supported the base JP2 container. It now
      supports also the JPEG 2000 codestream (which is usually contained
      inside other formats, like the JP2 container format, but can also
      sometimes be on its own).
      The current magics and extension strings were also mixing all kind of
      formats. This is now cleaned up a bit.
    • Jehan's avatar
      plug-ins: deduct color space from profile if not specified otherwise. · 00e828a3
      Jehan authored
      As explained in the previous commit, the color space is not always
      properly declared, in particular with J2K files. If a profile is present
      in such a case, try to deduct the color space from this information.