Skip to content

Commit

Permalink
[bug 835] 835-crash-after-unzooming-a-single-terminal-inside-a-tab gn…
Browse files Browse the repository at this point in the history
…ome-terminator#835

-removed previous code to start fresh
-added event type for tab-change since other way of identifying zoomed widget was not simple and clear
-emit tab-change is done at a single point now in notebook.py
  • Loading branch information
vssdeo committed Oct 20, 2023
1 parent 6d225c7 commit ff45920
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 26 deletions.
6 changes: 2 additions & 4 deletions terminatorlib/notebook.py
Original file line number Diff line number Diff line change
Expand Up @@ -343,10 +343,6 @@ def newtab(self, debugtab=False, widget=None, cwd=None, metadata=None, profile=N
self.set_current_page(tabpos)
self.show_all()
if maker.isinstance(term_widget, 'Terminal'):
#notify plugins of tab-change
dbg("emit tab-change for tabpos: %s " % tabpos)
term_widget.emit('tab-change', tabpos)
self.set_current_page(tabpos)
widget.grab_focus()

def wrapcloseterm(self, widget):
Expand Down Expand Up @@ -528,6 +524,8 @@ def on_tab_switch(self, notebook, page, page_num, data=None):
# 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)
dbg('emit tab-change type: targe-plugin for page:%s' % page_num)
term.emit('tab-change', page_num, 'target-plugin')
return True

def on_scroll_event(self, notebook, event):
Expand Down
26 changes: 13 additions & 13 deletions terminatorlib/terminal.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ class Terminal(Gtk.VBox):
'navigate': (GObject.SignalFlags.RUN_LAST, None,
(GObject.TYPE_STRING,)),
'tab-change': (GObject.SignalFlags.RUN_LAST, None,
(GObject.TYPE_INT,)),
(GObject.TYPE_INT,GObject.TYPE_STRING,)),
'group-all': (GObject.SignalFlags.RUN_LAST, None, ()),
'group-all-toggle': (GObject.SignalFlags.RUN_LAST, None, ()),
'move-tab': (GObject.SignalFlags.RUN_LAST, None,
Expand Down Expand Up @@ -1985,40 +1985,40 @@ def key_scaled_zoom(self):
self.zoom()

def key_next_tab(self):
self.emit('tab-change', -1)
self.emit('tab-change', -1, None)

def key_prev_tab(self):
self.emit('tab-change', -2)
self.emit('tab-change', -2, None)

def key_switch_to_tab_1(self):
self.emit('tab-change', 0)
self.emit('tab-change', 0, None)

def key_switch_to_tab_2(self):
self.emit('tab-change', 1)
self.emit('tab-change', 1, None)

def key_switch_to_tab_3(self):
self.emit('tab-change', 2)
self.emit('tab-change', 2, None)

def key_switch_to_tab_4(self):
self.emit('tab-change', 3)
self.emit('tab-change', 3, None)

def key_switch_to_tab_5(self):
self.emit('tab-change', 4)
self.emit('tab-change', 4, None)

def key_switch_to_tab_6(self):
self.emit('tab-change', 5)
self.emit('tab-change', 5, None)

def key_switch_to_tab_7(self):
self.emit('tab-change', 6)
self.emit('tab-change', 6, None)

def key_switch_to_tab_8(self):
self.emit('tab-change', 7)
self.emit('tab-change', 7, None)

def key_switch_to_tab_9(self):
self.emit('tab-change', 8)
self.emit('tab-change', 8, None)

def key_switch_to_tab_10(self):
self.emit('tab-change', 9)
self.emit('tab-change', 9, None)

def key_reset(self):
self.vte.reset (True, False)
Expand Down
10 changes: 2 additions & 8 deletions terminatorlib/terminator.py
Original file line number Diff line number Diff line change
Expand Up @@ -186,13 +186,6 @@ def find_terminal_by_uuid(self, uuid):
for terminal in self.terminals:
dbg('checking: %s (%s)' % (terminal.uuid.urn, terminal))
if terminal.uuid.urn == uuid:
if terminal.get_toplevel().is_child_notebook():
topchild = terminal.get_toplevel().get_child()
current_page = topchild.get_current_page()
#we need to emit signal for plugin and retain same page
dbg("current_page for tab-change-signal:%s" % current_page)
terminal.emit('tab-change', current_page)

return terminal
return None

Expand All @@ -203,6 +196,7 @@ def find_window_by_uuid(self, uuid):
dbg('checking: %s (%s)' % (window.uuid.urn, window))
if window.uuid.urn == uuid:
return window

return None

def new_window(self, cwd=None, profile=None):
Expand All @@ -217,7 +211,7 @@ def new_window(self, cwd=None, profile=None):
window.add(terminal)
window.show(True)
terminal.spawn_child()
terminal.emit('tab-change', 0)
terminal.emit('tab-change', 0, None)

return(window, terminal)

Expand Down
8 changes: 7 additions & 1 deletion terminatorlib/window.py
Original file line number Diff line number Diff line change
Expand Up @@ -738,8 +738,14 @@ def set_rough_geometry_hints(self):
def disable_geometry_hints(self):
self.set_geometry_hints(None, None, 0)

def tab_change(self, widget, num=None):
def tab_change(self, widget, num=None, event_type=None):
"""Change to a specific tab"""

#we return if event_type is set by a component
#we only handle default
if event_type:
return

if self.is_zoomed():
self.unzoom()

Expand Down

0 comments on commit ff45920

Please sign in to comment.