如何订阅Atom编辑器中的“窗口移动”事件?

时间:2017-07-20 21:50:47

标签: electron atom-editor

我想订阅electron提供的窗口移动事件,但我不知道如何在atom包中对其进行编码。

当我阅读electron docs时,我发现了一个我认为与我想要的相似的例子:

const {BrowserWindow} = require('electron')
let win = new BrowserWindow()
win.on('move', (e) => {
  // . . .
})

但这似乎需要创建一个新的electron窗口,而我不知道如何在现有BrowserWindow窗口中获取当前atom

我也可以加入window.onresize中的atom事件,但没有window.onmove

最后,我找到了一种方法来获取atom docs中的窗口位置,但我不知道如果没有轮询,这将是多么有用。

1 个答案:

答案 0 :(得分:1)

首先,我们应该注意,根据official documentation,有两个事件,movemoved。后者仅被标记为MacOS。

为了侦听事件,需要获取当前窗口。在客户端,可以这样做

const electron = require('electron');
const currentWindow = electron.remote.getCurrentWindow();

currentWindow.on('move', function() {
    // Do move event action
});

在应用程序端没有远程控制,因此以这种方式获取窗口

const { BrowserWindow } = require('electron');
const currentWindow = BrowserWindow.getFocusedWindow();

currentWindow.on('move', function() {
    // Do move event action
});