@@ -148,15 +148,29 @@ public void ForceDisableDrawing()
148148 {
149149 try
150150 {
151- _logger . LogInformation ( "Force disabling drawing mode (ESC pressed)" ) ;
152- _isDrawingLocked = false ;
153- _overlayWindow . DisableDrawing ( ) ;
154- _overlayWindow . Hide ( ) ;
151+ _logger . LogInformation ( "ESC pressed - checking help visibility" ) ;
155152
156- // Notify hook that drawing mode is inactive
157- _keyboardHook . SetDrawingModeActive ( false ) ;
153+ // Check if help is visible and handle accordingly
154+ bool shouldExitDrawingMode = _overlayWindow . HandleEscapeKey ( ) ;
158155
159- _logger . LogDebug ( "Drawing mode force disabled" ) ;
156+ if ( shouldExitDrawingMode )
157+ {
158+ // Help was not visible, or user wants to exit - force disable drawing mode
159+ _logger . LogDebug ( "Force disabling drawing mode" ) ;
160+ _isDrawingLocked = false ;
161+ _overlayWindow . DisableDrawing ( ) ;
162+ _overlayWindow . Hide ( ) ;
163+
164+ // Notify hook that drawing mode is inactive
165+ _keyboardHook . SetDrawingModeActive ( false ) ;
166+
167+ _logger . LogDebug ( "Drawing mode force disabled" ) ;
168+ }
169+ else
170+ {
171+ // Help was visible and has been closed - stay in drawing mode
172+ _logger . LogDebug ( "ESC only closed help - remaining in drawing mode" ) ;
173+ }
160174 }
161175 catch ( Exception ex )
162176 {
@@ -348,25 +362,25 @@ public void SetCircleTool()
348362 }
349363
350364 /// <summary>
351- /// Shows the help popup with keyboard shortcuts
365+ /// Toggles the help popup with keyboard shortcuts
352366 /// </summary>
353- public void ShowHelp ( )
367+ public void ToggleHelp ( )
354368 {
355369 try
356370 {
357371 if ( _overlayWindow . IsVisible )
358372 {
359- _overlayWindow . ShowHelp ( ) ;
360- _logger . LogInformation ( "Help popup shown " ) ;
373+ _overlayWindow . ToggleHelp ( ) ;
374+ _logger . LogDebug ( "Help popup toggled " ) ;
361375 }
362376 else
363377 {
364- _logger . LogDebug ( "ShowHelp ignored - overlay not visible" ) ;
378+ _logger . LogDebug ( "ToggleHelp ignored - overlay not visible" ) ;
365379 }
366380 }
367381 catch ( Exception ex )
368382 {
369- _logger . LogError ( ex , "Failed to show help" ) ;
383+ _logger . LogError ( ex , "Failed to toggle help" ) ;
370384 // Don't re-throw - not critical
371385 }
372386 }
0 commit comments