1. 15 Aug, 2019 3 commits
    • Agata Cacko's avatar
      Fix Strength not used in Rotation - Fuzzy Dab · 3602c724
      Agata Cacko authored
      Before this commit, if you chose Fuzzy Dab sensor
      in Rotation option, the value of the Strength slider wouldn't
      affect the resulting rotation of the brush tip.
      This commit fixes that behaviour: now if you choose very low
      Strength and the first curve from the template ones,
      the brush tip will rotate only slightly (before it would rotate
      within the full 360* range).
      
      * Fuzzy Dab is 'additive' kind of sensor, so it's value would be put
      in 'realAdditivePart' in rotationLikeValue(). 'constant' contains the
      value of 'Strength' slider. To get it working together,
      'realAdditivePart' had to be multiplied by the 'constant' value.
      
      * HSV option just ignored the problem and multiplied it by the value of
      the slider later. It couldn't be done for Rotation because Rotation
      takes the canvas rotation into account (see rotationLikeValue).
      Therefore it had to be done inside rotationLikeValue function, not
      later. Therefore the multiplication in HSV option had to be disabled
      to not double the effect.
      
      BUG:376179
      BACKPORT:krita/4.2
      3602c724
    • Dmitry Kazakov's avatar
      Possibly fix freeze on painting when using weird tablet drivers · 4737bbe9
      Dmitry Kazakov authored
      Some tablet drivers (Lenovo Yoga on Linux) have a bug [0] when the stylus
      changes its own ID right in the middle of the stroke/hovering. Sometimes
      they also generate spurious tabler press/release events. In Krita
      such behavior may lead to recursive tool switching right in the middle
      of TabletPress processing. Which could lead to a stroke started twice,
      which basically leads to a freeze.
      
      [0] - https://github.com/linuxwacom/input-wacom/issues/66#issuecomment-463349786
      CCBUG:410797
      4737bbe9
    • Dmitry Kazakov's avatar
      Fix deadlocks in KoShapeManager caused by bezier curve fix · 1ec268fa
      Dmitry Kazakov authored
      1) Some shapes (e.g. Text Shape) may emit shape-changed signal right
         during painting. It would cause a deadlock.
      
      2) add/removeShape methods should be more careful about locking
         because of their tail-recursion nature.
      
      BUG:410909
      BUG:410572
      1ec268fa
  2. 14 Aug, 2019 7 commits
    • Agata Cacko's avatar
      Fix transform worker tests failing because of NN · f54b48bb
      Agata Cacko authored
      Tests for transform worker were failing because the result files
      contained results from the old version of NN/Box filter.
      Since I changed it a bit in 57c3194c
      the old result files were no longer valid.
      This commit updates the result files.
      
      Also since the execution of the filter on one of the images
      resulted in a transparent pixel in the location that the previous filter
      had a non-transparent pixel, it changed the size of the resulting image
      so it didn't pass the test partially because of the change in size.
      Since other tests don't check the size, I removed the checks in this
      test, too. (Because of the transparency in the test image, it is possible
      that the resulting image will have a different size even though it is
      not scaled in this dimension.)
      
      BACKPORT:krita/4.2
      f54b48bb
    • Agata Cacko's avatar
      Fix curve change despite 'Use same curve' checked · 47a57162
      Agata Cacko authored
      Before this commit, if you have a preset like Fill_circle
      that has "Use the same curve" checkbox checked and you were
      clicking on other sensors, the curve would be back to the default
      curve (the one that other sensors had) if you switch back and forth
      between some sensors (like Pressure -> X-Tilt-> Pressure).
      
      Also before this commit if you have the default uprising curve
      and you switched Rotation -> Tilt elevation, the curve would change.
      
      This commit fixes both behaviours (first by adding transferCurve(),
      second by switching the line in kis_curve_widget).
      
      This commit also includes two slot functions instead of one function
      that were used as a slot for two different signals. It helps with
      debugging signals and keeping stuff clear and ordered.
      
      There is one problem left: if you switch Tilt elevation -> Distance
      (using the 'hill' curve), the preset is set to modified even though
      the curve doesn't change.
      
      BUG:383909
      BACKPORT:krita/4.2
      47a57162
    • Karl Ove Hufthammer's avatar
      c091fce2
    • Dmitry Kazakov's avatar
      Fix crash when creating a bezier curve · 1e5db24a
      Dmitry Kazakov authored
      The patch basically makes KoShapeManager thread safe by adding
      a simple mutex. The problem is that both,
      KoCreatePathTool::Private::endPointAtPosition() and
      KisRepaintShapeLayerLayerJob access the shape manager in different
      threads concurrently, which obviously causes a crash.
      
      BUG:410572
      BACKPORT:krita/4.2
      1e5db24a
    • Dmitry Kazakov's avatar
      Remove update compressor in KoShapeManager · a5ef0656
      Dmitry Kazakov authored
      Anyway we always recalculate tree before any access to the shapes
      
      CCBUG:410572
      BACKPORT:krita/4.2
      a5ef0656
    • Karl Ove Hufthammer's avatar
      Remove double space in opacity, flow and size sliders on main toolbar · 4790c612
      Karl Ove Hufthammer authored
      The sliders had two spaces (e.g. ‘Opacity:  75%’) instead of one
      (‘Opacity: 75%’). The extra space seems to be added by accident.
      They were at least not present in the original review board request
      (https://git.reviewboard.kde.org/r/122946/), only in the actual commit
      (6d6f154a).
      4790c612
    • Dmitry Kazakov's avatar
      Fix Shift and Alt modifiers in OUtline Selection Tool · bd06296f
      Dmitry Kazakov authored
      We should pass the keys to the tool, even when it is not active
      to make sure its keyPress/keyRelease methods work fine. To make
      it works we need to initialize the environment correctly in
      KisToolInvocationAction::processUnhandledEvent;
      
      BUG:410532
      BACKPORT:krita/4.2
      bd06296f
  3. 13 Aug, 2019 10 commits
  4. 12 Aug, 2019 11 commits
  5. 11 Aug, 2019 3 commits
  6. 10 Aug, 2019 2 commits
  7. 09 Aug, 2019 4 commits