I don't know what this means; can you clarify? I develop almost exclusively in Vision, and I've been using this for months without an issue. In my script, I simply don't alter anything that has a JRootPane if its not in a predefined target list, and that prevents any components in a Vision window from being touched. Note how the alarm status table and buttons in the demo video remain unchanged as I toggle from light to dark mode.
'''
Conditions that determine whether or not the current recursion cycle should be abandoned
'''
# No iteration past root containers that are not from windows in the target list,
# ...or other specifically selected containers that are not to be colored
if componentClass in exclusionList and component.parent.__class__.__name__ not in targetList:
continue
Edit: Here is the target list of containers that I allow to be colored:
def getDarkModeTargetList():
return ['ActionEditorFrame', # Perspective component action script editor
'BindingEditorFrame', # Perspective Binding Editor
'BindingEditor$TransformsPanel$NewTransformPicker', # Perspective Binding Editor's "Add Transform" popup
'ClientScriptEditor',
'CollapsiblePanePalette',
'ComponentScriptEditor',
'ConfigurationExplorer', # Perspective component configuration explorerer
'ComponentSecurityPanel', # Found in the security settings pane
'CustomizerDialog', # Vision custom property and style customizer editors
'DataSetEditorDialog', # Pops up when clicking on a dataset property's icon
'DefaultPopupWindowParent',
'DialogFloatingContainer',
'DynamicOptsDialog', # Vision Binding Editor
'FillAndStrokePane',
'GlobalScriptEditor',
'IgnitionDesigner',
'InspectorFrame', # Reporting module property inspector
'InteractiveScriptPlayground',
'ImageManager',
'JDialog', # Used for miscellaneous popups
'KeyboardEditor',
'KeysFrame', # Reporting module key browser
'LayoutDialog', # Revealed by right clicking and selecting "Layout" from a Vision component
'NavTreePanel',
'OPCBrowserPanel',
'OutputConsoleParent',
'PaletteFrame', # Perspective Component selection pallet
'PopupFactory$MediumWeightPopup$MediumWeightComponent', # These are usualy just tool tips, but sometimes they are lightweight dialogs that fit within their parent window
'Popup$HeavyWeightWindow', # Used for various dropdown and mouse click popup menus
'PositionDialog', # Revealed by right clicking and selecting "Size and Position" from a Vision component
'ProjectExporter$2', # Displayed from [File-->Export]
'PropertyEditorDialog',
'PropertyEditorFrame', # Perspective property editor
'PropertyTablePanel', # Vision component property pane
'QueryBrowser',
'ResizableWindow', # Perspective editor popups
'ScriptEditorFrame', # Perspect custom method and message handler editor pane
'SwingBorderEditor$BorderDialog', # Vision border editor that pops up when the pencil icon is pressed
'SymbolBrowserFrame', # Popup window located @ [Tools --> Symbol Factory]
'TabbedPanePalette',
'TagBrowserFrame',
'TagEditorDialog', # Revealed by double clicking a tag in the tag browser
'TagObjectEditor', # Revealed by double clicking a Vision client tag in the tag browser
'TranslationManager',
'UdtPropBindingFrame'] # Revealed by clicking on certain parameter binding icons in the tag editor