node-gtk
Version:
GNOME Gtk+ bindings for NodeJS
30 lines (23 loc) • 720 B
JavaScript
/*
* GLib-2.0.js
*/
const internal = require('../native.js')
exports.apply = (GLib) => {
GLib.MainLoop.prototype._run = GLib.MainLoop.prototype.run
GLib.MainLoop.prototype._quit = GLib.MainLoop.prototype.quit
GLib.MainLoop.prototype.run = function run() {
/* Run before we enter the loop otherwise pending microtasks
* are not run */
process._tickCallback()
const loopStack = internal.GetLoopStack()
loopStack.push(() => this.quit())
this._run()
if (this._userQuit)
loopStack.pop()
delete this._userQuit
}
GLib.MainLoop.prototype.quit = function quit() {
this._userQuit = true
this._quit()
}
}