]> git.0d.be Git - jack_mixer.git/commitdiff
Hack GtkRange click events to set slider at the position clicked
authorFrédéric Péters <fpeters@0d.be>
Mon, 19 Oct 2009 12:06:08 +0000 (14:06 +0200)
committerFrédéric Péters <fpeters@0d.be>
Mon, 19 Oct 2009 12:06:08 +0000 (14:06 +0200)
slider.py

index 580f9ab96809b03f94e7cd06e64b0857ef9f51e8..baec3427327db1b9af04c822849e5d034674f052 100644 (file)
--- a/slider.py
+++ b/slider.py
@@ -67,3 +67,18 @@ class widget(gtk.VScale):
         gtk.VScale.__init__(self, adjustment)
         self.set_draw_value(False)
         self.set_inverted(True)
+
+        # HACK: we want the behaviour you get with the middle button, so we
+        # mangle the events. Clicking with other buttons moves the slider in
+        # step increments, clicking with the middle button moves the slider
+        # to the location of the click.
+        self.connect('button-press-event', self.button_press_event)
+        self.connect('button-release-event', self.button_release_event)
+
+    def button_press_event(self, widget, event):
+        event.button = 2
+        return False
+
+    def button_release_event(self, widget, event):
+        event.button = 2
+        return False