Merge pull request #131 from mattrose/issue99

Issue99
This commit is contained in:
Matt Rose 2020-06-21 11:47:04 -04:00 committed by GitHub
commit fae95a7e13
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 30 deletions

View File

@ -492,7 +492,9 @@ class Notebook(Container, Gtk.Notebook):
tabs_last_active_term = data['tabs_last_active_term'] tabs_last_active_term = data['tabs_last_active_term']
if tabs_last_active_term: if tabs_last_active_term:
term = self.terminator.find_terminal_by_uuid(tabs_last_active_term.urn) term = self.terminator.find_terminal_by_uuid(tabs_last_active_term.urn)
GObject.idle_add(term.ensure_visible_and_focussed) # if we can't find a last active term we must be starting up
if term is not None:
GObject.idle_add(term.ensure_visible_and_focussed)
return True return True
def on_scroll_event(self, notebook, event): def on_scroll_event(self, notebook, event):

View File

@ -356,35 +356,7 @@ class Terminator(Borg):
terminal.spawn_child() terminal.spawn_child()
for window in self.windows: for window in self.windows:
if window.is_child_notebook(): if not window.is_child_notebook():
# For windows with a notebook
notebook = window.get_toplevel().get_children()[0]
# Cycle through pages by number
for page in range(0, notebook.get_n_pages()):
# Try and get the entry in the previously saved mapping
mapping = window_last_active_term_mapping[window]
page_last_active_term = mapping.get(notebook.get_nth_page(page), None)
if page_last_active_term is None:
# Couldn't find entry, so we find the first child of type Terminal
children = notebook.get_nth_page(page).get_children()
for page_last_active_term in children:
if maker.isinstance(page_last_active_term, 'Terminal'):
page_last_active_term = page_last_active_term.uuid
break
else:
err('Should never reach here!')
page_last_active_term = None
if page_last_active_term is None:
# Bail on this tab as we're having no luck here, continue with the next
continue
# Set the notebook entry, then ensure Terminal is visible and focussed
urn = page_last_active_term.urn
notebook.last_active_term[notebook.get_nth_page(page)] = page_last_active_term
if urn:
term = self.find_terminal_by_uuid(urn)
if term:
term.ensure_visible_and_focussed()
else:
# For windows without a notebook ensure Terminal is visible and focussed # For windows without a notebook ensure Terminal is visible and focussed
if window_last_active_term_mapping[window]: if window_last_active_term_mapping[window]:
term = self.find_terminal_by_uuid(window_last_active_term_mapping[window].urn) term = self.find_terminal_by_uuid(window_last_active_term_mapping[window].urn)