Per-object color cleared after cancelling custom color dialog

I find per-object built-in colors (in the dropdown list other than “Other”) will be cleared if you open the custom color dialog (by clicking “Other”) and cancel it. It is a bit counter-intuitive to me. Is it better to alter the behavior?

Using the latest 7 SR.

Hi -
I can’t seem to reproduce that here.
Is this file-specific on your end?
Please run the Rhino SystemInfo command and copy-paste the result here.
-wim

It’s not file-specific on my end.

Steps to reproduce

1, Create a new file
2, Draw an object, a plane in the following example,
3, Assign a color to it, from the built-in values of dropdown in the property panel.
4, Click the “Color” dropdown again, then click “Other”
5, Click “Cancel” to cancel the color picker dialog.
6, The object color is cleared.

Expected behavior

The object color is not cleared.

Video & demo file

demofile.3dm (29.4 KB)

System Info
Rhino 7 SR22 2022-9-12 (Rhino 7, 7.22.22255.05001, Git hash:master @ 196b1bc7dd093321e28dcc7a2bb8709a9bebe12d)
License type: 商业版, build 2022-09-12
License details: Cloud Zoo

Windows 10 (10.0.17763 SR0.0) or greater (Physical RAM: 16Gb)

Computer platform: DESKTOP 

Standard graphics configuration.
  Primary display and OpenGL: NVIDIA GeForce GTX 1050 (NVidia) Memory: 2GB, Driver date: 7-21-2022 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 516.94
    > Accelerated graphics device with 4 adapter port(s)
        - Windows Main Display attached to adapter port #0
        - Secondary monitor attached to adapter port #1

OpenGL Settings
  Safe mode: Off
  Use accelerated hardware modes: On
  Redraw scene when viewports are exposed: On
  Graphics level being used: OpenGL 4.6 (primary GPU's maximum)
  
  Anti-alias mode: 8x
  Mip Map Filtering: Linear
  Anisotropic Filtering Mode: High
  
  Vendor Name: NVIDIA Corporation
  Render version: 4.6
  Shading Language: 4.60 NVIDIA
  Driver Date: 7-21-2022
  Driver Version: 31.0.15.1694
  Maximum Texture size: 32768 x 32768
  Z-Buffer depth: 24 bits
  Maximum Viewport size: 32768 x 32768
  Total Video Memory: 2 GB

Rhino plugins that do not ship with Rhino
  C:\Users\2429\AppData\Roaming\McNeel\Rhinoceros\packages\7.0\NVIDIADenoiser\0.4.2\NVIDIADenoiser.Windows.rhp	"NVIDIADenoiser.Windows"	0.4.2.0

Rhino plugins that ship with Rhino
  C:\Program Files\Rhino 7\Plug-ins\Commands.rhp	"Commands"	7.22.22255.5001
  C:\Program Files\Rhino 7\Plug-ins\rdk.rhp	"Renderer Development Kit"	
  C:\Program Files\Rhino 7\Plug-ins\RhinoRenderCycles.rhp	"Rhino Render"	7.22.22255.5001
  C:\Program Files\Rhino 7\Plug-ins\rdk_etoui.rhp	"RDK_EtoUI"	7.22.22255.5001
  C:\Program Files\Rhino 7\Plug-ins\rdk_ui.rhp	"Renderer Development Kit UI"	
  C:\Program Files\Rhino 7\Plug-ins\NamedSnapshots.rhp	"Snapshots"	
  C:\Program Files\Common Files\McNeel\Rhinoceros\7.0\Plug-ins\SectionTools (fbdb1d7f-8cfb-42c1-9858-87cb6315932c)\2019.7.29.584\SectionTools.rhp	"SectionTools"	
  C:\Program Files\Rhino 7\Plug-ins\RhinoCycles.rhp	"RhinoCycles"	7.22.22255.5001
  C:\Program Files\Rhino 7\Plug-ins\Grasshopper\GrasshopperPlugin.rhp	"Grasshopper"	7.22.22255.5001
  C:\Program Files\Rhino 7\Plug-ins\Displacement.rhp	"Displacement"	
  C:\Program Files\Rhino 7\Plug-ins\Toolbars\Toolbars.rhp	"Toolbars"	7.22.22255.5001

Yep, I see that here. Looks like White gets applied when Cancel is pressed in the color picker in this case.

No, actually it is the previously successfully applied color that gets used…

  1. Go through the procedure above but do not cancel, choose another color for the object, say green and OK
  2. Undo the color change
  3. Then go back and try the color change again but this time hit Cancel instead of OK
  4. The previously used color (green) will be applied
1 Like

Yep, looks like whatever ‘other’ is , currently, is applied. I am not sure that is incorrect, I don’t know what else would make sense.

-Pascal

For me, hitting Cancel means you decided to abort the color-change operation. Thus the object should retain its “before” color.

1 Like

Well, if the color is set to Other and you go to change Other but cancel, the old Other is what should be applied…but I see that if your ‘Other’ turns out to be a color in the list, the setting changes to that color in the list and does not stay on Other - I see whay that might be a good idea but it seems like it could be a source of confusion because the default Other is white and that is in the list… If the default Other were not in the list, it might be clearer.

-Pascal

Yeah, if you could actually click on “Other” and it would apply the color indicated in the square right away then I would say it is perhaps logical.

But as clicking “Other” automatically brings up the color picker dialog, I think that clicking OK in the dialog without setting anything means you accept that it applies whatever color is already there; but clicking Cancel should cancel the whole operation. Right now there is no difference between the two.

Would that mean resetting to say, By Layer?

On Mac in V7, the two are separate, which actually makes some sense - you set display color to Custom and whatver color that is is applied, you need to click on the separate color swatch to get the color picker. In view of this conversation, I like that better right now… V8 behaves like on Windows…

Thanks y’all.
RH-71275 Properties > Display color tune up

-Pascal

I don’t think cancelling will reset it back to ByLayer, but make it stay what it was.

For example in the example above, it was red before clicking the Other color, cancelling the color picker makes the surface still red.

If it were set By Layer, and the layer was red, and you set it to Other and then cancel the color picker, you’d expeect the color to be set to red and not By Layer? In any case, I think we’re going to at least look at doing it the old V7/Mac way across the board, it seems to make more sense not to force a color picker every time a color is set to Other…

-Pascal

If it was ByLayer, I think it should be kept ByLayer after cancelling the color picker.

Nope, I would expect it to be reset to By Layer. Another way to look at this is it Cancel is pressed in the color picker, it’s like the operation went through successfully as now, but then the user hit Undo. So the object(s) would return to the state previous to the color choice action, whatever that was.

Well, then maybe the dropdown needs one more entry:

  1. Other to be renamed “Last Used”, click on that and it applies the last used “other” color immediately without invoking the color picker; and

  2. A new “Pick…” dropdown entry that does invoke the color picker, but allows you to cancel out of it without changing anything.

Note also that it might be cool to have “Last Used” actually be named “Recent” and display a small set of the most recently used colors, but that would mean a dropdown inside a dropdown or something complicated like that…

btw shouldn’t the “Custom” be named “Last Used Color” if Mac V7’s behavior is adopted?

“Custom” sounds a bit vague.