--- gradint.py 2009-12-17 17:38:29.000000000 +0000 +++ /tmp/Gradint.app/gradint.py 2009-12-17 17:52:45.000000000 +0000 @@ -4320,7 +4320,7 @@ try: os.remove(filename) except: pass self.cancelEdit(editEntry,row,col,filename) - if row+1 < self.addMoreRow and (row+1,col+1) in self.coords2buttons: self.scrollIntoView(self.coords2buttons[(row+1,col+1)]) # focus the next "synth" button if it exists (TODO do we want to press it as well, like file renaming?) + if row+1 < self.addMoreRow and (row+1,col+1) in self.coords2buttons: self.scrollIntoView(self.coords2buttons[(row+1,col+1)]) # focus the next "synth" button if it exists (don't press it as well like file renaming because it might be a variant etc, TODO can we skip variants?) def cancelEdit(self,editEntry,row,col,filename): editEntry.grid_forget() labelAdded = self.addSynthLabel(filename,row,col) @@ -5175,9 +5175,14 @@ def focusButton(button): button.focus() - if macsound: # focus() should display the fact on Windows and Linux, but doesn't on OS X - need to make it default as well - try: button.config(state="active") - except: pass # maybe not a button + if macsound: # focus() should display the fact on Windows and Linux, but doesn't on OS X so: + def flashButton(button,state): + try: button.config(state=state) + except: pass # maybe not a button + for t in range(250,1000,250): # (NB avoid epilepsy's 5-30Hz!) + app.after(t,lambda *args:flashButton(button,"active")) + app.after(t+150,lambda *args:flashButton(button,"normal")) + # (Don't like flashing, but can't make it permanently active as it won't change when the focus does) def startTk(): class Application(Tkinter.Frame):