@@ -100,6 +100,7 @@ def __init__(self, master, flist, browser):
100100 ScrolledList .__init__ (self , master )
101101 self .flist = flist
102102 self .browser = browser
103+ self .stack = []
103104
104105 def load_stack (self , stack , index = None ):
105106 self .stack = stack
@@ -132,6 +133,10 @@ def load_stack(self, stack, index=None):
132133 if index is not None :
133134 self .select (index )
134135
136+ def popup_event (self , event ):
137+ if self .stack :
138+ return ScrolledList .popup_event (self , event )
139+
135140 def fill_menu (self ):
136141 menu = self .menu
137142 menu .add_command (label = "Go to source line" ,
@@ -140,7 +145,8 @@ def fill_menu(self):
140145 command = self .show_stack_frame )
141146
142147 def on_select (self , index ):
143- self .browser .show_frame (self .stack [index ])
148+ if 0 <= index < len (self .stack ):
149+ self .browser .show_frame (self .stack [index ])
144150
145151 def on_double (self , index ):
146152 self .show_source (index )
@@ -151,9 +157,12 @@ def goto_source_line(self):
151157
152158 def show_stack_frame (self ):
153159 index = self .listbox .index ("active" )
154- self .browser .show_frame (self .stack [index ])
160+ if 0 <= index < len (self .stack ):
161+ self .browser .show_frame (self .stack [index ])
155162
156163 def show_source (self , index ):
164+ if not (0 <= index < len (self .stack )):
165+ return
157166 frame , lineno = self .stack [index ]
158167 code = frame .f_code
159168 filename = code .co_filename
0 commit comments