SWT:在Mac OS上最小化子shell

时间:2012-03-27 10:36:14

标签: java swt

我遇到了SWT子shell在不同操作系统上的行为方式的问题。在Windows上,当我单击子shell的最小化按钮时,只有该shell将被最小化,即调整大小/停靠在屏幕的左下角(这是首选行为)。在Linux中,子shell最小化到任务栏(这不是一个真正的问题)。但是,在Mac OS X 10.5中,最小化子shell将导致父窗口最小化(这是一个问题)。

只需将父元素作为构造函数参数传递即可创建子shell,例如:

Shell editor = new Shell(Display.getCurrent().getActiveShell());

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

假设在不同平台上存在不同的窗口管理行为,可能不是SWT的错误 - 你能保证getActiveShell总是返回公共父shell吗?

另一个解决方案就是隐藏子shell - 应该在每个平台上都相同,但可能不适合您的应用程序。

无论如何,我看到很多替换多个子shell的选项。也许TabFolderExpandBar可能适合这份工作?在widgets page获取概述。

如果无法使用这些选项,您可以contact SWT项目。也许开发人员可以帮助您完成Mac OS实施的内部工作。一个非常激进的(从正常的观点来看,不必要的)步骤将移植到Swing。