From 6ece4ce742ac364bcc04c988098cacfdee70a149 Mon Sep 17 00:00:00 2001 From: prculley Date: Mon, 12 Jun 2017 11:18:24 -0500 Subject: [PATCH] _errorview dialog mapped without transient parent Fixes #8128. --- gramps/gui/logger/_errorreportassistant.py | 2 +- gramps/gui/logger/_errorview.py | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/gramps/gui/logger/_errorreportassistant.py b/gramps/gui/logger/_errorreportassistant.py index 97ccc8ebe..80a6d2a3a 100644 --- a/gramps/gui/logger/_errorreportassistant.py +++ b/gramps/gui/logger/_errorreportassistant.py @@ -119,7 +119,7 @@ class ErrorReportAssistant(ManagedWindow, Gtk.Assistant): if self.parent_window is not None: self._save_position(save_config=False) # the next line saves it self._save_size() - self.hide() + self.destroy() if self.ownthread: Gtk.main_quit() diff --git a/gramps/gui/logger/_errorview.py b/gramps/gui/logger/_errorview.py index ca878299d..84e07ab9c 100644 --- a/gramps/gui/logger/_errorview.py +++ b/gramps/gui/logger/_errorview.py @@ -106,8 +106,13 @@ class ErrorView(ManagedWindow): def draw_window(self): title = "%s - Gramps" % _("Error Report") self.top = Gtk.Dialog(title) + # look over the top level windows, it seems the oldest come first, so + # the most recent still visible window appears to be a good choice for + # a transient parent for win in self.top.list_toplevels(): - if win.is_active(): + if win == self.top: # not interested if this is us... + continue + if win.is_toplevel() and win.is_visible(): self.parent_window = win # for ManagedWindow if self.parent_window is None: # but it is on some screen self.parent_window = self.top.get_screen()