[英]Opening multiple windows in e4 locks previous windows
我正在使用E4和SWT構建應用程序。 對於按鈕單擊,有時會打開一個新窗口(shell)。 問題是當我打開一個新窗口時,我無法使用其他窗口,從某種意義上說,它已被鎖定。 除非我關閉最新窗口,否則無法訪問其他窗口。 這使得調試有點困難。 我不確定這是否是由e4模型或SWT框架引起的。 你能告訴我為什么會這樣,以及如何克服這個問題?
提前致謝。
我為我創建一個新的窗口(以前也遇到了這個問題MWindow
)並將其添加到一個角度探討( MPerspective
)。 如果這是你正在做的,那么你有兩個選擇:
將新窗口添加到應用程序( MApplication
)而不是透視圖
將標記IPresentationEngine.WINDOW_TOP_LEVEL
添加到新窗口。 (有關更多信息,請參閱: https : //bugs.eclipse.org/bugs/show_bug.cgi?id = 441251 )
(2)的附加信息:如果您還希望窗口最小化並在Windows任務欄中顯示圖標,則可以使用以下設置配置渲染器
MWindow window = modelService.createModelElement(MTrimmedWindow.class);
window.getTags().add(IPresentationEngine.WINDOW_TOP_LEVEL);
window.getPersistedState().put(IPresentationEngine.STYLE_OVERRIDE_KEY, "" + SWT.SHELL_TRIM);
我發現了什么問題。 shell創建錯誤,因為我使用的是APPLICATION_MODAL位:
shell = new Shell(Display.getCurrent(), SWT.TITLE | SWT.CLOSE | SWT.MAX | SWT.SHELL_TRIM | SWT.APPLICATION_MODAL | SWT.YES | SWT.NO);
它必須是PRIMARY_MODAL:
shell = new Shell(Display.getCurrent(), SWT.TITLE | SWT.CLOSE | SWT.MAX | SWT.SHELL_TRIM | SWT.PRIMARY_MODAL | SWT.YES | SWT.NO);
謝謝你的幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.