@@ -26,12 +26,49 @@ function isSerialVisible() {
2626 return serialPage . classList . contains ( 'active' ) ;
2727}
2828
29+ function setupPanelFocusHandlers ( ) {
30+ // Removing existing handlers to avoid duplicates
31+ serialPage . removeEventListener ( 'click' , handleActivePanel ) ;
32+ editorPage . removeEventListener ( 'click' , handleActivePanel ) ;
33+
34+ // Adding new handlers
35+ serialPage . addEventListener ( 'click' , handleActivePanel ) ;
36+ editorPage . addEventListener ( 'click' , handleActivePanel ) ;
37+ }
38+
39+ function handleActivePanel ( event ) {
40+ const panel = event . currentTarget ;
41+ setActivePanel ( panel ) ;
42+ }
43+
44+ function setActivePanel ( panel ) {
45+ editorPage . classList . remove ( 'focused-panel' ) ;
46+ serialPage . classList . remove ( 'focused-panel' ) ;
47+
48+ if ( panel === serialPage && isSerialVisible ( ) ) {
49+ // Serial panel requested and visible
50+ serialPage . classList . add ( 'focused-panel' ) ;
51+ } else if ( panel === editorPage && isEditorVisible ( ) ) {
52+ // Editor panel requested and visible
53+ editorPage . classList . add ( 'focused-panel' ) ;
54+ } else {
55+ // Requested panel is not visible, set other panel as focused
56+ if ( isEditorVisible ( ) ) {
57+ editorPage . classList . add ( 'focused-panel' ) ;
58+ } else {
59+ serialPage . classList . add ( 'focused-panel' ) ;
60+ }
61+ }
62+ }
63+
2964async function toggleEditor ( ) {
3065 if ( isSerialVisible ( ) ) {
3166 editorPage . classList . toggle ( 'active' ) ;
3267 saveSetting ( SETTING_EDITOR_VISIBLE , isEditorVisible ( ) ) ;
3368 updatePageLayout ( UPDATE_TYPE_EDITOR ) ;
3469 }
70+ setupPanelFocusHandlers ( ) ;
71+ setActivePanel ( editorPage ) ;
3572}
3673
3774async function toggleSerial ( ) {
@@ -40,6 +77,8 @@ async function toggleSerial() {
4077 saveSetting ( SETTING_TERMINAL_VISIBLE , isSerialVisible ( ) ) ;
4178 updatePageLayout ( UPDATE_TYPE_SERIAL ) ;
4279 }
80+ setupPanelFocusHandlers ( ) ;
81+ setActivePanel ( serialPage ) ;
4382}
4483
4584btnModeEditor . removeEventListener ( 'click' , toggleEditor ) ;
@@ -229,4 +268,6 @@ pageSeparator.addEventListener('mousedown', async function (e) {
229268
230269fixViewportHeight ( ) ;
231270window . addEventListener ( "resize" , fixViewportHeight ) ;
232- loadPanelSettings ( ) ;
271+ loadPanelSettings ( ) ;
272+ setupPanelFocusHandlers ( ) ;
273+ setActivePanel ( editorPage ) ;
0 commit comments