1. 18 May, 2017 1 commit
    • Jehan's avatar
      Bug 782759 - strict validation of appdata file fails. · 5b4dcbfb
      Jehan authored
      Command line: appstream-util validate-strict gimp.appdata.xml.in
      This fixes only the following warning:
      value-missing         : <!-- Copyright [year] [name] --> is not present
      Screenshot has not the right ratio. We will have to find one or more
      replacement screenshots.
      5b4dcbfb
  2. 17 May, 2017 7 commits
    • Ell's avatar
      app: in warp tool, avoid nop strokes with the MOVE behavior · 3814ac90
      Ell authored
      When using the MOVE behavior, don't append the current cursor
      position to the stroke path in the timeout proc if the cursor
      hasn't moved since last time.  It has no effect, except for
      requiring an unnecessary update.
      3814ac90
    • Ell's avatar
      app: in warp tool, compress motion events · 5be79bc8
      Ell authored
      We stroke the last-reported coords in a timeout proc, so there's
      no real need for exact motion notification.
      5be79bc8
    • Ell's avatar
      app: in warp tool, improve update region calc. · a0b30d54
      Ell authored
      ... as a result of a stroke change.
      a0b30d54
    • Michael Natterer's avatar
      Bug 749902 - Add Hue-Chroma operation/tool and LCH color selector · 2b167d63
      Michael Natterer authored
      Add LCH to the color selectors, patch by Elle Stone and myself.
      
      - Extend enum GimpColorSelectorChannel by LCH channels
      - Support them in GimpColorScale, GimpColorScales and GimpColorSelect
      - Did not yet remove the HSV channels until things are working 100% ok
      - Change drawing in GimpColorSelect to be much faster, to compensate
        for babl_process() making the LCH modes pretty slow
      - Clean up stuff in GimpColorSelect
      
      This is WIP and should not be considered finished, biggest TODO is
      displaying out-of-gamut values in GimpColorScales' spinbuttons.
      2b167d63
    • Elle Stone's avatar
      Bug 773461 - Color picker lacks L*a*b* mode · 127e7dae
      Elle Stone authored
      Add LAB readout to Pointer and Sample Points dialogs
      127e7dae
    • Ell's avatar
      app: maintain warp tool graph structure during undo/redo · 9c7cae62
      Ell authored
      When undoing a warp stroke, don't disconnect the current warp node
      from its predecessor; rather, keep the graph as-is, and only
      reconnect the render_node to the previous node.  This avoids
      invalidating the undone node, so that redoing it (which, likewise,
      only involves reconnecting the render_node) doesn't require
      reprocessing, making it much faster.
      9c7cae62
    • Ell's avatar
      app: add "spacing" parameter to warp tool; change "hardness" range · 13e274d8
      Ell authored
      The spacing parameter controls the stroke spacing of the warp op.
      It's similar, but not identical, to the brush spacing parameter of
      the paint tools.  It provides a tradeoff between speed and quality.
      
      Change the UI range of the hardness parameter from [0, 1] to [0, 100],
      to match the other parameters.
      13e274d8
  3. 16 May, 2017 4 commits
  4. 15 May, 2017 4 commits
  5. 14 May, 2017 2 commits
  6. 13 May, 2017 3 commits
    • Thomas Manni's avatar
      Bug 121446 - Transform tool bounding box for path · f25c0cb9
      Thomas Manni authored
      When transform tools are applied on a path, set their bounding box as follow:
      - if a selection exists, use the selection bounds
      - else if the path has a valid bounding box, use it
      - else use the image canvas bounds
      
      Also disable transform tools on an empty path (path without strokes) since
      there is no data to transform.
      f25c0cb9
    • Ell's avatar
      app: add ui_meta keys for controlling some UI attributes dynamically · bb2417c2
      Ell authored
      Add support for The following GEGL op property keys, which shall
      contain GUM expressions of the specified type, controlling the
      corresponding UI attributes of the property's widget:
      
        - sensitive [boolean]: controls widget sensitivity.
      
        - visible [boolean]: controls widget visibility.
      
        - label [string]: controls widget label (or the label of the
          associated label widget).
      
        - description [string]: controls widget tooltip text.
      
      When any of above keys are present, the values they evaluate to take
      precedence over the static values the corresponding attributes would
      otherwise have.
      bb2417c2
    • Ell's avatar
      app: add interpreter for the GUM language · d6eb927b
      Ell authored
      GUM is a small DSL, used in some property keys of GEGL operations
      to dynamically control UI attributes based on context.  This commit
      only adds an interpreter for the language; see the next commit for
      the actual handling of the relevant keys.
      
      See the comment at the top of gimppropgui-eval.c for a description
      of the language.
      
      Note that the interpreter is licensed under the LGPL.
      d6eb927b
  7. 12 May, 2017 6 commits
    • Jehan's avatar
      app: layers-text-tool should give the focus to the canvas. · bb977263
      Jehan authored
      If focus is on the layer list for instance, running this action from
      right-click menu raises the on-canvas toolbar, ready for edition, with a
      visible text cursor. But if the canvas has no focus (since you clicked
      on the layer list, it has the focus), you still have to move your mouse
      over and click the text on canvas. That doesn't make sense and there
      would be barely any reason to use this over selecting the text tool then
      clicking the canvas.
      bb977263
    • Jehan's avatar
      app: layers_text_tool_cmd_callback() is not supposed to be run on... · 526918b2
      Jehan authored
      ... non-text layers.
      Since commit 10099bda, the action will be non-sensitive with non-text
      layers, so if it happens, there is a bug somewhere. Therefore
      g_return_if_fail() on this condition.
      Moreover opening the edit attributes dialog was absolutely confusing on
      what this action is supposed to do. We should not have these kind of
      random behaviors.
      526918b2
    • Jehan's avatar
      app: layers-text-tool action should only be sensitive when active... · 10099bda
      Jehan authored
      ... layer is a text layer.
      It doesn't make sense to activate the text tool on any other kind of
      layer.
      10099bda
    • Ell's avatar
      app: update layer backdrop only after removing from stack · 99ab780d
      Ell authored
      When a layer is removed from a layer stack, and its backdrop needs
      invalidating, emit the UPDATE signals for the backdrop only after
      the layer has been removed from the container.
      99ab780d
    • Ell's avatar
      app: don't invalidate layer when invalidating its backdrop · dd8e2e9b
      Ell authored
      Harmless, but unnecessary.
      dd8e2e9b
    • Jehan's avatar
      build: update the flatpak-howto. · 590924f8
      Jehan authored
      In particular, I didn't have the correct metadata because I was missing
      appstream-compose. This should be a dependency of flatpak. But for the
      time being, let's just have a note in our howto.
      590924f8
  8. 11 May, 2017 6 commits
    • Ell's avatar
      app: add GimpLayerStack · 07ac78ef
      Ell authored
      A subclass of GimpDrawableStack, for layer stacks.  Invalidates the
      layers' backdrop as/when necessary, according to the value of their
      excludes_backdrop property.
      
      Make gimp_drawable_stack_update() protected, instead of private, so
      that we can use it in GimpLayerStack.
      07ac78ef
    • Ell's avatar
      app: add GimpLayer::excludes_backdrop property · a0510022
      Ell authored
      A boolean flag, specifying whether the backdrop is clipped to the
      layer.  That's the case when the layer's composite mode is dst-atop
      or src-in.
      
      This is a read-only property, derived from the other attributes of
      the layer.  We compute its value through a virtual function, so that
      GimpGroupLayer will eventually be able to specialize it for pass-
      through groups.
      
      The next commit uses this property to actually do something useful.
      a0510022
    • Ell's avatar
      app: add gimp_layer_mode_get_included_region() · a6713565
      Ell authored
      Takes a layer mode and a composite mode, and returns the region
      included in the composition.
      
      Use this function in GimpOperationLayerMode, instead of testing
      for specific composite modes directly.  Will also be used by
      the next commit.
      
      Indentation cleanup in gimp_layer_modes.h
      a6713565
    • Ell's avatar
      app: rename GimpLayerModeAffectMask to GimpLayerCompositeRegion · c78cecd7
      Ell authored
      ... so that we can use it for other functions that involve
      compositing regions (which we do in the next commit).
      
      Rename gimp_operation_layer_mode_get_affect_mask() and
      friends to _get_affected_region().
      c78cecd7
    • Ell's avatar
      app: make LCH lightness select-criterion faster · b5974d34
      Ell authored
      babl already has a faster path for getting L only, than going
      through LCH.
      b5974d34
    • Michael Natterer's avatar
      app: factor out button-2-motion handling code in GimpDisplayShell · 465eba32
      Michael Natterer authored
      less code in the huge gimp_display_shell_canvas_tool_events().
      Also fix the rotating cursor in gimp_display_shell_start_scrolling().
      465eba32
  9. 10 May, 2017 7 commits