1
0
Эх сурвалжийг харах

Merge branch 'master' into develop

oldj 3 жил өмнө
parent
commit
5dc0ce2bb5

+ 1 - 1
README.md

@@ -53,7 +53,7 @@ folder contains various configuration information.
 - This command may take several minutes to finish when you run it the first time, as it needs time
   to download dependent files. You can download the dependencies
   manually [here](https://github.com/electron/electron/releases),
-  or [Taobao mirror](https://npm.taobao.org/mirrors/electron/), then save the files to `~/.electron`
+  or [Taobao mirror](https://npmmirror.com/mirrors/electron/), then save the files to `~/.electron`
   . You can check the [Electron Docs](http://electron.atom.io/docs/) for more infomation.
 
 ```bash

+ 1 - 1
README_cn.md

@@ -48,7 +48,7 @@ SwitchHosts 的数据文件存储于 `~/.SwitchHosts` (Windows 下存储于用
 - 运行 `npm run build`
 - 运行 `npm run make`,如果一切顺利,可在 `./dist` 目录下找到打包后的文件
 - 首次运行可能需要花费一些时间,因为需要下载相关依赖文件。你也可以从 [这儿](https://github.com/electron/electron/releases)
-  或者 [淘宝镜像](https://npm.taobao.org/mirrors/electron/) 手动下载,并保存到 `~/.electron`
+  或者 [淘宝镜像](https://npmmirror.com/mirrors/electron/) 手动下载,并保存到 `~/.electron`
   目录下。更多信息可访问 [Electron 文档](http://electron.atom.io/docs/)。
 
 ```bash

+ 2 - 0
src/common/acknowledgements.ts

@@ -29,4 +29,6 @@ export default [
   { name: 'Stefan Berger', link: 'https://github.com/bergo' },
   { name: 'EmeryWan', link: 'https://github.com/EmeryWan' },
   { name: 'ClDaniel1', link: 'https://github.com/ClDaniel1' },
+  { name: 'moonheart', link: 'https://github.com/moonheart' },
+  { name: 'Wang Weitao', link: 'https://github.com/watonyweng' },
 ]

+ 1 - 0
src/common/default_configs.ts

@@ -10,6 +10,7 @@ const configs = {
   // UI
   left_panel_show: true,
   left_panel_width: 270,
+  use_system_window_frame: false,
 
   // preferences
   write_mode: null as WriteModeType,

+ 1 - 0
src/common/i18n/languages/de.ts

@@ -176,6 +176,7 @@
       'Möchten Sie uns helfen, SwitchHosts zu verbessern, indem Sie regelmäßig anonyme Nutzungsdaten übermitteln?',
     usage_data_title: 'Machen Sie SwitchHosts besser!',
     use_proxy: 'Proxy verwenden',
+    use_system_window_frame: 'Verwenden Sie den Systemfensterrahmen, ein Neustart der Anwendung ist erforderlich',
     view: 'Ansicht',
     where_is_my_data: 'Wo sind meine Daten gespeichert?',
     where_is_my_hosts: 'Wo ist meine Hosts-Datei?',

+ 1 - 0
src/common/i18n/languages/en.ts

@@ -176,6 +176,7 @@ export default {
     'Would you like to help us improve SwitchHosts by periodically submitting anonymous usage data?',
   usage_data_title: 'Make SwitchHosts better!',
   use_proxy: 'Use proxy',
+  use_system_window_frame: 'Use system window frame, application restart is required',
   view: 'View',
   where_is_my_data: 'Where is my data stored?',
   where_is_my_hosts: 'Where is my hosts file?',

+ 1 - 0
src/common/i18n/languages/fr.ts

@@ -177,6 +177,7 @@ export default {
     "Voulez-vous nous aider à améliorer SwitchHosts en soumettant périodiquement vos données d'utilisation de manière anonyme ?",
   usage_data_title: 'Rendez SwitchHosts meilleur !',
   use_proxy: 'Utiliser un proxy',
+  use_system_window_frame: 'Utiliser le cadre de la fenêtre système, le redémarrage de l\'application est requis',
   view: 'Vue',
   where_is_my_data: 'Où sont stockées mes données ?',
   where_is_my_hosts: 'Où est mon fichier hosts ?',

+ 1 - 0
src/common/i18n/languages/zh.ts

@@ -172,6 +172,7 @@ const lang: LanguageDict = {
     '您愿意发送匿名的使用数据来帮助我们改进 SwitchHosts 吗?数据中不会包含任何隐私信息。',
   usage_data_title: '帮助改进 SwitchHosts',
   use_proxy: '使用代理',
+  use_system_window_frame: '使用系统窗口框架,需要重启程序',
   view: '视图',
   where_is_my_data: '我的数据存储在哪里?',
   where_is_my_hosts: '我的 hosts 文件在哪里?',

+ 1 - 1
src/main/main.ts

@@ -46,7 +46,7 @@ const createWindow = async () => {
     minHeight: 200,
     autoHideMenuBar: true,
     titleBarStyle: 'hiddenInset',
-    frame: false,
+    frame: configs.use_system_window_frame || false,
     webPreferences: {
       contextIsolation: true,
       preload: path.join(__dirname, 'preload.js'),

+ 13 - 0
src/renderer/components/Pref/General.tsx

@@ -154,6 +154,19 @@ const General = (props: IProps) => {
         </HStack>
       </FormControl>
 
+      {agent.platform === 'linux' ? (
+        <FormControl>
+          <HStack>
+            <Checkbox
+              isChecked={data.use_system_window_frame}
+              onChange={(e) => onChange({ use_system_window_frame: e.target.checked })}
+            >
+              {lang.use_system_window_frame}
+            </Checkbox>
+          </HStack>
+        </FormControl>
+      ) : null}
+
       {agent.platform === 'darwin' ? (
         <FormControl>
           <HStack>

+ 3 - 2
src/renderer/components/TopBar/index.tsx

@@ -18,10 +18,11 @@ import styles from './index.less'
 
 interface IProps {
   show_left_panel: boolean
+  use_system_window_frame: boolean
 }
 
 export default (props: IProps) => {
-  const { show_left_panel } = props
+  const { show_left_panel, use_system_window_frame } = props
   const { lang } = useModel('useI18n')
   const { isHostsInTrashcan, current_hosts, isReadOnly } =
     useModel('useHostsData')
@@ -30,7 +31,7 @@ export default (props: IProps) => {
   const show_toggle_switch =
     !show_left_panel && current_hosts && !isHostsInTrashcan(current_hosts.id)
   const show_history = !current_hosts
-  const show_close_button = agent.platform !== 'darwin'
+  const show_close_button = agent.platform === 'linux' && !use_system_window_frame || agent.platform !== 'darwin' && agent.platform !== 'linux'
 
   useEffect(() => {
     setIsOn(!!current_hosts?.on)

+ 3 - 1
src/renderer/pages/index.tsx

@@ -25,6 +25,7 @@ export default () => {
   const { configs } = useModel('useConfigs')
   const [left_width, setLeftWidth] = useState(0)
   const [left_show, setLeftShow] = useState(true)
+  const [use_system_window_frame, setSystemFrame] = useState(false)
   const [show_migration, setShowMigration] = useState(false)
   const toast = useToast()
 
@@ -55,6 +56,7 @@ export default () => {
     setLocale(configs.locale)
     setLeftWidth(configs.left_panel_width)
     setLeftShow(configs.left_panel_show)
+    setSystemFrame(configs.use_system_window_frame)
 
     let theme = configs.theme
     let cls = document.body.className
@@ -114,7 +116,7 @@ export default () => {
 
   return (
     <div className={styles.root}>
-      <TopBar show_left_panel={left_show} />
+      <TopBar show_left_panel={left_show} use_system_window_frame={use_system_window_frame} />
 
       <div>
         <div