瀏覽代碼

enhance: window title bar

Konstantinos Kaloutas 2 年之前
父節點
當前提交
d7f8eda846

+ 22 - 0
e2e-tests/window.spec.ts

@@ -0,0 +1,22 @@
+import { expect } from '@playwright/test'
+import { test } from './fixtures'
+
+import { IsMac } from './utils';
+
+if (!IsMac) {
+    test('Window should not be maximized on first launch', async ({ page }) => {
+        await expect(page.locator('.window-controls .maximize-toggle.maximize')).toHaveCount(1)
+    })
+
+    test('Window should be maximized and icon should change on maximize-toggle click', async ({ page }) => {
+        await page.click('.window-controls .maximize-toggle')
+
+        await expect(page.locator('.window-controls .maximize-toggle.restore')).toHaveCount(1)
+    })
+
+    test('Window should be restored and icon should change on maximize-toggle click', async ({ page }) => {
+        await page.click('.window-controls .maximize-toggle')
+
+        await expect(page.locator('.window-controls .maximize-toggle.maximize')).toHaveCount(1)
+    })
+}

+ 1 - 1
src/electron/electron/handler.cljs

@@ -602,7 +602,7 @@
 (defmethod handle :window-minimize [^js win]
   (.minimize win))
 
-(defmethod handle :window-maximize-restore [^js win]
+(defmethod handle :window-toggle-maximized [^js win]
   (if (.isMaximized win)
     (.unmaximize win)
     (.maximize win)))

+ 6 - 4
src/electron/electron/window.cljs

@@ -26,10 +26,11 @@
    (create-main-window! url nil))
   ([url opts]
    (let [win-state (windowStateKeeper (clj->js {:defaultWidth 980 :defaultHeight 700}))
+         native-titlebar? (cfgs/get-item :window/native-titlebar?)
          win-opts  (cond->
                      {:width                (.-width win-state)
                       :height               (.-height win-state)
-                      :frame                (not win32?)
+                      :frame                (or mac? native-titlebar?)
                       :titleBarStyle        "hiddenInset"
                       :trafficLightPosition {:x 16 :y 16}
                       :autoHideMenuBar      (not mac?)
@@ -182,14 +183,15 @@
       (doto web-contents
         (.on "will-navigate" will-navigate-handler)
         (.on "did-start-navigation" #(.send web-contents "persist-zoom-level" (.getZoomLevel web-contents)))
-        (.on "page-title-updated" #(.send web-contents "restore-zoom-level"))
+        (.on "page-title-updated" #(do (.send web-contents "maximize" (.isMaximized win))
+                                       (.send web-contents "restore-zoom-level")))
         (.setWindowOpenHandler window-open-handler))
 
       (doto win
         (.on "enter-full-screen" #(.send web-contents "full-screen" "enter"))
         (.on "leave-full-screen" #(.send web-contents "full-screen" "leave"))
-        (.on "maximize" #(if win32? (.send web-contents "maximize" true) ()))
-        (.on "unmaximize" #(if win32? (.send web-contents "maximize" false) ())))
+        (.on "maximize" #(.send web-contents "maximize" true))
+        (.on "unmaximize" #(.send web-contents "maximize" false)))
 
       ;; clear
       (fn []

+ 9 - 7
src/main/frontend/components/container.cljs

@@ -12,7 +12,6 @@
             [frontend.components.svg :as svg]
             [frontend.components.theme :as theme]
             [frontend.components.widgets :as widgets]
-            [frontend.components.win32-title-bar :as win32-title-bar]
             [frontend.config :as config]
             [frontend.context.i18n :refer [t]]
             [frontend.db :as db]
@@ -34,8 +33,9 @@
             [frontend.modules.shortcut.data-helper :as shortcut-dh]
             [frontend.state :as state]
             [frontend.ui :as ui]
-            [frontend.util :as util :refer [win32?]]
+            [frontend.util :as util]
             [frontend.util.cursor :as cursor]
+            [frontend.components.window-controls :as window-controls]
             [goog.dom :as gdom]
             [goog.object :as gobj]
             [logseq.common.path :as path]
@@ -726,12 +726,14 @@
         onboarding-state (state/sub :file-sync/onboarding-state)
         right-sidebar-blocks (state/sub-right-sidebar-blocks)
         route-name (get-in route-match [:data :name])
-        fullscreen? (state/sub :win32-title-bar/window-is-fullscreen?)
         margin-less-pages? (boolean (#{:graph :whiteboard} route-name))
         db-restoring? (state/sub :db/restoring?)
         indexeddb-support? (state/sub :indexeddb/support?)
         page? (= :page route-name)
         home? (= :home route-name)
+        fullscreen? (state/sub :electron/window-fullscreen?)
+        native-titlebar? (state/sub [:electron/user-cfgs :window/native-titlebar?])
+        window-controls? (and (util/electron?) (not util/mac?) (not fullscreen?) (not native-titlebar?))
         edit? (:editor/editing? @state/state)
         default-home (get-default-home-if-valid)
         logged? (user-handler/logged-in?)
@@ -761,6 +763,7 @@
       {:class (util/classnames [{:ls-left-sidebar-open    left-sidebar-open?
                                  :ls-right-sidebar-open   sidebar-open?
                                  :ls-wide-mode            wide-mode?
+                                 :ls-window-controls      window-controls?
                                  :ls-fold-button-on-right fold-button-on-right?
                                  :ls-hl-colored           ls-block-hl-colored?}])}
 
@@ -774,10 +777,6 @@
        [:div#left-container
         {:class (if (state/sub :ui/sidebar-open?) "overflow-hidden" "w-full")}
 
-        (if win32?
-          (if fullscreen?
-            ()
-            (win32-title-bar/container)) ())
 
         (header/header {:open-fn        open-fn
                         :light?         light?
@@ -803,6 +802,9 @@
                :show-action-bar?    show-action-bar?
                :show-recording-bar? show-recording-bar?})]
 
+       (when window-controls?
+         (window-controls/container))
+
        (right-sidebar/sidebar)
 
        [:div#app-single-container]]

+ 17 - 2
src/main/frontend/components/container.css

@@ -451,6 +451,20 @@
   }
 }
 
+.ls-window-controls {
+  &.ls-right-sidebar-open {
+    .cp__right-sidebar-topbar {
+      margin-right: 144px;
+    }
+  }
+
+  &:not(.ls-right-sidebar-open) {
+    .cp__header > .r {
+      margin-right: 144px;
+    }
+  }
+}
+
 .ls-wide-mode {
   .cp__sidebar-main-content {
     max-width: var(--ls-main-content-max-width-wide);
@@ -538,7 +552,6 @@ html[data-theme='dark'] {
   }
 
   &.open {
-    width: var(--ls-right-sidebar-width);
     max-width: 60vw;
   }
 
@@ -574,7 +587,9 @@ html[data-theme='dark'] {
     user-select: none;
     -webkit-app-region: drag;
 
-    a, svg {
+    a,
+    svg,
+    button {
       -webkit-app-region: no-drag;
     }
   }

+ 1 - 2
src/main/frontend/components/header.cljs

@@ -269,7 +269,6 @@
                       :current-repo current-repo
                       :default-home default-home})
 
-      (when (not (state/sub :ui/sidebar-open?))
-        (sidebar/toggle))
+      (sidebar/toggle)
 
       (updater-tips-new-version t)]]))

+ 15 - 12
src/main/frontend/components/right_sidebar.cljs

@@ -220,6 +220,7 @@
 (rum/defc sidebar-resizer
   [sidebar-open? sidebar-id handler-position]
   (let [el-ref (rum/use-ref nil)
+        min-px-width 144 ; Custom window controls width
         min-ratio 0.1
         max-ratio 0.7
         keyboard-step 5
@@ -227,12 +228,12 @@
         remove-resizing-class (fn []
                                 (.. js/document.documentElement -classList (remove "is-resizing-buf"))
                                 (reset! ui-handler/*right-sidebar-resized-at (js/Date.now)))
-        set-width! (fn [ratio element]
-                     (when (and el-ref element)
-                       (let [width (str (* ratio 100) "%")]
-                         (#(.setProperty (.-style element) "width" width)
-                          (.setAttribute (rum/deref el-ref) "aria-valuenow" ratio)
-                          (ui-handler/persist-right-sidebar-width!)))))]
+        set-width! (fn [ratio]
+                     (when el-ref
+                       (let [value (* ratio 100)
+                             width (str value "%")]
+                         (.setAttribute (rum/deref el-ref) "aria-valuenow" value)
+                         (ui-handler/persist-right-sidebar-width! width))))]
     (rum/use-effect!
      (fn []
        (when-let [el (and (fn? js/window.interact) (rum/deref el-ref))]
@@ -243,6 +244,7 @@
                 {:move
                  (fn [^js/MouseEvent e]
                    (let [width js/document.documentElement.clientWidth
+                         min-ratio (max min-ratio (/ min-px-width width))
                          sidebar-el (js/document.getElementById sidebar-id)
                          offset (.-pageX e)
                          ratio (.toFixed (/ offset width) 6)
@@ -259,7 +261,7 @@
                          (and (< ratio max-ratio) sidebar-el)
                          (when sidebar-el
                            (#(.. js/document.documentElement -classList (remove cursor-class))
-                            (set-width! ratio sidebar-el)))
+                            (set-width! ratio)))
                          :else
                          #(.. js/document.documentElement -classList (remove cursor-class)))
                        (when (> ratio (/ min-ratio 2)) (state/open-right-sidebar!)))))}}))
@@ -269,6 +271,7 @@
              (.on "keydown" (fn [e]
                               (when-let [sidebar-el (js/document.getElementById sidebar-id)]
                                 (let [width js/document.documentElement.clientWidth
+                                      min-ratio (max min-ratio (/ min-px-width width))
                                       keyboard-step (case (.-code e)
                                                       "ArrowLeft" (- keyboard-step)
                                                       "ArrowRight" keyboard-step
@@ -278,7 +281,7 @@
                                       ratio (if (= handler-position :west) (- 1 ratio) ratio)]
                                   (when (and (> ratio min-ratio) (< ratio max-ratio) (not (zero? keyboard-step)))
                                     ((add-resizing-class)
-                                     (set-width! ratio sidebar-el)))))))
+                                     (set-width! ratio)))))))
              (.on "keyup" remove-resizing-class)))
        #())
      [])
@@ -333,9 +336,7 @@
         (when config/dev? [:div.text-sm
                            [:button.button.cp__right-sidebar-settings-btn {:on-click (fn [_e]
                                                                                        (state/sidebar-add-block! repo "history" :history))}
-                            (t :right-side-bar/history)]])]
-
-       (toggle)]
+                            (t :right-side-bar/history)]])]]
 
       [:.sidebar-item-list.flex-1.scrollbar-spacing.flex.flex-col.gap-2
        (if @*anim-finished?
@@ -353,9 +354,11 @@
                  [[(state/get-current-repo) "contents" :contents nil]]
                  blocks)
         sidebar-open? (state/sub :ui/sidebar-open?)
+        width (state/sub :ui/sidebar-width)
         repo (state/sub :git/current-repo)]
     [:div#right-sidebar.cp__right-sidebar.h-screen
-     {:class (if sidebar-open? "open" "closed")}
+     {:class (if sidebar-open? "open" "closed")
+      :style {:width width}}
      (sidebar-resizer sidebar-open? "right-sidebar" :west)
      (when sidebar-open?
        (sidebar-inner repo t blocks))]))

+ 14 - 0
src/main/frontend/components/settings.cljs

@@ -610,6 +610,19 @@
                 (fn [_] (conversion-component/files-breaking-changed))
                 {:id :filename-format-panel :center? true})}))
 
+(rum/defcs native-titlebar-row < rum/reactive
+  [state t]
+  (let [enabled? (state/sub [:electron/user-cfgs :window/native-titlebar?])]
+    (toggle
+     "native-titlebar"
+     (t :settings-page/native-titlebar)
+     enabled?
+     #(when (js/confirm (t :relaunch-confirm-to-work))
+        (state/set-state! [:electron/user-cfgs :window/native-titlebar?] (not enabled?))
+        (ipc/ipc :userAppCfgs :window/native-titlebar? (not enabled?))
+        (js/logseq.api.relaunch))
+     [:span.text-sm.opacity-50 (t :settings-page/native-titlebar-desc)])))
+
 (rum/defcs settings-general < rum/reactive
   [_state current-repo]
   (let [preferred-language (state/sub [:preferred-language])
@@ -621,6 +634,7 @@
      (version-row t version)
      (language-row t preferred-language)
      (theme-modes-row t switch-theme system-theme? dark?)
+     (when (and (util/electron?) (not util/mac?)) (native-titlebar-row t))
      (when (config/global-config-enabled?) (edit-global-config-edn))
      (when current-repo (edit-config-edn))
      (when current-repo (edit-custom-css))

+ 9 - 10
src/main/frontend/components/svg.cljs

@@ -387,29 +387,28 @@
     {:d
      "M256 0C114.6 0 0 114.6 0 256c0 141.4 114.6 256 256 256s256-114.6 256-256C512 114.6 397.4 0 256 0zM352 328c0 13.2-10.8 24-24 24h-144C170.8 352 160 341.2 160 328v-144C160 170.8 170.8 160 184 160h144C341.2 160 352 170.8 352 184V328z"}]])
 
-;; the icons for Win32 title bar, from:
-;; https://github.com/microsoft/vscode-codicons
-(defn chrome-minimize
-  ([] (chrome-minimize 16))
+;; Titlebar icons from https://github.com/microsoft/vscode-codicons
+(defn window-minimize
+  ([] (window-minimize 16))
   ([size]
    [:svg.icon {:width size :height size :viewBox "0 0 16 16" :fill "currentColor"}
     [:path {:d "M14 8v1H3V8h11z"}]]))
 
-(defn chrome-maximize
-  ([] (chrome-maximize 16))
+(defn window-maximize
+  ([] (window-maximize 16))
   ([size]
    [:svg.icon {:width size :height size :viewBox "0 0 16 16" :fill "currentColor"}
     [:path {:d "M3 3v10h10V3H3zm9 9H4V4h8v8z"}]]))
 
-(defn chrome-restore
-  ([] (chrome-restore 16))
+(defn window-restore
+  ([] (window-restore 16))
   ([size]
    [:svg.icon {:width size :height size :viewBox "0 0 16 16" :fill "currentColor"}
     [:path {:d "M3 5v9h9V5H3zm8 8H4V6h7v7z"}]
     [:path {:fill-rule "evenodd" :clip-rule "evenodd" :d "M5 5h1V4h7v7h-1v1h2V3H5v2z"}]]))
 
-(defn chrome-close
-  ([] (chrome-close 16))
+(defn window-close
+  ([] (window-close 16))
   ([size]
    [:svg.icon {:width size :height size :viewBox "0 0 16 16" :fill "currentColor"}
     [:path {:fill-rule "evenodd" :clip-rule "evenodd" :d "M7.116 8l-4.558 4.558.884.884L8 8.884l4.558 4.558.884-.884L8.884 8l4.558-4.558-.884-.884L8 7.116 3.442 2.558l-.884.884L7.116 8z"}]]))

+ 0 - 2
src/main/frontend/components/theme.css

@@ -8,8 +8,6 @@
   --ls-z-index-level-3: 999;
   --ls-z-index-level-4: 9999;
   --ls-z-index-level-5: 99999;
-
-  --ls-right-sidebar-width: 40%;
 }
 
 html {

+ 0 - 50
src/main/frontend/components/win32_title_bar.cljs

@@ -1,50 +0,0 @@
-(ns frontend.components.win32-title-bar
-  (:require [electron.ipc :as ipc]
-            [frontend.components.svg :as svg]
-            [frontend.state :as state]
-            [goog.string :as gstring]
-            [rum.core :as rum]))
-
-(defn minimize
-  []
-  (ipc/ipc "window-minimize"))
-
-(defn max-restore
-  []
-  (ipc/ipc "window-maximize-restore"))
-
-(defn close
-  []
-  (ipc/ipc "window-close"))
-
-(rum/defc container < rum/reactive
-  []
-  (let [maximized?  (state/sub :win32-title-bar/window-is-maximized?)]
-    [:div.cp__win32-title-bar#win32-title-bar
-     {}
-     [:div.left-side
-      {}
-      [:div.logo
-       {}
-       (svg/logo)]]
-     [:div.middle
-      {}
-      [:span#win32-title-bar-page-title
-       {}
-       (.-title js/document)]
-      [:span#win32-title-bar-logseq-text
-       {}
-       (gstring/unescapeEntities "&nbsp;") "-" (gstring/unescapeEntities "&nbsp;") "Logseq"]]
-     [:div.right-side
-      {}
-      [:div.minimize
-       {:on-click minimize}
-       (svg/chrome-minimize)]
-      [:div.max-restore
-       {:on-click max-restore}
-       (if maximized?
-         (svg/chrome-restore)
-         (svg/chrome-maximize))]
-      [:div.close
-       {:on-click close}
-       (svg/chrome-close)]]]))

+ 0 - 86
src/main/frontend/components/win32_title_bar.css

@@ -1,86 +0,0 @@
-.cp__win32-title-bar:not(:fullscreen) {
-  z-index: var(--ls-z-index-level-5);
-  position: fixed;
-  left: 0;
-  right: 0;
-  top: 0;
-  height: var(--ls-win32-title-bar-height);
-  background-color: var(--ls-secondary-background-color);
-  display: flex;
-  justify-content: space-between;
-  user-select: none;
-  -webkit-app-region: drag;
-
-  >.left-side {
-    display: flex;
-    align-items: center;
-    margin-left: 0.5rem;
-    margin-right: 0.5rem;
-    width: 28px;
-
-    >.logo {
-      width: 24px;
-      display: flex;
-      align-items: center;
-      justify-content: center;
-      padding-left: 4px;
-    }
-  }
-
-  >.middle {
-    display: flex;
-    align-items: center;
-    flex-wrap: nowrap;
-    overflow: hidden;
-
-    >span#win32-title-bar-page-title {
-      white-space: nowrap;
-      overflow: hidden;
-      text-overflow: ellipsis;
-      min-width: 0;
-    }
-
-    >span#win32-title-bar-logseq-text {
-      flex-shrink: 0;
-      flex-wrap: nowrap;
-    }
-  }
-
-  >.right-side {
-    display: flex;
-    width: 138px;
-    -webkit-app-region: no-drag;
-
-    >* {
-      color: var(--ls-primary-text-color);
-      width: 100%;
-      display: flex;
-      justify-content: center;
-      align-items: center;
-
-      &:hover {
-        background: var(--ls-tertiary-background-color);
-      }
-
-      &:active {
-        background: var(--ls-secondary-background-color);
-      }
-    }
-
-    >.close {
-      &:hover {
-        color: #fff;
-        background: #c42b1c;
-      }
-
-      &:active {
-        color: #fff;
-        background: #b3271c;
-      }
-    }
-  }
-}
-
-.is-win32.is-electron:not(.is-fullscreen) {
-  --ls-win32-title-bar-height: 36px;
-}

+ 40 - 0
src/main/frontend/components/window_controls.cljs

@@ -0,0 +1,40 @@
+(ns frontend.components.window-controls
+  (:require [electron.ipc :as ipc]
+            [frontend.components.svg :as svg]
+            [frontend.context.i18n :refer [t]]
+            [frontend.state :as state]
+            [rum.core :as rum]))
+
+(defn minimize
+  []
+  (ipc/ipc "window-minimize"))
+
+(defn toggle-maximized
+  []
+  (ipc/ipc "window-toggle-maximized"))
+
+(defn close
+  []
+  (ipc/ipc "window-close"))
+
+(rum/defc container < rum/reactive
+  []
+  (let [maximized?  (state/sub :electron/window-maximized?)]
+    [:div.window-controls.flex
+     [:button.button.icon.minimize
+      {:title (t :window/minimize)
+       :on-click minimize}
+      (svg/window-minimize)]
+
+     [:button.button.icon.maximize-toggle
+      {:title (t (if maximized? :window/restore :window/maximize))
+       :class (if maximized? "restore" "maximize")
+       :on-click toggle-maximized}
+      (if maximized?
+        (svg/window-restore)
+        (svg/window-maximize))]
+
+     [:button.button.icon.close
+      {:title (t :window/close)
+       :on-click close}
+      (svg/window-close)]]))

+ 14 - 0
src/main/frontend/components/window_controls.css

@@ -0,0 +1,14 @@
+.window-controls {
+  position: fixed;
+  top: 0;
+  right: 0;
+  z-index: 10;
+
+  .button {
+    -webkit-app-region: no-drag;
+    background: transparent;
+    border-radius: 0;
+    width: 48px;
+    height: 48px;
+  }
+}

+ 6 - 0
src/main/frontend/dicts/en.cljc

@@ -232,6 +232,8 @@
    :settings-page/login-prompt "To access new features before anyone else you must be an Open Collective Sponsor or Backer of Logseq and therefore log in first."
    :settings-page/sync "Sync"
    :settings-page/enable-whiteboards "Whiteboards"
+   :settings-page/native-titlebar "Native title bar"
+   :settings-page/native-titlebar-desc "Enables the native window title bar on Windows and Linux, and hides the custom window controls."
    :yes "Yes"
 
    :submit "Submit"
@@ -388,6 +390,10 @@
    :shortcut.category/toggle "Toggle"
    :shortcut.category/whiteboard "Whiteboard"
    :shortcut.category/others "Others"
+   :window/minimize "Minimize"
+   :window/maximize "Maximize"
+   :window/restore "Restore"
+   :window/close "Close"
 
    ;; Commands are nested for now to stay in sync with the shortcuts system.
    ;; Other languages should not nest keys under :commands

+ 1 - 1
src/main/frontend/handler/route.cljs

@@ -98,7 +98,7 @@
   [name path-params]
   (case name
     :home
-    (t :home)
+    "Logseq"
     :whiteboards
     (t :whiteboards)
     :repos

+ 4 - 12
src/main/frontend/handler/ui.cljs

@@ -17,26 +17,18 @@
             [promesa.core :as p]
             [logseq.common.path :as path]))
 
-(defn- get-css-var-value
-  [var-name]
-  (.getPropertyValue (js/getComputedStyle (.-documentElement js/document)) var-name))
-
 ;; sidebars
 (def *right-sidebar-resized-at (atom (js/Date.now)))
 
-(defn- get-right-sidebar-width
-  []
-  (or (.. (js/document.getElementById "right-sidebar") -style -width)
-      (get-css-var-value "--right-sidebar-width")))
-
 (defn persist-right-sidebar-width!
-  []
-  (storage/set "ls-right-sidebar-width" (get-right-sidebar-width)))
+  [width]
+  (state/set-state! :ui/sidebar-width width)
+  (storage/set "ls-right-sidebar-width" width))
 
 (defn restore-right-sidebar-width!
   []
   (when-let [width (storage/get "ls-right-sidebar-width")]
-    (.setProperty (.-style (js/document.getElementById "right-sidebar")) "width" width)))
+    (state/set-state! :ui/sidebar-width width)))
 
 (defn close-left-sidebar!
   []

+ 1 - 0
src/main/frontend/page.cljs

@@ -88,6 +88,7 @@
   {:did-mount    (fn [state]
                    (state/set-root-component! (:rum/react-component state))
                    (state/setup-electron-updater!)
+                   (state/load-app-user-cfgs)
                    (ui/inject-document-devices-envs!)
                    (ui/inject-dynamic-style-node!)
                    (quick-tour/init)

+ 4 - 4
src/main/frontend/state.cljs

@@ -76,6 +76,7 @@
      :ui/fullscreen?                        false
      :ui/settings-open?                     false
      :ui/sidebar-open?                      false
+     :ui/sidebar-width                      "40%"
      :ui/left-sidebar-open?                 (boolean (storage/get "ls-left-sidebar-open?"))
      :ui/theme                              (or (storage/get :ui/theme) "light")
      :ui/system-theme?                      ((fnil identity (or util/mac? util/win32? false)) (storage/get :ui/system-theme?))
@@ -160,6 +161,8 @@
      :electron/updater                      {}
      :electron/user-cfgs                    nil
      :electron/server                       nil
+     :electron/window-maximized?            false
+     :electron/window-fullscreen?           false
 
      ;; assets
      :assets/alias-enabled?                 (or (storage/get :assets/alias-enabled?) false)
@@ -261,7 +264,7 @@
      ;;                :file-sync/last-synced-at {}}
      :file-sync/graph-state                 {:current-graph-uuid nil}
                                              ;; graph-uuid -> ...
-                                             
+
      :user/info                             {:UserGroups (storage/get :user-groups)}
      :encryption/graph-parsing?             false
 
@@ -279,9 +282,6 @@
      :whiteboard/pending-tx-data            {}
      :history/page-only-mode?               false
 
-     ;; win32 title bar
-     :win32-title-bar/window-is-maximized?  false
-     :win32-title-bar/window-is-fullscreen? false
      ;; db tx-id -> editor cursor
      :history/tx->editor-cursor             {}})))
 

+ 2 - 2
src/main/frontend/ui.cljs

@@ -368,8 +368,8 @@
               [["persist-zoom-level" #(storage/set :zoom-level %)]
                ["restore-zoom-level" #(when-let [zoom-level (storage/get :zoom-level)] (js/window.apis.setZoomLevel zoom-level))]
                ["full-screen" #((js-invoke cl (if (= % "enter") "add" "remove") "is-fullscreen")
-                                (state/set-state! :win32-title-bar/window-is-fullscreen? (if (= % "enter") true false)))]
-               ["maximize" #(state/set-state! :win32-title-bar/window-is-maximized? %)]]]
+                                (state/set-state! :electron/window-fullscreen? (= % "enter")))]
+               ["maximize" #(state/set-state! :electron/window-maximized? %)]]]
         (.on js/window.apis event function))
 
       (p/then (ipc/ipc :getAppBaseInfo) #(let [{:keys [isFullScreen]} (js->clj % :keywordize-keys true)]