[pitivi] ui.controller: items should grab focus on mouseover
- From: Edward Hervey <edwardrv src gnome org>
- To: svn-commits-list gnome org
- Subject: [pitivi] ui.controller: items should grab focus on mouseover
- Date: Tue, 19 May 2009 14:02:28 -0400 (EDT)
commit e1e8b8e8c937aead8a7e14fe2e49089a9155f7f9
Author: Brandon Lewis <brandon_lewis berkeley edu>
Date: Fri May 15 12:30:00 2009 -0700
ui.controller: items should grab focus on mouseover
---
pitivi/ui/controller.py | 17 ++++++++++++-----
1 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/pitivi/ui/controller.py b/pitivi/ui/controller.py
index 4590373..4303bdb 100644
--- a/pitivi/ui/controller.py
+++ b/pitivi/ui/controller.py
@@ -78,7 +78,8 @@ class Controller(object):
@handler(_view, "enter_notify_event")
def enter_notify_event(self, item, target, event):
- self._last_event = event
+ self._event_common(item, target, event)
+ self._canvas.grab_focus(item)
if self._cursor:
event.window.set_cursor(self._cursor)
self.enter(item, target)
@@ -87,7 +88,8 @@ class Controller(object):
@handler(_view, "leave_notify_event")
def leave_notify_event(self, item, target, event):
- self._last_event = event
+ self._event_common(item, target, event)
+ self._canvas.keyboard_ungrab(item, event.time)
self._ptr_within = False
event.window.set_cursor(ARROW)
if not self._dragging:
@@ -96,7 +98,7 @@ class Controller(object):
@handler(_view, "button_press_event")
def button_press_event(self, item, target, event):
- self._last_event = event
+ self._event_common(item, target, event)
if not self._canvas:
self._canvas = item.get_canvas()
self._mousedown = self.pos(item) - self.transform(self.from_item_event(
@@ -108,7 +110,7 @@ class Controller(object):
@handler(_view, "motion_notify_event")
def motion_notify_event(self, item, target, event):
- self._last_event = event
+ self._event_common(item, target, event)
if self._dragging:
self.set_pos(self._dragging,
self.transform(self._mousedown + self.from_item_event(item,
@@ -118,13 +120,18 @@ class Controller(object):
@handler(_view, "button_release_event")
def button_release_event(self, item, target, event):
- self._last_event = event
+ self._event_common(item, target, event)
self._drag_end(item, self._dragging, event)
self._dragging = None
return True
## internal callbacks
+ def _event_common(self, item, target, event):
+ if not self._canvas:
+ self._canvas = item.get_canvas()
+ self._last_event = event
+
def _drag_start(self, item, target, event):
self.drag_start()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]