diff --git a/src/plugins/view/pedigreeview.py b/src/plugins/view/pedigreeview.py index 5148369d1..8686d26d2 100644 --- a/src/plugins/view/pedigreeview.py +++ b/src/plugins/view/pedigreeview.py @@ -858,13 +858,16 @@ class PedigreeView(NavigationView): def person_rebuild(self, dummy=None): """Callback function for signals of change database.""" - self.format_helper.clear_cache() - self.dirty = True - self.rebuild_trees(self.get_active()) + if self.active: + self.format_helper.clear_cache() + self.dirty = True + self.rebuild_trees(self.get_active()) + else: + self.dirty = True def rebuild_trees(self, person_handle): """ - Rebild tree with root person_handle. + Rebuild tree with root person_handle. Called from many fuctions, when need full redraw tree. """ person = None diff --git a/src/plugins/view/relview.py b/src/plugins/view/relview.py index 288e4e911..e225d9809 100644 --- a/src/plugins/view/relview.py +++ b/src/plugins/view/relview.py @@ -211,55 +211,72 @@ class RelationshipView(NavigationView): self.redraw() def person_update(self, handle_list): - person = self.get_active() - if person: - while not self.change_person(person): - pass + if self.active: + person = self.get_active() + if person: + while not self.change_person(person): + pass + else: + self.change_person(None) else: - self.change_person(None) + self.dirty = True def person_rebuild(self): """Large change to person database""" if self.active: self.bookmarks.redraw() - person = self.get_active() - if person: - while not self.change_person(person): - pass + person = self.get_active() + if person: + while not self.change_person(person): + pass + else: + self.change_person(None) else: - self.change_person(None) + self.dirty = True def family_update(self, handle_list): - person = self.get_active() - if person: - while not self.change_person(person): - pass + if self.active: + person = self.get_active() + if person: + while not self.change_person(person): + pass + else: + self.change_person(None) else: - self.change_person(None) + self.dirty = True def family_add(self, handle_list): - person = self.get_active() - if person: - while not self.change_person(person): - pass + if self.active: + person = self.get_active() + if person: + while not self.change_person(person): + pass + else: + self.change_person(None) else: - self.change_person(None) + self.dirty = True def family_delete(self, handle_list): - person = self.get_active() - if person: - while not self.change_person(person): - pass + if self.active: + person = self.get_active() + if person: + while not self.change_person(person): + pass + else: + self.change_person(None) else: - self.change_person(None) + self.dirty = True def family_rebuild(self): - person = self.get_active() - if person: - while not self.change_person(person): - pass + if self.active: + person = self.get_active() + if person: + while not self.change_person(person): + pass + else: + self.change_person(None) else: - self.change_person(None) + self.dirty = True def change_page(self): NavigationView.change_page(self) @@ -553,6 +570,7 @@ class RelationshipView(NavigationView): self.uistate.modify_statusbar(self.dbstate) self.order_action.set_sensitive(self.reorder_sensitive) + self.dirty = False return True