[bug 835] 835-crash-after-unzooming-a-single-terminal-inside-a-tab #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
This commit is contained in:
parent
6d225c7aee
commit
ff45920874
@ -343,10 +343,6 @@ class Notebook(Container, Gtk.Notebook):
|
|||||||
self.set_current_page(tabpos)
|
self.set_current_page(tabpos)
|
||||||
self.show_all()
|
self.show_all()
|
||||||
if maker.isinstance(term_widget, 'Terminal'):
|
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()
|
widget.grab_focus()
|
||||||
|
|
||||||
def wrapcloseterm(self, widget):
|
def wrapcloseterm(self, widget):
|
||||||
@ -528,6 +524,8 @@ class Notebook(Container, Gtk.Notebook):
|
|||||||
# if we can't find a last active term we must be starting up
|
# if we can't find a last active term we must be starting up
|
||||||
if term is not None:
|
if term is not None:
|
||||||
GObject.idle_add(term.ensure_visible_and_focussed)
|
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
|
return True
|
||||||
|
|
||||||
def on_scroll_event(self, notebook, event):
|
def on_scroll_event(self, notebook, event):
|
||||||
|
@ -68,7 +68,7 @@ class Terminal(Gtk.VBox):
|
|||||||
'navigate': (GObject.SignalFlags.RUN_LAST, None,
|
'navigate': (GObject.SignalFlags.RUN_LAST, None,
|
||||||
(GObject.TYPE_STRING,)),
|
(GObject.TYPE_STRING,)),
|
||||||
'tab-change': (GObject.SignalFlags.RUN_LAST, None,
|
'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': (GObject.SignalFlags.RUN_LAST, None, ()),
|
||||||
'group-all-toggle': (GObject.SignalFlags.RUN_LAST, None, ()),
|
'group-all-toggle': (GObject.SignalFlags.RUN_LAST, None, ()),
|
||||||
'move-tab': (GObject.SignalFlags.RUN_LAST, None,
|
'move-tab': (GObject.SignalFlags.RUN_LAST, None,
|
||||||
@ -1985,40 +1985,40 @@ class Terminal(Gtk.VBox):
|
|||||||
self.zoom()
|
self.zoom()
|
||||||
|
|
||||||
def key_next_tab(self):
|
def key_next_tab(self):
|
||||||
self.emit('tab-change', -1)
|
self.emit('tab-change', -1, None)
|
||||||
|
|
||||||
def key_prev_tab(self):
|
def key_prev_tab(self):
|
||||||
self.emit('tab-change', -2)
|
self.emit('tab-change', -2, None)
|
||||||
|
|
||||||
def key_switch_to_tab_1(self):
|
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):
|
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):
|
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):
|
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):
|
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):
|
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):
|
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):
|
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):
|
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):
|
def key_switch_to_tab_10(self):
|
||||||
self.emit('tab-change', 9)
|
self.emit('tab-change', 9, None)
|
||||||
|
|
||||||
def key_reset(self):
|
def key_reset(self):
|
||||||
self.vte.reset (True, False)
|
self.vte.reset (True, False)
|
||||||
|
@ -186,13 +186,6 @@ class Terminator(Borg):
|
|||||||
for terminal in self.terminals:
|
for terminal in self.terminals:
|
||||||
dbg('checking: %s (%s)' % (terminal.uuid.urn, terminal))
|
dbg('checking: %s (%s)' % (terminal.uuid.urn, terminal))
|
||||||
if terminal.uuid.urn == uuid:
|
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 terminal
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@ -203,6 +196,7 @@ class Terminator(Borg):
|
|||||||
dbg('checking: %s (%s)' % (window.uuid.urn, window))
|
dbg('checking: %s (%s)' % (window.uuid.urn, window))
|
||||||
if window.uuid.urn == uuid:
|
if window.uuid.urn == uuid:
|
||||||
return window
|
return window
|
||||||
|
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def new_window(self, cwd=None, profile=None):
|
def new_window(self, cwd=None, profile=None):
|
||||||
@ -217,7 +211,7 @@ class Terminator(Borg):
|
|||||||
window.add(terminal)
|
window.add(terminal)
|
||||||
window.show(True)
|
window.show(True)
|
||||||
terminal.spawn_child()
|
terminal.spawn_child()
|
||||||
terminal.emit('tab-change', 0)
|
terminal.emit('tab-change', 0, None)
|
||||||
|
|
||||||
return(window, terminal)
|
return(window, terminal)
|
||||||
|
|
||||||
|
@ -738,8 +738,14 @@ class Window(Container, Gtk.Window):
|
|||||||
def disable_geometry_hints(self):
|
def disable_geometry_hints(self):
|
||||||
self.set_geometry_hints(None, None, 0)
|
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"""
|
"""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():
|
if self.is_zoomed():
|
||||||
self.unzoom()
|
self.unzoom()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user