Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

为 linux 平台添加一个选项控制是否使用系统框架 #712

Merged
merged 2 commits into from
May 11, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/common/default_configs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
1 change: 1 addition & 0 deletions src/common/i18n/languages/de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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?',
Expand Down
1 change: 1 addition & 0 deletions src/common/i18n/languages/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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?',
Expand Down
1 change: 1 addition & 0 deletions src/common/i18n/languages/fr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 ?',
Expand Down
1 change: 1 addition & 0 deletions src/common/i18n/languages/zh.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 文件在哪里?',
Expand Down
2 changes: 1 addition & 1 deletion src/main/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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'),
Expand Down
13 changes: 13 additions & 0 deletions src/renderer/components/Pref/General.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down
5 changes: 3 additions & 2 deletions src/renderer/components/TopBar/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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')
Expand All @@ -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)
Expand Down
4 changes: 3 additions & 1 deletion src/renderer/pages/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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()

Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down