[pitivi] ui.timeline: optimize key handling seek code a bit more.
- From: Edward Hervey <edwardrv src gnome org>
- To: svn-commits-list gnome org
- Subject: [pitivi] ui.timeline: optimize key handling seek code a bit more.
- Date: Tue, 19 May 2009 14:02:58 -0400 (EDT)
commit d1f1fd910c53a4b988e54d35216bacebc4d6a585
Author: Edward Hervey <bilboed bilboed com>
Date: Tue May 19 19:55:10 2009 +0200
ui.timeline: optimize key handling seek code a bit more.
---
pitivi/ui/timeline.py | 42 ++++++++++++++++++++++--------------------
1 files changed, 22 insertions(+), 20 deletions(-)
diff --git a/pitivi/ui/timeline.py b/pitivi/ui/timeline.py
index 22e04f2..5dd6855 100644
--- a/pitivi/ui/timeline.py
+++ b/pitivi/ui/timeline.py
@@ -236,29 +236,31 @@ class Timeline(gtk.Table, Loggable, Zoomable):
def _keyPressEventCb(self, unused_widget, event):
kv = event.keyval
+ self.debug("kv:%r", kv)
+ if kv not in [gtk.keysyms.Left, gtk.keysyms.Right]:
+ return False
mod = event.get_state()
- frame = long(self.rate * gst.SECOND)
- now = self.project.pipeline.getPosition()
-
- if kv == gtk.keysyms.Left:
- if mod & gtk.gdk.SHIFT_MASK:
- self.project.pipeline.seekRelative(-gst.SECOND)
- elif mod & gtk.gdk.CONTROL_MASK:
- ltime, rtime = self.project.timeline.edges.closest(now)
- self.project.pipeline.seek(ltime)
- else:
- self.project.pipeline.seekRelative(-frame)
- return True
- elif kv == gtk.keysyms.Right:
- if mod & gtk.gdk.SHIFT_MASK:
- self.project.pipeline.seekRelative(gst.SECOND)
- elif mod & gtk.gdk.CONTROL_MASK:
+ try:
+ if mod & gtk.gdk.CONTROL_MASK:
+ now = self.project.pipeline.getPosition()
ltime, rtime = self.project.timeline.edges.closest(now)
- self.project.pipeline.seek(rtime)
- else:
- self.project.pipeline.seekRelative(frame)
+
+ if kv == gtk.keysyms.Left:
+ if mod & gtk.gdk.SHIFT_MASK:
+ self.project.pipeline.seekRelative(-gst.SECOND)
+ elif mod & gtk.gdk.CONTROL_MASK:
+ self.project.pipeline.seek(ltime+1)
+ else:
+ self.project.pipeline.seekRelative(-long(self.rate * gst.SECOND))
+ elif kv == gtk.keysyms.Right:
+ if mod & gtk.gdk.SHIFT_MASK:
+ self.project.pipeline.seekRelative(gst.SECOND)
+ elif mod & gtk.gdk.CONTROL_MASK:
+ self.project.pipeline.seek(rtime+1)
+ else:
+ self.project.pipeline.seekRelative(long(self.rate * gst.SECOND))
+ finally:
return True
- return False
def _buttonPress(self, window, event):
self.shrink = False
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]