Project

General

Profile

Bug #9282

blendif color picker stays active after blending is disabled

Added by Igor Kuzmin over 7 years ago. Updated over 7 years ago.

Status:
Fixed
Priority:
Low
Category:
Darkroom
Start date:
02/26/2013
Due date:
% Done:

100%

Estimated time:
Affected Version:
git development version
System:
all
bitness:
64-bit
hardware architecture:
amd64/x86

Description

Steps to reproduce:
1). enable blendif in any module
2). click on color picker icon from blendif controls
3). disable blending (or just blendif, or collapse module)
4). click anywhere in central area where image is
You will see that color picker is still active and the only way to disable it as far as I can tell is to reenable blendif and click again on color picker icon. IMHO color picker should be automatically disabled when blendif controls get hidden.

History

#1 Updated by Igor Kuzmin over 7 years ago

Hmm, actually collapsing/defocussing module does disable color picker, so that part isn't correct, but disabling blendif doesn't, so the bug is still valid.
Also, color picker pointer doesn't always get hidden after you focus another module, you have to click somewhere.

#2 Updated by Ulrich Pegelow over 7 years ago

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

I can confirm your observation. In fact it's a known issue and not easy to solve.

We in fact have one color picker available per module/instance. It is activated by setting flag module->request_color_pick directly in a module iop.

The easy part is when only blendif can request a color picker -> if blendif is switched off, color picker could be deactivated by setting the flag to zero.

However, there are modules which can request color picker by themselves (tonecurve, levels, fill light, ...). As color picker has no notion by which part it
was activated, it would not be wise to switch it off when blendif is deactivated.

Any ideas how to solve this?

#3 Updated by Igor Kuzmin over 7 years ago

OK, so some modules have 2 color picker buttons... This is quite broken... If I enable one of them, actually both are working. And if I enable both and then disable one of them, color picker gets disabled while one of the buttons remains highlighted.Blendif code is independent and doesn't know anything about color picker in module itself, that's the source of problems, right?
I can suggest instead of doing
module->request_color_pick = enable ? 1 : 0;
do smth like that:
if(enable)
module->request_color_pick++;
else
module->request_color_pick--;

And of course do decrement when blendif controls gets hidden with activated color picker button.

#4 Updated by Ulrich Pegelow over 7 years ago

Re your suggestion: certainly would be an option. Only problem is if user happens to hit both buttons. Then he needs to know that both require de-activation.

Also if the module is switched off, the color picker - if requested by blendif - might still be on. Or we need to take care of this special case somewhere else.
I'm not sure if this really improves the situation. After all the color picker does not do much harm.

#5 Updated by Igor Kuzmin over 7 years ago

I'm not sure how color picker should behave when module is disabled... I don't think it's a big issue.
Anyway, if you don't want to deal with the whole mess of 2 picker buttons right now, at least we should fix the issue described in topic post - disable color picker when blendif is hidden. I disagree that picker doesn't harm - it prevents user from panning around by dragging the image.

#6 Updated by Ulrich Pegelow over 7 years ago

  • Assignee set to Ulrich Pegelow

Fair enough. I will have a look.

#7 Updated by Ulrich Pegelow over 7 years ago

  • % Done changed from 10 to 50
  • Status changed from Confirmed to In Progress

#8 Updated by Ulrich Pegelow over 7 years ago

  • % Done changed from 50 to 100
  • Status changed from In Progress to Fixed

fixed in master

#9 Updated by Igor Kuzmin over 7 years ago

One minor problem remains in case of 2 color pickers in 1 module:
1). enable blendif color picker
2). enable module's own color picker (blendif color picker button remains in "on" state and module's color picker is on too now)
3). disable module's own color picker
In result you will have disabled color picker, but blendif color picker button still in "on" state.

P.S.
Hmm, actually this only reproducible if blendif sliders aren't visible currently (when row with tabs and buttons is at the bottom of panel, just above "more modules").

#10 Updated by Ulrich Pegelow over 7 years ago

Resetting the on/off-state of the icon is done whenever _blendop_blendif_expose() is called. You describe a case where this seems not to happen as the GUI is hidden. It should get updated quite quickly when it gets visible.

#11 Updated by Igor Kuzmin over 7 years ago

Yeah, that's not a real issue, let's ignore this. So yes, fixed.

Also available in: Atom PDF

Go to top