React instantly to editor window being closed

This commit is contained in:
Kovid Goyal 2022-05-27 09:15:16 +05:30
parent 196c6b07aa
commit 3a8bdf3b48
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -632,6 +632,9 @@ class EditCmd:
if not self.abort_signaled: if not self.abort_signaled:
add_timer(self.check_status, 1.0, False) add_timer(self.check_status, 1.0, False)
def on_edit_window_close(self, window: Window) -> None:
self.check_status()
def check_status(self, timer_id: Optional[int] = None) -> None: def check_status(self, timer_id: Optional[int] = None) -> None:
if self.abort_signaled: if self.abort_signaled:
return return
@ -648,6 +651,7 @@ class EditCmd:
edits_in_flight.pop(self.source_window_id, None) edits_in_flight.pop(self.source_window_id, None)
if source_window is not None: if source_window is not None:
self.send_data(source_window, 'DONE') self.send_data(source_window, 'DONE')
self.abort_signaled = self.abort_signaled or 'closed'
else: else:
self.schedule_check() self.schedule_check()
@ -726,6 +730,7 @@ def remote_edit(msg: str, window: Window) -> None:
if q is not None: if q is not None:
q.abort_signaled = 'replaced' q.abort_signaled = 'replaced'
edits_in_flight[window.id] = c edits_in_flight[window.id] = c
w.actions_on_close.append(c.on_edit_window_close)
c.schedule_check() c.schedule_check()