diff --git a/src/preload.js b/src/preload.js index 0862ec67..85328a14 100644 --- a/src/preload.js +++ b/src/preload.js @@ -14,7 +14,150 @@ See the License for the specific language governing permissions and limitations under the License. */ -const { ipcRenderer } = require('electron'); +const { ipcRenderer, desktopCapturer } = require('electron'); // expose ipcRenderer to the renderer process window.ipcRenderer = ipcRenderer; + +// This is a fix for screen-sharing in Electron +window.navigator.mediaDevices.getDisplayMedia = () => { + return new Promise(async (resolve, reject) => { + try { + const sources = await desktopCapturer.getSources({ + types: ["screen", "window"], + }); + const screens = sources.filter((source) => { + return source.id.startsWith("screen"); + }); + const windows = sources.filter((source) => { + return source.id.startsWith("window"); + }); + console.log(screens); + console.log(windows); + + const selectionElem = document.createElement("div"); + selectionElem.classList = "desktop-capturer-selection"; + selectionElem.innerHTML = ` +