diff --git a/resources/js/preload.js b/resources/js/preload.js index c4c173e25f0..5724f98aac8 100644 --- a/resources/js/preload.js +++ b/resources/js/preload.js @@ -1,6 +1,6 @@ const fs = require('fs') const path = require('path') -const { ipcRenderer, contextBridge, shell, clipboard, BrowserWindow } = require('electron') +const { ipcRenderer, contextBridge, shell, clipboard } = require('electron') const IS_MAC = process.platform === 'darwin' const IS_WIN32 = process.platform === 'win32' @@ -11,7 +11,7 @@ function getFilePathFromClipboard () { return rawFilePath.replace(new RegExp(String.fromCharCode(0), 'g'), '') } else if (IS_MAC) { return clipboard.read('public.file-url').replace('file://', '') - } else{ + } else { return clipboard.readText() } } diff --git a/src/electron/electron/core.cljs b/src/electron/electron/core.cljs index f6179acd0a3..6cc4bef6391 100644 --- a/src/electron/electron/core.cljs +++ b/src/electron/electron/core.cljs @@ -54,7 +54,8 @@ (defn setup-app-manager! [^js win] (let [toggle-win-channel "toggle-max-or-min-active-win" - call-app-channel "call-application"] + call-app-channel "call-application" + web-contents (. win -webContents)] (doto ipcMain (.handle toggle-win-channel (fn [_ toggle-min?] @@ -72,11 +73,17 @@ (js-invoke app type args) (catch js/Error e (js/console.error e)))))) - (.. win -webContents (on "new-window" - (fn [e url] - (.. log (info "new-window" url)) - (open url) - (.preventDefault e)))) + + (.on web-contents "new-window" + (fn [e url] + (.. log (info "new-window" url)) + (open url) + (.preventDefault e))) + + (doto win + (.on "enter-full-screen" #(.send web-contents "full-screen" "enter")) + (.on "leave-full-screen" #(.send web-contents "full-screen" "leave"))) + #(do (.removeHandler ipcMain toggle-win-channel) (.removeHandler ipcMain call-app-channel)))) diff --git a/src/main/frontend/components/theme.css b/src/main/frontend/components/theme.css index 32eb2d1ef5c..1864ccdf6b5 100644 --- a/src/main/frontend/components/theme.css +++ b/src/main/frontend/components/theme.css @@ -127,6 +127,17 @@ html.is-electron { .cp__right-sidebar { top: 4rem; } + + &.is-fullscreen { + .cp__header { + padding-top: 0; + height: 2.6rem; + + &:before { + display: none; + } + } + } } #search { diff --git a/src/main/frontend/ui.cljs b/src/main/frontend/ui.cljs index 7cd29f9fd09..7627d8729bd 100644 --- a/src/main/frontend/ui.cljs +++ b/src/main/frontend/ui.cljs @@ -236,7 +236,9 @@ (if (util/electron?) (.add cl "is-electron")) (if (util/ios?) (.add cl "is-ios")) (if (util/mobile?) (.add cl "is-mobile")) - (if (util/safari?) (.add cl "is-safari")))) + (if (util/safari?) (.add cl "is-safari")) + (if (util/electron?) + (js/window.apis.on "full-screen" #(js-invoke cl (if (= % "enter") "add" "remove") "is-fullscreen"))))) (defn inject-dynamic-style-node! []