Photoshop crashes when using tooltips on Windows

,

With the update of Photoshop to version 25.9 (Beta has the same problem) Photoshop crashes when using tooltips. There is no change to intercept the error. It took some time to find out what the problem is. Today I also noticed significant problems on MacOS when using ToolTips.

<sp-overlay>
	<div slot={'trigger'}>{children}</div>
	<sp-popover
		open={showPopover ? 'open' : null}
		offset={offset}
		placement={placement}
		appearance={'none'}
		slot={'click'}
	>
		<Text className={styles.Popover__text} text={title} />
	</sp-popover>
</sp-overlay>

Another problem is with the sp-picker when used within a dialog (modal). The list (the open dropdown) is partially rendered behind Photoshop. It cannot be closed and even after closing the dialog, the empty list remains visible and cannot be closed either. Only a restart of Photoshop helps. If you use the sp-dropdown instead of the sp-picker, it works better.
Is Adobe already aware of this bug? I have very often sent the crash report that comes when Adobe crashes.

I got this z-index issue on Windows but PS restart fixed it. @indranil

I also think I reported some crash regarding to dialogs and overlays or something similar… I workarounded it with a settimeout I think.

ok, for me the problem was also there again after a restart when opening dropdowns. I also use a settimeout for the overlays. They work, unfortunately extremely badly since 25.9

Hi Joe, if you sent in the crash report including your email address, would you send that address to me in a direct message so that I can use it to locate the reports?

Thanks,
Sam

@Joe @Jarda Would you happen to have a minimal example that exhibits this crash? The snippet doesn’t appear to cause a crash when we tried replicating it. Any specific steps that we might be missing at our end?

@indranil I have tried to reduce it to a minimal example. It seems to be a CSS instruction that triggers the error for me.
As soon as I comment out &:hover svg in the class tooltip, Photoshop does not crash.


export interface PopoverProps {
	title?: string;
	placement?: PopoverPlacement;
	alignment?: PopoverAlignment;
	offset?: number;
	className?: string;
	style?: CSSProperties;
	delay?: number;
	children?: React.ReactNode;
}

const Popover: React.FC<PopoverProps> = ({
	title = '',
	placement = 'top',
	offset,
	children,
	className = '',
	style = {},
	delay = 800,
}) => {
	const timerRef = useRef(null);
	const elementRef = useRef<HTMLDivElement>(null);
	const [showPopover, setShowPopover] = useState<boolean>(false);

	useEffect(() => {
		return () => {
			clearTimeout(timerRef.current);
		};
	}, []);

	const Content = useMemo(() => {
		if (!showPopover) return <div>{children}</div>;
		return (
			<sp-overlay>
				<div slot={'trigger'}>{children}</div>
				<sp-popover
					open={showPopover ? 'open' : null}
					offset={offset}
					placement={placement}
					appearance={'none'}
					slot={'click'}
				>
					<div className={styles.Popover__text} dangerouslySetInnerHTML={{ __html: `${title}` }}/>
					{/*<span className={styles.Popover__text} >{title}</span>*/}
				</sp-popover>
			</sp-overlay>
		);
	}, [showPopover, children, offset, placement, title]);

	const handleOnMouseEnter = () => {
		if (timerRef.current) return;
		timerRef.current = setTimeout(() => {
			setShowPopover(true);
		}, delay);
	};

	const handleOnMouseLeave = () => {
		clearTimeout(timerRef.current);
		timerRef.current = null;
		setShowPopover(false);
	};

	return (
		<div
			className={`${styles?.Popover} ${className}`}
			ref={elementRef}
			onMouseEnter={handleOnMouseEnter}
			onMouseLeave={handleOnMouseLeave}
			style={style}
		>
			{Content}
		</div>
	);
};

export default Popover;

<Popover
				title={'Tooltip'}
				placement={popoverSettings.placement}
				alignment={popoverSettings.alignment}
				offset={popoverSettings.offset}
				className={styles.tooltip}
				style={{}}
			>
				<svg width="24px" height="24px" strokeWidth="1.5" viewBox="0 0 24 24" fill="none"
					 xmlns="http://www.w3.org/2000/svg" color="#000000">
					<path d="M5 13L9 17L19 7" stroke="#000000" strokeWidth="1.5" strokeLinecap="round"
						  strokeLinejoin="round"></path>
				</svg>
			</Popover>

CSS

.tooltip {

    &:hover svg {
      stroke: white;
    }
  }

In the meantime, after many more tests, the error is no longer fully traceable. Often it was due to the CCS instruction and, as soon as I commented it out, everything worked and after many crashes, it worked without any problems. I have nevertheless reduced the code to a minimum and maybe you can reproduce the error this way.
Most of all it crashed with the ‘dangerouslySetInnerHTML’

1 Like