@@ -147,12 +147,17 @@ def bindings(self):
147147 ("key-down--backspace" , self .on_text_backspace , "Delete char" ),
148148 ("key-down--delete" , self .on_text_backspace , "Delete char" ),
149149 ("key-down--space" , self .on_text_space , "Insert space" ),
150- ("key-down--return" , self .on_text_commit , "Commit text" ),
151- ("key-down--enter" , self .on_text_commit , "Commit text" ),
152- ("key-down--keypad-enter" , self .on_text_commit , "Commit text" ),
150+ ("key-down--return" , lambda event : self .on_text_commit (event , reject = False ), "Commit text" ),
151+ ("key-down--enter" , lambda event : self .on_text_commit (event , reject = False ), "Commit text" ),
152+ ("key-down--keypad-enter" , lambda event : self .on_text_commit (event , reject = False ), "Commit text" ),
153+ # Session events
154+ ("frame-changed" , lambda event : self .on_text_commit (event , reject = True ), "Commit text" ),
155+ ("before-session-write" , lambda event : self .on_text_commit (event , reject = True ), "Commit text" ),
156+ ("before-session-write-copy" , lambda event : self .on_text_commit (event , reject = True ), "Commit text" ),
157+ ("before-play-start" , lambda event : self .on_text_commit (event , reject = True ), "Commit text" ),
158+ ("before-session-read" , lambda event : self .on_text_commit (event , reject = True ), "Commit text" ),
159+ ("before-graph-view-changed" , lambda event : self .on_text_commit (event , reject = True ), "Commit text" ),
153160 ("key-down--escape" , self .on_text_cancel , "Cancel text" ),
154- # Commit when frame changes so text isn't left open during playback
155- ("frame-changed" , self .on_frame_changed , "Commit text on frame change" ),
156161 ]
157162
158163 @property
@@ -1034,10 +1039,14 @@ def on_text_backspace(self, event):
10341039 self ._text_buffer = self ._text_buffer [:- 1 ]
10351040 self ._update_text_display (cursor = True )
10361041
1037- def on_text_commit (self , event ):
1042+ def on_text_commit (self , event , reject ):
10381043 if not self ._text_active :
10391044 event .reject ()
10401045 return
1046+
1047+ if reject :
1048+ event .reject ()
1049+
10411050 self ._commit_text ()
10421051
10431052 def on_text_cancel (self , event ):
@@ -1051,11 +1060,6 @@ def on_key_up(self, event):
10511060 if not self ._text_active :
10521061 event .reject ()
10531062
1054- def on_frame_changed (self , event ):
1055- if self ._text_active :
1056- self ._commit_text ()
1057- event .reject () # let normal frame-change handling continue
1058-
10591063 # ------------------------------------------------------------------
10601064 # Undo / redo / clear
10611065 # ------------------------------------------------------------------
0 commit comments