mirror of
				https://github.com/yuezk/GlobalProtect-openconnect.git
				synced 2025-05-20 07:26:58 -04:00 
			
		
		
		
	feat: support drag and remove title bar on KDE
This commit is contained in:
		| @@ -3,10 +3,15 @@ | ||||
|   <head> | ||||
|     <meta charset="UTF-8" /> | ||||
|     <link rel="icon" type="image/svg+xml" href="/vite.svg" /> | ||||
|     <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||||
|     <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0" /> | ||||
|     <title>Vite + React + TS</title> | ||||
|   </head> | ||||
|   <body> | ||||
|   <body data-tauri-drag-region> | ||||
|     <script> | ||||
|       var htmlFontSize = getComputedStyle(document.documentElement).fontSize; | ||||
|       var ratio = parseInt(htmlFontSize) / 16; | ||||
|       document.documentElement.style.fontSize = (16 / ratio) + 'px'; | ||||
|     </script> | ||||
|     <div id="root"></div> | ||||
|     <script type="module" src="/src/main.tsx"></script> | ||||
|   </body> | ||||
|   | ||||
| @@ -44,6 +44,18 @@ fn setup(app: &mut tauri::App) -> Result<(), Box<dyn std::error::Error>> { | ||||
|     }); | ||||
|  | ||||
|     app.manage(client); | ||||
|  | ||||
|     match std::env::var("XDG_CURRENT_DESKTOP") { | ||||
|         Ok(desktop) => { | ||||
|             if desktop == "KDE" { | ||||
|                 if let Some(main_window) = app.get_window("main") { | ||||
|                     let _ = main_window.set_decorations(false); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         Err(_) => (), | ||||
|     } | ||||
|  | ||||
|     Ok(()) | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -68,11 +68,13 @@ | ||||
|     }, | ||||
|     "windows": [ | ||||
|       { | ||||
|         "title": "GlobalProtect", | ||||
|         "label": "main", | ||||
|         "fullscreen": false, | ||||
|         "width": 260, | ||||
|         "height": 360, | ||||
|         "resizable": false, | ||||
|         "title": "GlobalProtect", | ||||
|         "width": 260 | ||||
|         "fileDropEnabled": false | ||||
|       } | ||||
|     ] | ||||
|   } | ||||
|   | ||||
| @@ -41,7 +41,7 @@ export default function App() { | ||||
|   const ready = useAtomValue(statusReadyAtom); | ||||
|  | ||||
|   return ( | ||||
|     <Box padding={2} paddingBottom={0}> | ||||
|     <Box data-tauri-drag-region padding={2} paddingBottom={0}> | ||||
|       {ready ? <MainContent /> : <Loading />} | ||||
|       <Notification /> | ||||
|     </Box> | ||||
|   | ||||
| @@ -93,11 +93,17 @@ function InnerStatusIcon() { | ||||
|   return <DisconnectedIcon />; | ||||
| } | ||||
|  | ||||
| const DragRegion = styled(Box)(({ theme }) => ({ | ||||
|   position: "absolute", | ||||
|   inset: 0, | ||||
| })); | ||||
|  | ||||
| export default function StatusIcon() { | ||||
|   return ( | ||||
|     <IconContainer> | ||||
|       <BackgroundIcon /> | ||||
|       <InnerStatusIcon /> | ||||
|       <DragRegion data-tauri-drag-region /> | ||||
|     </IconContainer> | ||||
|   ); | ||||
| } | ||||
|   | ||||
| @@ -7,6 +7,7 @@ export default function StatusText() { | ||||
|  | ||||
|   return ( | ||||
|     <Typography | ||||
|       data-tauri-drag-region | ||||
|       textAlign="center" | ||||
|       mt={1.5} | ||||
|       variant="subtitle1" | ||||
|   | ||||
| @@ -4,7 +4,7 @@ import StatusText from "./StatusText"; | ||||
|  | ||||
| export default function ConnectionStatus() { | ||||
|   return ( | ||||
|     <Box> | ||||
|     <Box data-tauri-drag-region> | ||||
|       <StatusIcon /> | ||||
|       <StatusText /> | ||||
|     </Box> | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| import { Alert, AlertTitle, Slide, SlideProps, Snackbar } from "@mui/material"; | ||||
| import { Alert, AlertTitle, Box, Slide, SlideProps, Snackbar } from "@mui/material"; | ||||
| import { useAtom, useAtomValue } from "jotai"; | ||||
| import { | ||||
|   closeNotificationAtom, | ||||
| @@ -35,6 +35,7 @@ export default function Notification() { | ||||
|       }} | ||||
|     > | ||||
|       <Alert | ||||
|         data-tauri-drag-region | ||||
|         severity={severity} | ||||
|         icon={false} | ||||
|         sx={{ | ||||
| @@ -42,8 +43,8 @@ export default function Notification() { | ||||
|           borderRadius: 0, | ||||
|         }} | ||||
|       > | ||||
|         {title && <AlertTitle>{title}</AlertTitle>} | ||||
|         {message} | ||||
|         {title && <AlertTitle data-tauri-drag-region>{title}</AlertTitle>} | ||||
|         {message && <Box data-tauri-drag-region>{message}</Box>} | ||||
|       </Alert> | ||||
|     </Snackbar> | ||||
|   ); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user