Оболочка Swt / диалог силы фокусировки - PullRequest
0 голосов
/ 14 марта 2019

Я открываю диалог Swt. Но перед моим приложением плагины загружаются, и открывается диалоговое окно, если пользователь нажимает на какое-то другое фоновое приложение, тогда в этом случае основное внимание не уделяется моему недавно созданному диалогу. Это можно заметить, потому что заголовок моего диалога неактивен, и если я что-то наберу с клавиатуры, он будет захвачен в другом открытом приложении. Мой вопрос заключается в том, как вернуть фокус к моей оболочке / диалогу Swt, как только он откроется.

Спасибо!

1 Ответ

2 голосов
/ 15 марта 2019

Вы не можете форсировать фокус виджета, так как он управляется ОС, но вы можете запросить его:

Вызов метода ниже forceActive Вы можете передать диалог shell

public static void forceActive(final Shell shell) {
    shell.getDisplay().asyncExec(new Runnable() {
        public void run() {
            if (shell != null && !shell.isDisposed()) {
                shell.forceActive();
            }
        }
    });
}
...