From a8c9e7c1fd297997b57703d5d654a77b64a2a97b Mon Sep 17 00:00:00 2001 From: Anton Golubev Date: Tue, 7 Nov 2023 17:41:58 +0300 Subject: [PATCH] Connect to signals of the shown window In the case of OnboardingWindow and MainWindow, the class itself is not shown as a window, but its 'window' field is shown, so when the window is closed, the application does not terminate - the wrong signals is connected to the handler. --- howdy-gtk/src/onboarding.py | 8 ++++---- howdy-gtk/src/window.py | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/howdy-gtk/src/onboarding.py b/howdy-gtk/src/onboarding.py index e6a4aa7..11f61e1 100644 --- a/howdy-gtk/src/onboarding.py +++ b/howdy-gtk/src/onboarding.py @@ -19,9 +19,6 @@ def __init__(self): # Make the class a GTK window gtk.Window.__init__(self) - self.connect("destroy", self.exit) - self.connect("delete_event", self.exit) - self.builder = gtk.Builder() self.builder.add_from_file(paths_factory.onboarding_wireframe_path()) self.builder.connect_signals(self) @@ -29,6 +26,9 @@ def __init__(self): self.window = self.builder.get_object("onboardingwindow") self.nextbutton = self.builder.get_object("nextbutton") + self.window.connect("destroy", self.exit) + self.window.connect("delete_event", self.exit) + self.slides = [ self.builder.get_object("slide0"), self.builder.get_object("slide1"), @@ -317,7 +317,7 @@ def show_error(self, error, secon=""): dialog.destroy() self.exit() - def exit(self, widget=None): + def exit(self, widget, context): """Cleanly exit""" gtk.main_quit() sys.exit(0) diff --git a/howdy-gtk/src/window.py b/howdy-gtk/src/window.py index f43e35d..40753c4 100644 --- a/howdy-gtk/src/window.py +++ b/howdy-gtk/src/window.py @@ -23,9 +23,6 @@ def __init__(self): # Make the class a GTK window gtk.Window.__init__(self) - self.connect("destroy", self.exit) - self.connect("delete_event", self.exit) - self.builder = gtk.Builder() self.builder.add_from_file(paths_factory.main_window_wireframe_path()) self.builder.connect_signals(self) @@ -35,6 +32,9 @@ def __init__(self): self.modellistbox = self.builder.get_object("modellistbox") self.opencvimage = self.builder.get_object("opencvimage") + self.window.connect("destroy", self.exit) + self.window.connect("delete_event", self.exit) + # Init capture for video tab self.capture = None