У меня есть «лучшее» решение - в зависимости от ваших предпочтений.
Установите размер текста на 1 или 2 пикселя меньше по всей окружности, чем в оболочке, в которой он находится. Таким образом, оболочка обеспечивает эффект границы вокруг текста.
Установить mouseExit на оболочке.
Это даст правильное поведение - с одной ужасной проблемой. Когда мышь вводит комбинацию text + shell, mouseExit генерируется мышью, покидающей оболочку в текстовое поле.
Я установил флаг (логический mouseIn_flag), который вначале ложен. На выходе мыши установлено значение true. Если это верно для mouseExit - shell.close ();
Эффект состоит в том, что он игнорирует первый mouseExit и пропускает мышь в текст. Он выполняет закрытие оболочки, когда мышь выходит из текста (и, следовательно, входит в оболочку), а затем выходит из оболочки.
Поскольку оболочка представляет собой границу в один / два пикселя вокруг текста, пользователю придется усердно работать над странными движениями, чтобы некорректно вызывать эти события.