为什么在主进程和渲染进程中调用的window.maximize()与macOS上的动画不同?

时间:2019-04-18 07:23:35

标签: javascript macos animation electron

当我使用window最大化渲染过程中的remote.getCurrentWindow().maximize()时,window max的动画不流畅,因为我使用ipcRenderer向主过程发送消息到window.maximize()

在MacOS 10.14.4和电子版4.1.4上。

document.getElementById('maxrender').addEventListener('click', () => {
  // the animation is not smooth
  if (currentWindow.isMaximized()) {
    currentWindow.unmaximize();
  } else {
      currentWindow.maximize();
  }
})
document.getElementById('maxmain').addEventListener('click', () => {
  // the app will receive this message and call the same function
  // the animation is smooth
  ipc.send('window-max')
})

单击“窗口最大”和“ ipc最大”,动画的平滑度完全不同

1 个答案:

答案 0 :(得分:0)

我创建了一个关于电子社区的问题#17858

简单来说,remote调用是synchronous,它将阻塞几个ms的渲染过程。因此,动画无法像通过asynchronous ipcRenderer进行消息传递一样平滑。