Bug #9043

blend-if color picker in Soften tool takes 2 clicks before it updates the first time it is used

Added by Nicolas Dade over 7 years ago.

Target version:
Start date:
Due date:
% Done:


Estimated time:
Affected Version:
git development version
hardware architecture:


To recreate:
go to Soften module. Reset it. Pick Blend Mode=Normal, and Blend Only If. Click the picker tool which is part of the Only If panel. A cross appears in the center of the image. Note where the line corresponding to the picked point appears in the mask definition. Now click on the image on a location which is going to make the line move (so on a bright area if the current line is in the dark range and the g(rey) mask filter is displayed, for example). Note that the line did not move. You have to click a 2nd time for it to really sample and update the position of the input and output lines.

After this just a single click works. Also this seems to be specific to the Soften module. Or at least I can't recreate it with the Velvia module.


#1 Updated by Ulrich Pegelow over 7 years ago

  • % Done changed from 0 to 10
  • Status changed from New to Confirmed

Seems to be a general problem of color picker independent of module. Color picker values do not reflect the current spot but the
previous one.

#2 Updated by Ulrich Pegelow over 7 years ago

The key problem is lack of synchronization between color picker and expose events.

When the color picker is positioned or moved - mouse_moved() or button_pressed() in darkroom.c - preview pipe is marked as changed,
so it is reprocessed and gui is redrawn by calling dt_control_queue_redraw(). Reprocessing of preview pipe is needed as this allows
color picker data to be newly collected at the specified new location.

If we have a fast module, everything is fine. Color picker data are available quickly and are displayed correctly (e.g. tonecurve). On slow modules like
soften, highpass, equalizer... gui is updated before the pixelpipe is finished -> old picker data are displayed. This is also true
for blendif sliders which are updated by _blendop_blendif_expose().

What we need is some kind of synchronization.

#3 Updated by Johannes Hanika over 7 years ago

  • % Done changed from 10 to 100
  • Status changed from Confirmed to Fixed

this should be fixed in 9525a90c301ee2b86ec7ce5480ff14de9a14c310

let me know if not.

#4 Updated by Nicolas Dade over 7 years ago

Yes this fixes the problem, updates to the color picker selection are slower, but correct.

Also available in: Atom PDF

Go to top