@@ -812,17 +812,28 @@ def _show_permission_dialog(self, callback):
812812 self ._show_snack ("Preparing GitHub Permissions..." , "BLUE" )
813813
814814 def proceed (e ):
815- logger .debug ("User clicked 'Continue'" )
816- if hasattr (dlg , "open" ):
817- dlg .open = False
818- self .app_page .update ()
819- callback (None )
815+ try :
816+ logger .info ("User clicked 'Continue' in permission dialog [INSTRUMENTED]" )
817+ self ._close_dialog (dlg )
818+
819+ # Check page before update to avoid ghosts
820+ if self .app_page :
821+ self .app_page .update ()
822+
823+ logger .info ("Calling callback from permission dialog..." )
824+ callback (e ) # Pass event 'e' instead of None, though _start_github_login handles None too
825+ except Exception as ex :
826+ logger .exception (f"Critical error in proceed handler: { ex } " )
827+ self ._show_snack (f"Error continuing: { ex } " , "RED" )
820828
821829 def cancel (e ):
822- logger .debug ("User clicked 'Cancel' in permission dialog" )
823- if hasattr (dlg , "open" ):
824- dlg .open = False
825- self .app_page .update ()
830+ try :
831+ logger .info ("User clicked 'Cancel' in permission dialog [INSTRUMENTED]" )
832+ self ._close_dialog (dlg )
833+ if self .app_page :
834+ self .app_page .update ()
835+ except Exception as ex :
836+ logger .error (f"Error in cancel handler: { ex } " )
826837
827838 explanation = i18n .get ("github_permissions_explanation" ) or (
828839 "SwitchCraft requests the following GitHub permissions:\n \n "
@@ -833,6 +844,7 @@ def cancel(e):
833844 )
834845
835846 dlg = ft .AlertDialog (
847+ modal = True , # Force user interaction
836848 title = ft .Text (i18n .get ("github_permissions_title" ) or "GitHub Permissions" ),
837849 content = ft .Column ([
838850 ft .Text (explanation ),
0 commit comments