Предполагается, что на разных платформах существует разное поведение управления окнами, которое не может быть ошибкой SWT. Можете ли вы гарантировать, что getActiveShell
всегда возвращает общую родительскую оболочку?
Другое решение - просто скрыть дочерние оболочки - должно работать одинаково на всех платформах, но может не подходить в контексте вашего приложения.
В любом случае, я вижу множество вариантов замены нескольких дочерних оболочек. Может быть, TabFolder
или ExpandBar
могли бы подойти для этой работы? Получите обзор на странице виджетов .
Если эти опции невозможны, вы можете связаться с проектом SWT. Может быть, разработчики могут помочь вам с внутренней работой реализации Mac OS. Очень радикальным (и с обычной точки зрения ненужным) шагом будет перенос на Swing.