2009-05-29 4 views
1

これは奇妙な動作であり、画像なしでは説明が難しいので、私は最善を尽くします。奇妙な動作 - Mac OS XのSWTブラウザ

私のアプリケーションには埋め込みSWTブラウザウィジェットがあり、アプリケーションはクロスプラットフォームです。 Windows上では完璧に動作しますが、Mac OS X 10.4以降をサポートする必要があります。ブラウザウィジェットは右側のコンポジット内にあり、別のコンポジット内のファイルツリーは左側にあります。ユーザーはツリーからファイルをクリックし、順番に解読してブラウザーに表示します。

現在のところ、Mac 10.4.11でこのアプリケーションをテストしています。この奇妙な動作は、シェルウィンドウのサイズを変更した場合にのみ発生します。コンポジットとブラウザウィジェット自体は適切にサイズ変更されます。私はオブジェクトの境界/境界を見ることができます。問題は、ブラウザ内にあるはずのイメージです(ほとんどの場合、表示されたイメージがブラウザの左上隅に固定されているかのように)。上から下に揃えられ、画像自体は正しいサイズですが、サイズ変更が完了した後に画像が移動します。最初に読み込んだときに画像が完全に整列されていることを意味しています。ファイルツリーが隠れていてブラウザ/コンポジットが完全なシェルを占めていて、ファイルツリーが復元されたときにうまく見えます。これが起こるのはサイズ変更中だけです。

何か意味があると思います。何か案は?

答えて

3

私はそれを理解しました。私が最初に(擬似コードで)持っていたものは次のとおりです。

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

webComposite.getParent()。layout();

私は、ファイルツリーを復元したのと同じ方法でブラウザとそのコンポジットをかなり復元する必要があることが分かります。上記のコードは、次のように置き換えられました。

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);

+0

うまくいけばうれしいです。私もこのようなバグを抱えていて、パック、レイアウト、再描画、およびランダムな場所に挿入された更新のランダムな組み合わせでそれらを修正しました。 –

+0

こんにちは@JohnHenckelでも私は似たような問題があります。私はこれについて質問を掲示した。あなたはチェックできますか? http://stackoverflow.com/questions/30504741/swt-browser-not-rendering-until-shell-resize-on-mac – Teja