2014-03-01 12:00:39 +00:00
|
|
|
# Redirect window.onerror to uncaughtException.
|
|
|
|
window.onerror = (error) ->
|
|
|
|
if global.process.listeners('uncaughtException').length > 0
|
|
|
|
global.process.emit 'uncaughtException', error
|
|
|
|
true
|
|
|
|
else
|
|
|
|
false
|
|
|
|
|
|
|
|
# Override default window.close, see:
|
|
|
|
# https://github.com/atom/atom-shell/issues/70
|
|
|
|
window.close = ->
|
|
|
|
require('remote').getCurrentWindow().close()
|
|
|
|
|
|
|
|
# Override default window.open.
|
|
|
|
window.open = (url, name, features) ->
|
|
|
|
options = {}
|
|
|
|
for feature in features.split ','
|
|
|
|
[name, value] = feature.split '='
|
|
|
|
options[name] =
|
|
|
|
if value is 'yes'
|
|
|
|
true
|
|
|
|
else if value is 'no'
|
|
|
|
false
|
|
|
|
else
|
|
|
|
value
|
|
|
|
|
|
|
|
options.x ?= options.left
|
|
|
|
options.y ?= options.top
|
|
|
|
options.title ?= name
|
|
|
|
options.width ?= 800
|
|
|
|
options.height ?= 600
|
|
|
|
|
|
|
|
BrowserWindow = require('remote').require 'browser-window'
|
|
|
|
browser = new BrowserWindow options
|
|
|
|
browser.loadUrl url
|
|
|
|
browser
|
2014-03-01 12:01:04 +00:00
|
|
|
|
|
|
|
# Use the dialog API to implement alert().
|
|
|
|
window.alert = (message, title='') ->
|
|
|
|
remote = require 'remote'
|
|
|
|
dialog = remote.require 'dialog'
|
|
|
|
buttons = ['OK']
|
|
|
|
dialog.showMessageBox remote.getCurrentWindow(), {message, title, buttons}
|
2014-03-01 12:03:49 +00:00
|
|
|
|
|
|
|
# And the confirm().
|
|
|
|
window.confirm = (message, title='') ->
|
|
|
|
remote = require 'remote'
|
|
|
|
dialog = remote.require 'dialog'
|
|
|
|
buttons = ['OK', 'Cancel']
|
|
|
|
not dialog.showMessageBox remote.getCurrentWindow(), {message, title, buttons}
|
2014-03-01 12:05:52 +00:00
|
|
|
|
|
|
|
# But we do not support prompt().
|
|
|
|
window.prompt = ->
|
|
|
|
throw new Error('prompt() is and will not be supported in atom-shell.')
|