Fixes scrollwheel actions on the tabs not working anymore.
This commit is contained in:
parent
4adfd8e00a
commit
f162f3cdc0
|
@ -5,6 +5,7 @@
|
||||||
|
|
||||||
from gi.repository import GObject
|
from gi.repository import GObject
|
||||||
from gi.repository import Gtk
|
from gi.repository import Gtk
|
||||||
|
from gi.repository import Gdk
|
||||||
from gi.repository import Gio
|
from gi.repository import Gio
|
||||||
|
|
||||||
from terminator import Terminator
|
from terminator import Terminator
|
||||||
|
@ -35,6 +36,7 @@ class Notebook(Container, Gtk.Notebook):
|
||||||
GObject.type_register(Notebook)
|
GObject.type_register(Notebook)
|
||||||
self.register_signals(Notebook)
|
self.register_signals(Notebook)
|
||||||
self.connect('switch-page', self.deferred_on_tab_switch)
|
self.connect('switch-page', self.deferred_on_tab_switch)
|
||||||
|
self.connect('scroll-event', self.on_scroll_event)
|
||||||
self.configure()
|
self.configure()
|
||||||
|
|
||||||
child = window.get_child()
|
child = window.get_child()
|
||||||
|
@ -489,6 +491,55 @@ class Notebook(Container, Gtk.Notebook):
|
||||||
GObject.idle_add(term.ensure_visible_and_focussed)
|
GObject.idle_add(term.ensure_visible_and_focussed)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
def on_scroll_event(self, notebook, event):
|
||||||
|
'''Handle scroll events for scrolling through tabs'''
|
||||||
|
#print "self: %s" % self
|
||||||
|
#print "event: %s" % event
|
||||||
|
child = self.get_nth_page(self.get_current_page())
|
||||||
|
if child == None:
|
||||||
|
print "Child = None, return false"
|
||||||
|
return False
|
||||||
|
|
||||||
|
event_widget = Gtk.get_event_widget(event)
|
||||||
|
|
||||||
|
if event_widget == None or \
|
||||||
|
event_widget == child or \
|
||||||
|
event_widget.is_ancestor(child):
|
||||||
|
print "event_widget is wrong one, return false"
|
||||||
|
return False
|
||||||
|
|
||||||
|
# Not sure if we need these. I don't think wehave any action widgets
|
||||||
|
# at this point.
|
||||||
|
action_widget = self.get_action_widget(Gtk.PackType.START)
|
||||||
|
if event_widget == action_widget or \
|
||||||
|
(action_widget != None and event_widget.is_ancestor(action_widget)):
|
||||||
|
return False
|
||||||
|
action_widget = self.get_action_widget(Gtk.PackType.END)
|
||||||
|
if event_widget == action_widget or \
|
||||||
|
(action_widget != None and event_widget.is_ancestor(action_widget)):
|
||||||
|
return False
|
||||||
|
|
||||||
|
if event.direction in [Gdk.ScrollDirection.RIGHT,
|
||||||
|
Gdk.ScrollDirection.DOWN]:
|
||||||
|
self.next_page()
|
||||||
|
elif event.direction in [Gdk.ScrollDirection.LEFT,
|
||||||
|
Gdk.ScrollDirection.UP]:
|
||||||
|
self.prev_page()
|
||||||
|
elif event.direction == Gdk.ScrollDirection.SMOOTH:
|
||||||
|
if self.get_tab_pos() in [Gtk.PositionType.LEFT,
|
||||||
|
Gtk.PositionType.RIGHT]:
|
||||||
|
if event.delta_y > 0:
|
||||||
|
self.next_page()
|
||||||
|
elif event.delta_y < 0:
|
||||||
|
self.prev_page()
|
||||||
|
elif self.get_tab_pos() in [Gtk.PositionType.TOP,
|
||||||
|
Gtk.PositionType.BOTTOM]:
|
||||||
|
if event.delta_x > 0:
|
||||||
|
self.next_page()
|
||||||
|
elif event.delta_x < 0:
|
||||||
|
self.prev_page()
|
||||||
|
return True
|
||||||
|
|
||||||
class TabLabel(Gtk.HBox):
|
class TabLabel(Gtk.HBox):
|
||||||
"""Class implementing a label widget for Notebook tabs"""
|
"""Class implementing a label widget for Notebook tabs"""
|
||||||
notebook = None
|
notebook = None
|
||||||
|
|
Loading…
Reference in New Issue