@@ -35,14 +35,20 @@ const DraggableWindow = props => {
3535 const savedState = windowStateStorage . getValidWindowState ( windowId , {
3636 position : defaultPosition ,
3737 size : defaultSize ,
38- isMinimized : false
38+ isMinimized : false ,
39+ isFullScreen : false ,
40+ originalPosition : defaultPosition ,
41+ originalSize : defaultSize
3942 } ) ;
4043 return savedState ;
4144 }
4245 return {
4346 position : defaultPosition ,
4447 size : defaultSize ,
45- isMinimized : false
48+ isMinimized : false ,
49+ isFullScreen : false ,
50+ originalPosition : defaultPosition ,
51+ originalSize : defaultSize
4652 } ;
4753 } ;
4854
@@ -54,9 +60,9 @@ const DraggableWindow = props => {
5460 const [ dragOffset , setDragOffset ] = React . useState ( { x : 0 , y : 0 } ) ;
5561 const [ resizeHandle , setResizeHandle ] = React . useState ( null ) ;
5662 const [ isMinimized , setIsMinimized ] = React . useState ( initialState . isMinimized ) ;
57- const [ isFullScreen , setIsFullScreen ] = React . useState ( false ) ;
58- const [ originalPosition , setOriginalPosition ] = React . useState ( initialState . position ) ;
59- const [ originalSize , setOriginalSize ] = React . useState ( initialState . size ) ;
63+ const [ isFullScreen , setIsFullScreen ] = React . useState ( initialState . isFullScreen ) ;
64+ const [ originalPosition , setOriginalPosition ] = React . useState ( initialState . originalPosition ) ;
65+ const [ originalSize , setOriginalSize ] = React . useState ( initialState . originalSize ) ;
6066 const [ isDraggingMinimized , setIsDraggingMinimized ] = React . useState ( false ) ;
6167 const [ dragStartPosition , setDragStartPosition ] = React . useState ( { x : 0 , y : 0 } ) ;
6268
@@ -66,18 +72,24 @@ const DraggableWindow = props => {
6672 // 保存窗口状态到本地存储
6773 const saveWindowState = React . useCallback ( ( ) => {
6874 if ( enableStatePersistence && windowId ) {
69- windowStateStorage . saveWindowState ( windowId , {
75+ const stateToSave = {
7076 position,
7177 size,
72- isMinimized
73- } ) ;
78+ isMinimized,
79+ isFullScreen
80+ } ;
81+ if ( isFullScreen ) {
82+ stateToSave . originalPosition = originalPosition ;
83+ stateToSave . originalSize = originalSize ;
84+ }
85+ windowStateStorage . saveWindowState ( windowId , stateToSave ) ;
7486 }
75- } , [ enableStatePersistence , windowId , position , size , isMinimized ] ) ;
87+ } , [ enableStatePersistence , windowId , position , size , isMinimized , isFullScreen , originalPosition , originalSize ] ) ;
7688
7789 // 当状态变化时自动保存
7890 React . useEffect ( ( ) => {
7991 saveWindowState ( ) ;
80- } , [ position , size , isMinimized , saveWindowState ] ) ;
92+ } , [ position , size , isMinimized , isFullScreen , saveWindowState ] ) ;
8193
8294 const handleMouseDown = React . useCallback ( e => {
8395 if ( ! isDraggable ) return ;
0 commit comments