Mihtril.redraw方法无法在Electron事件处理程序

时间:2017-12-06 15:54:41

标签: javascript electron mithril.js

我尝试在Electron应用中重新创建本机Windows控件和应用程序标题栏。我已创建了包含在主项目中的单独组件并使用它们。

以下代码用于最大化/取消最大化窗口控件。单击图标本身会触发重绘,图标从最大化变为非最大化,反之亦然。我希望当窗口最大化/未通过其他方式最大化时,图标也会改变(双击标题栏,将窗口拖动到屏幕顶部......)。

为此,我使用了'maximize'本身上的'unmaximize'Electron.BrowserWindow个事件,但是从这些处理程序调用{​​{1}}似乎并不合适实际上触发重绘。

这是我的代码:

m.redraw

我无法在主进程或渲染器进程中看到任何错误。

到目前为止,我已尝试通过'use strict'; const electron = require('electron'); const m = require('mithril'); const browserWindow = electron.remote.getCurrentWindow(); browserWindow.on('maximize', () => { m.redraw(); }); browserWindow.on('unmaximize', () => { m.redraw(); }); const Maximize = { view: vnode => m('.app-window-controls-button.app-window-controls-button-maximize', { tabindex: -1, onclick: e => { e.preventDefault(); if (browserWindow.isMaximized()) { browserWindow.unmaximize(); } else { browserWindow.maximize(); } } }, [ browserWindow.isMaximized() ? 'unmaximize icon' : 'maximize icon' ] ) }; module.exports = Maximize; redraw上的方法在vnode.state中尝试使用@ {1}}上的属性跟踪requestAnimationFrame窗口最大化状态而不是直接从vnode.state读取它,似乎没有任何效果。

Electron v1.7.9;秘银1.1.5。

0 个答案:

没有答案
相关问题