Skip to content

Commit dc1b0dd

Browse files
committed
library: Stop execution when window is closed
1 parent 90ffc52 commit dc1b0dd

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

src/gameeky/library/coder.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,11 @@ def __on_closed(self, window: Window) -> bool:
181181
return True
182182

183183
def __on_discarded(self, dialog: ConfirmationSaveWindow) -> None:
184-
self.quit()
184+
if self._window is None:
185+
return
186+
187+
self._pending_changes = False
188+
self._window.close()
185189

186190
def __on_edit(self, action: Gio.SimpleAction, data: Optional[Any] = None) -> None:
187191
dialog = SessionSettingsWindow(transient_for=self._window)

src/gameeky/library/widgets/window.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,14 +182,17 @@ def _restore_ui(self) -> None:
182182
self.execute_button.props.visible = True
183183
self.stop_button.props.visible = False
184184

185-
@Gtk.Template.Callback("on_stop_clicked")
186-
def __on_stop_clicked(self, button: Gtk.Button) -> None:
185+
def _stop(self) -> None:
187186
if self._process is None:
188187
return
189188

190189
self._cancellable.cancel()
191190
self._process.force_exit()
192191

192+
@Gtk.Template.Callback("on_stop_clicked")
193+
def __on_stop_clicked(self, button: Gtk.Button) -> None:
194+
self._stop()
195+
193196
def __on_source_changed(
194197
self,
195198
buffer: Gtk.TextBuffer,
@@ -218,3 +221,7 @@ def source(self, text: str) -> None:
218221
self.source_buffer.handler_block(self._handler_id)
219222
self.source_buffer.props.text = text
220223
self.source_buffer.handler_unblock(self._handler_id)
224+
225+
def do_close_request(self) -> bool:
226+
self._stop()
227+
return False

0 commit comments

Comments
 (0)