From a62ff26dff222406c07f9d14b7ef74631c9d3e91 Mon Sep 17 00:00:00 2001 From: Seohyun Lee <04seohyun@gmail.com> Date: Mon, 17 Aug 2020 09:47:56 +0900 Subject: [PATCH] Use mousepollingrate as maximum frame rate of displays --- index.js | 10 +++++++++- package-lock.json | 43 +++++++++++-------------------------------- package.json | 5 +++-- 3 files changed, 23 insertions(+), 35 deletions(-) diff --git a/index.js b/index.js index 047e76d..8cb879e 100644 --- a/index.js +++ b/index.js @@ -3,6 +3,7 @@ const os = require("os"); const eBrowserWindow = require("electron").BrowserWindow; const {nativeTheme, screen} = require("electron"); const supportedType = ['light', 'dark', 'appearance-based']; +const {getMonitorInfo} = require('display-info'); function isWindows10() { if (process.platform !== 'win32') return false; @@ -35,8 +36,15 @@ class vBrowserWindow extends eBrowserWindow { const win = new eBrowserWindow(props); vBrowserWindow._bindAndReplace(win, vBrowserWindow.setVibrancy); + let pollingRate = 0; + let monitorInfo = getMonitorInfo(); + + for (let i of monitorInfo) { + if (i.frameRate > pollingRate) pollingRate = i.frameRate; + } + if (!pollingRate) pollingRate = 60; + // Replace window moving behavior to fix mouse polling rate bug - const pollingRate = 144; win.on('will-move', (e) => { e.preventDefault() diff --git a/package-lock.json b/package-lock.json index e7f57d2..e7868f3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "electron-acrylic-window", - "version": "0.3.0", + "version": "0.3.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -322,6 +322,16 @@ "dev": true, "optional": true }, + "display-info": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/display-info/-/display-info-0.0.1.tgz", + "integrity": "sha512-3fFsaRFKVFULJDHNEadNbJ3ksczcPSuxE7I1GFmJ1BnochMUTRdATMX2klbqCkj9KuHdQSM9uBNiCYO2yjd0GQ==", + "requires": { + "bindings": "^1.5.0", + "node-addon-api": "^3.0.0", + "node-gyp": "^7.0.0" + } + }, "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", @@ -764,14 +774,6 @@ "escape-string-regexp": "^4.0.0" } }, - "mean-average": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mean-average/-/mean-average-1.0.0.tgz", - "integrity": "sha512-TNiFp0z6M9kmBSK10mZRA+Xzt9uDfZ9i+WaKn41RCiDFoKTI+cgQWZitPmjTgagdNF7HDxIxSaZko2k4oojaOw==", - "requires": { - "totalled": "^1.0.0" - } - }, "mime-db": { "version": "1.44.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", @@ -1023,14 +1025,6 @@ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" }, - "raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "requires": { - "performance-now": "^2.1.0" - } - }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -1045,16 +1039,6 @@ "util-deprecate": "~1.0.1" } }, - "refresh-rate": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/refresh-rate/-/refresh-rate-1.0.0.tgz", - "integrity": "sha512-NZodSkLFDnMbEsdAaLdfIdVLDmJokRoiYUOkawKn39qmNVU7dh+GpzUxsBEYmm6ner5luxNSRvi68absgJRMrA==", - "requires": { - "mean-average": "^1.0.0", - "performance-now": "^2.1.0", - "raf": "^3.4.1" - } - }, "request": { "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", @@ -1249,11 +1233,6 @@ "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", "dev": true }, - "totalled": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/totalled/-/totalled-1.0.0.tgz", - "integrity": "sha512-FDhKWt82tvUdza1Bln/mviG8jyHbrBL9kL0vgnV6GIesZKM/FKx3Rlt3nl8hew7dAnJ2RMX5eRszMsF7OHPiQQ==" - }, "tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", diff --git a/package.json b/package.json index fc0c0b8..9547b29 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron-acrylic-window", - "version": "0.3.1", + "version": "0.3.2", "description": "Add vibrancy effect for electron", "main": "index.js", "keywords": [ @@ -35,7 +35,8 @@ "dependencies": { "bindings": "^1.5.0", "node-gyp": "^7.0.0", - "node-addon-api": "^3.0.0" + "node-addon-api": "^3.0.0", + "display-info": "^0.0.1" }, "devDependencies": { "electron": "^9.1.1"