奇怪的行为 - Mac OS X上的SWT浏览器

时间:2009-05-29 14:23:20

标签: macos browser swt

这是一种奇怪的行为,没有照片很难解释,所以我会尽力而为。

我的应用程序有一个嵌入式SWT浏览器小部件,该应用程序是跨平台的。它在Windows上运行良好,但需要支持Mac OS X 10.4及更高版本。浏览器小部件位于右侧的复合内,另一个合成内的文件树位于左侧。用户单击树中的文件,然后将其解密并显示在浏览器中。

我正在Mac 10.4.11上测试应用程序,这种奇怪的行为只有在我调整shell窗口大小时才会发生。复合和浏览器窗口小部件本身正确调整大小。我可以看到对象的边界/边界。问题是应该在浏览器中的图像 - 移位(几乎就像显示的图像没有锚定到浏览器的左上角)。它从上到下对齐,图像本身的大小正确,但在调整大小后图像会移动。应用程序在初始加载时看起来很好(意味着图像完美对齐),在隐藏文件树并且浏览器/复合材料占用完整shell时看起来很好,在恢复文件树时看起来很好。只有在调整大小时才发生这种情况。

我希望这有点道理。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

好的,我想通了。这是我最初的(伪代码):

webBrowser.setSize(shell.width,shell.height);

webComposite.getParent()布局();

事实证明,我需要以与恢复文件树时相同的方式恢复浏览器及其复合(因为我知道在该操作之后它的大小正确)。上面的代码替换为:

webComposite.setLayoutData(new GridData(SWT.LEFT,SWT.TOP,true,true));

webComposite.setBounds(widthOfTreeComposite,0,shell.width,shell.height);

webComposite.setSize(shell.width,shell.height);

webBrowser.setLayoutData(new GridData(SWT.LEFT,SWT.TOP,true,true));

webBrowser.setBounds(0,0,shell.width,shell.height);