2009-05-29 2 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 (새 GridData (SWT.LEFT, SWT.TOP, true, true)));

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

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

webBrowser.setLayoutData (새 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