bitbake: HOB:Proper handle of SIGINT

Modal dialogs doesn't run on the main loop so they cannot
catch any signal from the terminal. This patch makes sure
the dialogs are destroyed when a SIGINT is sent to HOB.

[YOCTO #3329]

(Bitbake rev: 6eee0cc37438cc3f91531b7df524330fba27161b)

Signed-off-by: Valentin Popa <valentin.popa@intel.com>
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Valentin Popa 2013-07-03 11:31:44 +00:00 committed by Richard Purdie
parent 1defbaf8b7
commit dc86293f04
1 changed files with 9 additions and 0 deletions

View File

@ -30,6 +30,7 @@ import shlex
import re
import logging
import sys
import signal
from bb.ui.crumbs.imageconfigurationpage import ImageConfigurationPage
from bb.ui.crumbs.recipeselectionpage import RecipeSelectionPage
from bb.ui.crumbs.packageselectionpage import PackageSelectionPage
@ -441,6 +442,8 @@ class Builder(gtk.Window):
self.initiate_new_build_async()
signal.signal(signal.SIGINT, self.event_handle_SIGINT)
def create_visual_elements(self):
self.set_title("Hob")
self.set_icon_name("applications-development")
@ -1075,6 +1078,12 @@ class Builder(gtk.Window):
else:
gtk.main_quit()
def event_handle_SIGINT(self, signal, frame):
for w in gtk.window_list_toplevels():
if w.get_modal():
w.response(gtk.RESPONSE_DELETE_EVENT)
sys.exit(0)
def build_packages(self):
_, all_recipes = self.recipe_model.get_selected_recipes()
if not all_recipes: