31 lines
1.1 KiB
JavaScript
31 lines
1.1 KiB
JavaScript
'use strict'
|
|
|
|
if (process.platform === 'linux' && process.type === 'renderer') {
|
|
// On Linux we could not access clipboard in renderer process.
|
|
const { getRemoteForUsage } = require('@electron/internal/renderer/remote')
|
|
module.exports = getRemoteForUsage('clipboard').clipboard
|
|
} else {
|
|
const clipboard = process.atomBinding('clipboard')
|
|
|
|
// Read/write to find pasteboard over IPC since only main process is notified
|
|
// of changes
|
|
if (process.platform === 'darwin' && process.type === 'renderer') {
|
|
const ipcRenderer = require('@electron/internal/renderer/ipc-renderer-internal')
|
|
const errorUtils = require('@electron/internal/common/error-utils')
|
|
|
|
const invoke = function (command, ...args) {
|
|
const [ error, result ] = ipcRenderer.sendSync(command, ...args)
|
|
|
|
if (error) {
|
|
throw errorUtils.deserialize(error)
|
|
} else {
|
|
return result
|
|
}
|
|
}
|
|
|
|
clipboard.readFindText = (...args) => invoke('ELECTRON_BROWSER_CLIPBOARD_READ_FIND_TEXT', ...args)
|
|
clipboard.writeFindText = (...args) => invoke('ELECTRON_BROWSER_CLIPBOARD_WRITE_FIND_TEXT', ...args)
|
|
}
|
|
|
|
module.exports = clipboard
|
|
}
|