Электронное приложение: как сделать dialog.showOpenDialog модальным - PullRequest
0 голосов
/ 31 августа 2018

В моем небольшом приложении Electron у меня есть пара кнопок, позволяющих пользователю просматривать папки, которые будут использоваться для обработки, выполняемой приложением. Вызов, чтобы открыть диалоговое окно, чтобы сделать это, передает идентификатор главного окна браузера, так что диалог будет модальным, и это первоначально, казалось, работало. Кнопки на главном экране приложения выглядят отключенными. Однако, если заблокированные кнопки нажаты, при закрытии диалога эти щелчки выполняются. Это верно для всех кнопок на главном экране. Если я нажимаю на отключенную кнопку «Отмена», когда диалоговое окно показывает, что приложение закрывается при закрытии диалогового окна.

Мне кажется, что не должно быть возможности переключиться обратно к родителю модального диалога и "сохранить" клики.

В процессе рендеринга выполняется вызов dialog.showOpenDialog, возможно, это проблема?

Sid

Ответы [ 2 ]

0 голосов
/ 14 января 2019

В процессе рендеринга вам нужно использовать ссылку на окно браузера, а не ID. Вы можете получить ссылку в процессе рендеринга, используя: remote.getCurrentWindow(). Вы можете сделать звонок следующим образом. Пример специально для открытия нескольких файлов, должен быть настроен по мере необходимости, конечно:

const { remote } = window.require('electron')
const dialog = remote.dialog

dialog.showOpenDialog(
  remote.getCurrentWindow(),
  { properties: ['openFile', 'multiSelections'] }, 
  (filePaths?) => {
      // do your thing
    }
  )
0 голосов
/ 31 августа 2018

Не уверен, что происходило ранее, теперь я не могу воспроизвести проблему, поэтому я собираюсь отметить это для закрытия.

Извините за шум, Sid

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...